blob: 0216df65bfae7e556ff5ed5a9019f7862377adc6 [file] [log] [blame]
import { async, fakeAsync, tick, TestBed, ComponentFixture, inject } from '@angular/core/testing';
import { Status } from '../../model/status';
import { Branch } from '../../model/branch';
import { GridTerritory } from '../../model/gridterritory';
import { User } from '../../model/user';
import { MessageService, MessageDefines } from '../../services/message.service';
import { AbstractMockObservableService } from '../../common/abstract-mock-observable.service';
import { SessionContext } from '../../common/session-context';
import { BaseDataService } from '../base-data.service';
import { USERS} from '../../test-data/users';
import { BaseDataLoaderService } from './base-data-loader.service';
describe('BaseDataLoaderService', () => {
class MockDataService extends AbstractMockObservableService {
public statusList: Status[];
public branchList: Branch[];
public gridTerritoryList: GridTerritory[];
public statusError;
public branchError;
public gridTerritoryError;
getStatuses() {
const newService = new MockDataService();
newService.content = this.statusList;
newService.error = this.statusError;
return newService;
}
getBranches() {
const newService = new MockDataService();
newService.content = this.branchList;
newService.error = this.branchError;
return newService;
}
getGridTerritories() {
const newService = new MockDataService();
newService.content = this.gridTerritoryList;
newService.error = this.gridTerritoryError;
return newService;
}
}
class MockUserService extends AbstractMockObservableService {
public userList: User[];
public userError;
getUsers() {
const newService = new MockDataService();
newService.content = this.userList;
newService.error = this.userError;
return newService;
}
}
let sessionContext: SessionContext;
let messageService: MessageService;
let mockDataService;
let mockUserService;
beforeEach(async(() => {
mockDataService = new MockDataService();
mockUserService = new MockUserService();
sessionContext = new SessionContext();
sessionContext.clearStorage();
messageService = new MessageService();
const loaderServer = new BaseDataLoaderService( mockDataService, mockUserService, messageService, sessionContext );
}));
it('should be load the base-data after MSG_LOG_IN_SUCCEEDED-Message "', fakeAsync(() => {
mockDataService.statusList = [{ id: 1, name: 'offen' }];
mockDataService.branchList = [{ id: 1, name: 'W', description: 'Wasser' }];
mockDataService.gridTerritoryList = [{ id: 1, name: 'MA', description: 'Mannheim', fkRefMaster: 1 }];
mockUserService.userList = USERS;
expect(sessionContext.getStatuses()).toBeNull();
expect(sessionContext.getBranches()).toBeNull();
expect(sessionContext.getGridTerritories()).toBeNull();
expect(sessionContext.getAllUsers()).toBeNull();
messageService.loginLogoff$.emit( MessageDefines.MSG_LOG_IN_SUCCEEDED );
tick();
expect(sessionContext.getStatuses().length).toBe(1);
expect(sessionContext.getStatuses()[0].name).toBe('offen');
expect(sessionContext.getBranches().length).toBe(1);
expect(sessionContext.getBranches()[0].description).toBe('Wasser');
expect(sessionContext.getGridTerritories().length).toBe(1);
expect(sessionContext.getGridTerritories()[0].name).toBe('MA');
expect(sessionContext.getAllUsers().length).toBe(3);
}));
});