| 
									
										
										
										
											2015-02-10 07:39:29 +01:00
										 |  |  | import {describe, it, iit, ddescribe, expect, tick, async, SpyObject, beforeEach, proxy} from 'angular2/test_lib'; | 
					
						
							| 
									
										
										
										
											2015-03-13 16:47:22 -07:00
										 |  |  | import {MapWrapper} from 'angular2/src/facade/collection'; | 
					
						
							|  |  |  | import {IMPLEMENTS} from 'angular2/src/facade/lang'; | 
					
						
							| 
									
										
										
										
											2014-10-29 14:26:52 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | class TestObj { | 
					
						
							| 
									
										
										
										
											2014-11-21 21:19:23 -08:00
										 |  |  |   prop; | 
					
						
							| 
									
										
										
										
											2014-10-29 14:26:52 -04:00
										 |  |  |   constructor(prop) { | 
					
						
							|  |  |  |     this.prop = prop; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-25 15:16:53 -08:00
										 |  |  | @proxy | 
					
						
							|  |  |  | @IMPLEMENTS(TestObj) | 
					
						
							|  |  |  | class SpyTestObj extends SpyObject {noSuchMethod(m){return super.noSuchMethod(m)}} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-10-29 14:26:52 -04:00
										 |  |  | export function main() { | 
					
						
							| 
									
										
										
										
											2014-11-17 17:39:39 -08:00
										 |  |  |   describe('test_lib', () => { | 
					
						
							|  |  |  |     describe('equality', () => { | 
					
						
							|  |  |  |       it('should structurally compare objects', () => { | 
					
						
							|  |  |  |         var expected = new TestObj(new TestObj({'one' : [1,2]})); | 
					
						
							|  |  |  |         var actual = new TestObj(new TestObj({'one' : [1,2]})); | 
					
						
							|  |  |  |         var falseActual = new TestObj(new TestObj({'one' : [1,3]})); | 
					
						
							| 
									
										
										
										
											2014-10-29 14:26:52 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |         expect(actual).toEqual(expected); | 
					
						
							|  |  |  |         expect(falseActual).not.toEqual(expected); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2014-11-17 17:39:39 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     describe('toEqual for Maps', () => { | 
					
						
							|  |  |  |       it('should detect equality for same reference', () => { | 
					
						
							|  |  |  |         var m1 = MapWrapper.createFromStringMap({'a': 1}); | 
					
						
							|  |  |  |         expect(m1).toEqual(m1); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it('should detect equality for same content', () => { | 
					
						
							|  |  |  |         expect(MapWrapper.createFromStringMap({'a': 1})).toEqual(MapWrapper.createFromStringMap({'a': 1})); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it('should detect missing entries', () => { | 
					
						
							|  |  |  |         expect(MapWrapper.createFromStringMap({'a': 1})).not.toEqual(MapWrapper.createFromStringMap({})); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it('should detect different values', () => { | 
					
						
							|  |  |  |         expect(MapWrapper.createFromStringMap({'a': 1})).not.toEqual(MapWrapper.createFromStringMap({'a': 2})); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it('should detect additional entries', () => { | 
					
						
							|  |  |  |         expect(MapWrapper.createFromStringMap({'a': 1})).not.toEqual(MapWrapper.createFromStringMap({'a': 1, 'b': 1})); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2014-11-25 15:16:53 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     describe("spy objects", () => { | 
					
						
							|  |  |  |       var spyObj; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       beforeEach(() => { | 
					
						
							|  |  |  |         spyObj = new SpyTestObj(); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it("should pass the runtime check", () => { | 
					
						
							|  |  |  |         var t:TestObj = spyObj; | 
					
						
							|  |  |  |         expect(t).toBeDefined(); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it("should return a new spy func with no calls", () => { | 
					
						
							|  |  |  |         expect(spyObj.spy("someFunc")).not.toHaveBeenCalled(); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it("should record function calls", () => { | 
					
						
							|  |  |  |         spyObj.spy("someFunc").andCallFake((a,b) => a + b); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         expect(spyObj.someFunc(1,2)).toEqual(3); | 
					
						
							|  |  |  |         expect(spyObj.spy("someFunc")).toHaveBeenCalledWith(1,2); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2014-10-29 14:26:52 -04:00
										 |  |  |   }); | 
					
						
							| 
									
										
										
										
											2015-02-16 20:04:03 -08:00
										 |  |  | } |