blob: e02197e4e139480b28fe4e214f171d96afb36051 [file] [log] [blame]
/*
*******************************************************************************
* Copyright (c) 2018 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
* information regarding copyright ownership.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*******************************************************************************
*/
import { TestBed, async } from '@angular/core/testing';
import { EntityValidator } from './entity-validator';
import { GridMeasureValidatorFactory } from './grid-measure-validator';
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();
}));
});