72 lines
2.5 KiB
TypeScript
72 lines
2.5 KiB
TypeScript
import {inject, TestBed} from '@angular/core/testing';
|
|
|
|
import {InputComponentManagerService} from './input-component-manager.service';
|
|
import {Step} from './step';
|
|
|
|
describe('InputComponentManagerService', () => {
|
|
beforeEach(() => {
|
|
TestBed.configureTestingModule({
|
|
providers: [InputComponentManagerService]
|
|
});
|
|
});
|
|
|
|
it('should be created', inject([InputComponentManagerService], (service: InputComponentManagerService) => {
|
|
expect(service).toBeTruthy();
|
|
}));
|
|
|
|
it('should create a component if requesting the first one',
|
|
inject([InputComponentManagerService], (service: InputComponentManagerService) => {
|
|
const firstStep: Step = service.getFirst();
|
|
expect(firstStep).toBeTruthy();
|
|
expect(service.getFirst()).toBe(firstStep);
|
|
expect(service.getAllComponents().length).toEqual(1);
|
|
})
|
|
);
|
|
|
|
it('must not add a null Step', inject([InputComponentManagerService], (service: InputComponentManagerService) => {
|
|
expect(() => service.register(null)).toThrowError();
|
|
expect(service.getAllComponents().length).toEqual(0);
|
|
}));
|
|
|
|
it('must not add an undefined Step', inject([InputComponentManagerService], (service: InputComponentManagerService) => {
|
|
expect(() => service.register(undefined)).toThrowError();
|
|
expect(service.getAllComponents().length).toEqual(0);
|
|
}));
|
|
|
|
it('should register new Steps', inject([InputComponentManagerService], (service: InputComponentManagerService) => {
|
|
service.register(new Step(99));
|
|
expect(service.getAllComponents().length).toEqual(1);
|
|
service.register(new Step(100));
|
|
expect(service.getAllComponents().length).toEqual(2);
|
|
}));
|
|
|
|
it('should return a new step if the next step doesn\'t exist',
|
|
inject([InputComponentManagerService], (service: InputComponentManagerService) => {
|
|
// arrange
|
|
const firstStep: Step = new Step(0);
|
|
service.register(firstStep);
|
|
|
|
// act
|
|
const nextStep: Step = service.getNext(firstStep);
|
|
|
|
// assert
|
|
expect(service.getAllComponents().length).toEqual(2);
|
|
expect(nextStep.index).toEqual(1);
|
|
})
|
|
);
|
|
|
|
it('should return the next step if requested', inject([InputComponentManagerService], (service: InputComponentManagerService) => {
|
|
// arrange
|
|
const firstStep: Step = new Step(0);
|
|
const nextStep: Step = new Step(1);
|
|
service.register(firstStep);
|
|
service.register(nextStep);
|
|
|
|
// act
|
|
const requestedStep: Step = service.getNext(firstStep);
|
|
// assert
|
|
expect(service.getAllComponents().length).toEqual(2);
|
|
expect(requestedStep).toEqual(nextStep);
|
|
}));
|
|
});
|