| 
									
										
										
										
											2016-07-18 03:50:31 -07:00
										 |  |  | /** | 
					
						
							|  |  |  |  * @license | 
					
						
							|  |  |  |  * Copyright Google Inc. All Rights Reserved. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Use of this source code is governed by an MIT-style license that can be | 
					
						
							|  |  |  |  * found in the LICENSE file at https://angular.io/license
 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import {NgModuleResolver} from '@angular/compiler/src/ng_module_resolver'; | 
					
						
							| 
									
										
										
										
											2016-09-12 19:14:17 -07:00
										 |  |  | import {NgModule} from '@angular/core/src/metadata'; | 
					
						
							| 
									
										
										
										
											2016-07-18 03:50:31 -07:00
										 |  |  | import {stringify} from '../src/facade/lang'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class SomeClass1 {} | 
					
						
							|  |  |  | class SomeClass2 {} | 
					
						
							|  |  |  | class SomeClass3 {} | 
					
						
							|  |  |  | class SomeClass4 {} | 
					
						
							|  |  |  | class SomeClass5 {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @NgModule({ | 
					
						
							|  |  |  |   declarations: [SomeClass1], | 
					
						
							|  |  |  |   imports: [SomeClass2], | 
					
						
							|  |  |  |   exports: [SomeClass3], | 
					
						
							|  |  |  |   providers: [SomeClass4], | 
					
						
							| 
									
										
										
										
											2016-07-25 00:36:30 -07:00
										 |  |  |   entryComponents: [SomeClass5] | 
					
						
							| 
									
										
										
										
											2016-07-18 03:50:31 -07:00
										 |  |  | }) | 
					
						
							|  |  |  | class SomeModule { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class SimpleClass {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export function main() { | 
					
						
							|  |  |  |   describe('NgModuleResolver', () => { | 
					
						
							| 
									
										
										
										
											2016-11-12 14:08:58 +01:00
										 |  |  |     let resolver: NgModuleResolver; | 
					
						
							| 
									
										
										
										
											2016-07-18 03:50:31 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     beforeEach(() => { resolver = new NgModuleResolver(); }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it('should read out the metadata from the class', () => { | 
					
						
							| 
									
										
										
										
											2016-11-12 14:08:58 +01:00
										 |  |  |       const moduleMetadata = resolver.resolve(SomeModule); | 
					
						
							| 
									
										
										
										
											2016-09-12 19:14:17 -07:00
										 |  |  |       expect(moduleMetadata).toEqual(new NgModule({ | 
					
						
							| 
									
										
										
										
											2016-07-18 03:50:31 -07:00
										 |  |  |         declarations: [SomeClass1], | 
					
						
							|  |  |  |         imports: [SomeClass2], | 
					
						
							|  |  |  |         exports: [SomeClass3], | 
					
						
							|  |  |  |         providers: [SomeClass4], | 
					
						
							| 
									
										
										
										
											2016-07-25 00:36:30 -07:00
										 |  |  |         entryComponents: [SomeClass5] | 
					
						
							| 
									
										
										
										
											2016-07-18 03:50:31 -07:00
										 |  |  |       })); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it('should throw when simple class has no component decorator', () => { | 
					
						
							|  |  |  |       expect(() => resolver.resolve(SimpleClass)) | 
					
						
							|  |  |  |           .toThrowError(`No NgModule metadata found for '${stringify(SimpleClass)}'.`); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | } |