66 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
		
		
			
		
	
	
			66 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| 
								 | 
							
								// Simulate a simple test
							 | 
						||
| 
								 | 
							
								// Reader should look to the testing chapter for the real thing
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import 'package:angular2/core.dart';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import 'heroes/hero.dart';
							 | 
						||
| 
								 | 
							
								import 'heroes/hero_list_component.dart';
							 | 
						||
| 
								 | 
							
								import 'heroes/hero_service.dart';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@Component(
							 | 
						||
| 
								 | 
							
								    selector: 'my-tests',
							 | 
						||
| 
								 | 
							
								    template: '''
							 | 
						||
| 
								 | 
							
								      <h2>Tests</h2>
							 | 
						||
| 
								 | 
							
								      <p id="tests">Tests {{results['pass']}}: {{results['message']}}</p>
							 | 
						||
| 
								 | 
							
								    ''')
							 | 
						||
| 
								 | 
							
								class TestComponent {
							 | 
						||
| 
								 | 
							
								  var results = runTests();
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class MockHeroService implements HeroService {
							 | 
						||
| 
								 | 
							
								  final List<Hero> _heroes;
							 | 
						||
| 
								 | 
							
								  MockHeroService(this._heroes);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  @override
							 | 
						||
| 
								 | 
							
								  List<Hero> getHeroes() => _heroes;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/////////////////////////////////////
							 | 
						||
| 
								 | 
							
								dynamic runTests() {
							 | 
						||
| 
								 | 
							
								  //#docregion spec
							 | 
						||
| 
								 | 
							
								  var expectedHeroes = [new Hero(0, 'A'), new Hero(1, 'B')];
							 | 
						||
| 
								 | 
							
								  var mockService = new MockHeroService(expectedHeroes);
							 | 
						||
| 
								 | 
							
								  it('should have heroes when HeroListComponent created', () {
							 | 
						||
| 
								 | 
							
								    var hlc = new HeroListComponent(mockService);
							 | 
						||
| 
								 | 
							
								    expect(hlc.heroes.length).toEqual(expectedHeroes.length);
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								  //#enddocregion spec
							 | 
						||
| 
								 | 
							
								  return testResults;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								//////////////////////////////////
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Fake Jasmine infrastructure
							 | 
						||
| 
								 | 
							
								String testName;
							 | 
						||
| 
								 | 
							
								dynamic testResults;
							 | 
						||
| 
								 | 
							
								dynamic expect(dynamic actual) => new ExpectResult(actual);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class ExpectResult {
							 | 
						||
| 
								 | 
							
								  final actual;
							 | 
						||
| 
								 | 
							
								  ExpectResult(this.actual);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  void toEqual(dynamic expected) {
							 | 
						||
| 
								 | 
							
								    testResults = actual == expected
							 | 
						||
| 
								 | 
							
								        ? {'pass': 'passed', 'message': testName}
							 | 
						||
| 
								 | 
							
								        : {
							 | 
						||
| 
								 | 
							
								            'pass': 'failed',
							 | 
						||
| 
								 | 
							
								            'message': '$testName; expected $actual to equal $expected.'
							 | 
						||
| 
								 | 
							
								          };
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void it(String label, void test()) {
							 | 
						||
| 
								 | 
							
								  testName = label;
							 | 
						||
| 
								 | 
							
								  test();
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 |