| 
									
										
										
										
											2015-02-12 14:56:41 -08:00
										 |  |  | import {ddescribe, describe, it, iit, xit, expect, beforeEach, afterEach} from 'angular2/test_lib'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import {PipeRegistry} from 'angular2/src/change_detection/pipes/pipe_registry'; | 
					
						
							|  |  |  | import {Pipe} from 'angular2/src/change_detection/pipes/pipe'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export function main() { | 
					
						
							|  |  |  |   describe("pipe registry", () => { | 
					
						
							|  |  |  |     var firstPipe = new Pipe(); | 
					
						
							|  |  |  |     var secondPipe = new Pipe(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it("should return the first pipe supporting the data type", () => { | 
					
						
							|  |  |  |       var r = new PipeRegistry({ | 
					
						
							|  |  |  |         "type": [ | 
					
						
							| 
									
										
										
										
											2015-02-19 17:47:25 -08:00
										 |  |  |           new PipeFactory(false, firstPipe), | 
					
						
							|  |  |  |           new PipeFactory(true, secondPipe) | 
					
						
							| 
									
										
										
										
											2015-02-12 14:56:41 -08:00
										 |  |  |         ] | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-27 13:38:25 -08:00
										 |  |  |       expect(r.get("type", "some object", null)).toBe(secondPipe); | 
					
						
							| 
									
										
										
										
											2015-02-12 14:56:41 -08:00
										 |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it("should throw when no matching type", () => { | 
					
						
							|  |  |  |       var r = new PipeRegistry({}); | 
					
						
							| 
									
										
										
										
											2015-02-27 13:38:25 -08:00
										 |  |  |       expect(() => r.get("unknown", "some object", null)).toThrowError( | 
					
						
							| 
									
										
										
										
											2015-02-12 14:56:41 -08:00
										 |  |  |         `Cannot find a pipe for type 'unknown' object 'some object'` | 
					
						
							|  |  |  |       ); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it("should throw when no matching pipe", () => { | 
					
						
							|  |  |  |       var r = new PipeRegistry({ | 
					
						
							|  |  |  |         "type" : [] | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-27 13:38:25 -08:00
										 |  |  |       expect(() => r.get("type", "some object", null)).toThrowError( | 
					
						
							| 
									
										
										
										
											2015-02-12 14:56:41 -08:00
										 |  |  |         `Cannot find a pipe for type 'type' object 'some object'` | 
					
						
							|  |  |  |       ); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2015-02-19 17:47:25 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | class PipeFactory { | 
					
						
							|  |  |  |   shouldSupport:boolean; | 
					
						
							|  |  |  |   pipe:any; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   constructor(shouldSupport:boolean, pipe:any) { | 
					
						
							|  |  |  |     this.shouldSupport = shouldSupport; | 
					
						
							|  |  |  |     this.pipe = pipe; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   supports(obj):boolean { | 
					
						
							|  |  |  |     return this.shouldSupport; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-27 13:38:25 -08:00
										 |  |  |   create(bpc):Pipe { | 
					
						
							| 
									
										
										
										
											2015-02-19 17:47:25 -08:00
										 |  |  |     return this.pipe; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } |