blob: dcb089e9b1fdc381a734bdb0fa18093a1f4f5fba [file] [log] [blame]
/*
******************************************************************************
* Copyright © 2018 PTA GmbH.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
*
* http://www.eclipse.org/legal/epl-v10.html
*
******************************************************************************
*/
import { TestBed, async } from '@angular/core/testing';
import { EntityValidator } from './entity-validator';
import { GridMeasureValidatorFactory } from './grid-measure-validator';
import { MessageServiceCustom } from '../../services/message.service';
import { SessionContext } from '../../common/session-context';
import { GridMeasure } from '../../model/grid-measure';
import { GRIDMEASURE } from '../../test-data/grid-measures';
import { SingleGridMeasure } from '../../model/single-grid-measure';
import { MessageService } from 'primeng/api';
import { ToasterMessageService } from '../../services/toaster-message.service';
describe('GridMeasureValidator', () => {
let toasterMessageService: ToasterMessageService;
let sessionContext: SessionContext;
let messageService: MessageService;
beforeEach(() => {
messageService = new MessageService;
sessionContext = new SessionContext();
toasterMessageService = new ToasterMessageService(sessionContext, messageService);
TestBed.configureTestingModule({
});
});
it('should check PlannedGridMeasureDateValidator correctly', async(() => {
spyOn(toasterMessageService, 'showWarn').and.callThrough();
const gm1: GridMeasure = JSON.parse(JSON.stringify(GRIDMEASURE[0]));
const gm2: GridMeasure = JSON.parse(JSON.stringify(GRIDMEASURE[0]));
gm1.plannedStarttimeFirstSinglemeasure = '2016-01-15T11:11:00z';
gm1.endtimeGridmeasure = '2017-01-15T11:11:00z';
gm2.plannedStarttimeFirstSinglemeasure = '2017-01-15T11:11:00z';
gm2.endtimeGridmeasure = '2016-01-15T11:11:00z';
const entityValidator: EntityValidator<GridMeasure> = GridMeasureValidatorFactory.createGM(toasterMessageService);
entityValidator.validateEntity(gm1, true);
expect(toasterMessageService.showWarn).not.toHaveBeenCalled();
gm1.plannedStarttimeFirstSinglemeasure = gm1.endtimeGridmeasure;
entityValidator.validateEntity(gm1, true);
expect(toasterMessageService.showWarn).not.toHaveBeenCalled();
entityValidator.validateEntity(gm2, true);
expect(toasterMessageService.showWarn).toHaveBeenCalled();
gm1.plannedStarttimeFirstSinglemeasure = null;
gm1.endtimeGridmeasure = '2017-01-15T11:11:00z';
expect(entityValidator.validateEntity(gm1, true)).toBeTruthy();
gm1.plannedStarttimeFirstSinglemeasure = '';
gm1.endtimeGridmeasure = '2017-01-15T11:11:00z';
expect(entityValidator.validateEntity(gm1, true)).toBeTruthy();
gm1.plannedStarttimeFirstSinglemeasure = '2017-01-15T11:11:00z';
gm1.endtimeGridmeasure = null;
expect(entityValidator.validateEntity(gm1, true)).toBeTruthy();
gm1.plannedStarttimeFirstSinglemeasure = '2017-01-15T11:11:00z';
gm1.endtimeGridmeasure = '';
expect(entityValidator.validateEntity(gm1, true)).toBeTruthy();
gm1.plannedStarttimeFirstSinglemeasure = '';
gm1.endtimeGridmeasure = '';
expect(entityValidator.validateEntity(gm1, true)).toBeTruthy();
}));
it('should check SingleGridMeasureDateValidator correctly', async(() => {
spyOn(toasterMessageService, 'showWarn').and.callThrough();
const gm1: GridMeasure = JSON.parse(JSON.stringify(GRIDMEASURE[0]));
const gm2: GridMeasure = JSON.parse(JSON.stringify(GRIDMEASURE[0]));
gm1.listSingleGridmeasures[0].plannedStarttimeSinglemeasure = '2016-01-15T11:11:00z';
gm1.listSingleGridmeasures[0].plannedEndtimeSinglemeasure = '2017-01-15T11:11:00z';
gm2.listSingleGridmeasures[0].plannedStarttimeSinglemeasure = '2017-01-15T11:11:00z';
gm2.listSingleGridmeasures[0].plannedEndtimeSinglemeasure = '2016-01-15T11:11:00z';
const entityValidator2: EntityValidator<SingleGridMeasure> = GridMeasureValidatorFactory.createsingleGM(toasterMessageService);
entityValidator2.validateEntity(gm1.listSingleGridmeasures[0], true);
expect(toasterMessageService.showWarn).not.toHaveBeenCalled();
gm1.listSingleGridmeasures[0].plannedStarttimeSinglemeasure = gm1.listSingleGridmeasures[0].plannedEndtimeSinglemeasure;
entityValidator2.validateEntity(gm1.listSingleGridmeasures[0], true);
expect(toasterMessageService.showWarn).not.toHaveBeenCalled();
entityValidator2.validateEntity(gm2.listSingleGridmeasures[0], true);
expect(toasterMessageService.showWarn).toHaveBeenCalled();
gm1.listSingleGridmeasures[0].plannedStarttimeSinglemeasure = null;
gm1.listSingleGridmeasures[0].plannedEndtimeSinglemeasure = '2017-01-15T11:11:00z';
expect(entityValidator2.validateEntity(gm1.listSingleGridmeasures[0], true)).toBeTruthy();
gm1.listSingleGridmeasures[0].plannedStarttimeSinglemeasure = '';
gm1.listSingleGridmeasures[0].plannedEndtimeSinglemeasure = '2017-01-15T11:11:00z';
expect(entityValidator2.validateEntity(gm1.listSingleGridmeasures[0], true)).toBeTruthy();
gm1.listSingleGridmeasures[0].plannedStarttimeSinglemeasure = '2017-01-15T11:11:00z';
gm1.listSingleGridmeasures[0].plannedEndtimeSinglemeasure = null;
expect(entityValidator2.validateEntity(gm1.listSingleGridmeasures[0], true)).toBeTruthy();
gm1.listSingleGridmeasures[0].plannedStarttimeSinglemeasure = '2017-01-15T11:11:00z';
gm1.listSingleGridmeasures[0].plannedEndtimeSinglemeasure = '';
expect(entityValidator2.validateEntity(gm1.listSingleGridmeasures[0], true)).toBeTruthy();
gm1.listSingleGridmeasures[0].plannedStarttimeSinglemeasure = '';
gm1.listSingleGridmeasures[0].plannedEndtimeSinglemeasure = '';
expect(entityValidator2.validateEntity(gm1.listSingleGridmeasures[0], true)).toBeTruthy();
gm1.listSingleGridmeasures[0].plannedStarttimeSinglemeasure = '2017-01-15T11:11:00z';
gm1.listSingleGridmeasures[0].plannedEndtimeSinglemeasure = '2017-01-15T10:11:00z';
entityValidator2.validateEntity(gm1.listSingleGridmeasures[0], false);
expect(toasterMessageService.showWarn).toHaveBeenCalled();
}));
});