From 90d9d9c64de462aafb15e0d0c713a82f9ff32775 Mon Sep 17 00:00:00 2001 From: Lars Johansson <lars.johansson@ess.eu> Date: Tue, 21 Jun 2022 19:47:12 +0200 Subject: [PATCH] Fix issues in validation and add integration tests for multiple name and structure elements Fix issues in validation. Add integration tests for multiple name elements - create, update, delete. Add integration tests for multiple structure elements - create, update, delete, approve, cancel, reject. --- .../openepics/names/service/NamesService.java | 47 +- .../openepics/names/util/NameElementUtil.java | 6 +- .../org/openepics/names/util/TextUtil.java | 1 + .../openepics/names/util/ValidateUtil.java | 66 +- .../names/docker/complex/NamesMultipleIT.java | 599 ++++++ .../docker/complex/StructuresMultipleIT.java | 1658 +++++++++++++++++ .../names/util/ValidateUtilTest.java | 2 +- 7 files changed, 2336 insertions(+), 43 deletions(-) create mode 100644 src/test/java/org/openepics/names/docker/complex/NamesMultipleIT.java create mode 100644 src/test/java/org/openepics/names/docker/complex/StructuresMultipleIT.java diff --git a/src/main/java/org/openepics/names/service/NamesService.java b/src/main/java/org/openepics/names/service/NamesService.java index 673ad520..fbb09ba6 100644 --- a/src/main/java/org/openepics/names/service/NamesService.java +++ b/src/main/java/org/openepics/names/service/NamesService.java @@ -26,6 +26,9 @@ import java.util.UUID; import java.util.logging.Level; import java.util.logging.Logger; +import org.openepics.names.repository.DeviceGroupRepository; +import org.openepics.names.repository.DeviceTypeRepository; +import org.openepics.names.repository.DisciplineRepository; import org.openepics.names.repository.IDeviceGroupRepository; import org.openepics.names.repository.IDeviceTypeRepository; import org.openepics.names.repository.IDisciplineRepository; @@ -34,6 +37,9 @@ import org.openepics.names.repository.ISubsystemRepository; import org.openepics.names.repository.ISystemGroupRepository; import org.openepics.names.repository.ISystemRepository; import org.openepics.names.repository.NameRepository; +import org.openepics.names.repository.SubsystemRepository; +import org.openepics.names.repository.SystemGroupRepository; +import org.openepics.names.repository.SystemRepository; import org.openepics.names.repository.model.DeviceGroup; import org.openepics.names.repository.model.DeviceType; import org.openepics.names.repository.model.Discipline; @@ -49,6 +55,7 @@ import org.openepics.names.rest.beans.response.ResponsePageNameElements; import org.openepics.names.util.EssNamingConvention; import org.openepics.names.util.ExceptionUtil; import org.openepics.names.util.HolderIRepositories; +import org.openepics.names.util.HolderRepositories; import org.openepics.names.util.HolderSystemDeviceStructure; import org.openepics.names.util.NameElementUtil; import org.openepics.names.util.NameUtil; @@ -83,6 +90,8 @@ public class NamesService { private EssNamingConvention namingConvention; private HolderIRepositories holderIRepositories; + private HolderRepositories holderRepositories; + // convenience, also part of holderRepositories private NameRepository nameRepository; @Autowired @@ -94,7 +103,13 @@ public class NamesService { IDisciplineRepository iDisciplineRepository, IDeviceGroupRepository iDeviceGroupRepository, IDeviceTypeRepository iDeviceTypeRepository, - NameRepository nameRepository) { + NameRepository nameRepository, + SystemGroupRepository systemGroupRepository, + SystemRepository systemRepository, + SubsystemRepository subsystemRepository, + DisciplineRepository disciplineRepository, + DeviceGroupRepository deviceGroupRepository, + DeviceTypeRepository deviceTypeRepository) { this.namingConvention = new EssNamingConvention(); this.holderIRepositories = new HolderIRepositories( @@ -105,6 +120,14 @@ public class NamesService { iDisciplineRepository, iDeviceGroupRepository, iDeviceTypeRepository); + this.holderRepositories = new HolderRepositories( + nameRepository, + systemGroupRepository, + systemRepository, + subsystemRepository, + disciplineRepository, + deviceGroupRepository, + deviceTypeRepository); this.nameRepository = nameRepository; } @@ -129,12 +152,16 @@ public class NamesService { String requestedBy = "test who"; final List<NameElement> createdNameElements = Lists.newArrayList(); for (NameElementCommand nameElement : nameElements) { - // find out system group, system, subsystem - // one of the three expected to be non-null, other two expected to be null + // find out + // system structure - system group, system, subsystem - one of the three expected to be non-null, other two expected to be null + // device structure - device type - may be null SystemGroup systemGroup = holderIRepositories.getSystemGroupRepository().findLatestByUuid(nameElement.getParentsystemstructure().toString()); System system = holderIRepositories.getSystemRepository().findLatestByUuid(nameElement.getParentsystemstructure().toString()); Subsystem subsystem = holderIRepositories.getSubsystemRepository().findLatestByUuid(nameElement.getParentsystemstructure().toString()); - DeviceType deviceType = holderIRepositories.getDeviceTypeRepository().findLatestByUuid(nameElement.getParentdevicestructure().toString()); + DeviceType deviceType = null; + if (nameElement.getParentdevicestructure() != null) { + deviceType = holderIRepositories.getDeviceTypeRepository().findLatestByUuid(nameElement.getParentdevicestructure().toString()); + } String derivedName = null; if (systemGroup != null) { @@ -471,7 +498,7 @@ public class NamesService { HolderSystemDeviceStructure holder = new HolderSystemDeviceStructure(holderIRepositories, false); // validate data - ValidateUtil.validateNameDataCreate(name, namingConvention, holderIRepositories, nameRepository, holder); + ValidateUtil.validateNameDataCreate(name, namingConvention, holderRepositories, holder); return Boolean.TRUE; } @@ -620,7 +647,10 @@ public class NamesService { SystemGroup systemGroup = holderIRepositories.getSystemGroupRepository().findLatestByUuid(nameElement.getParentsystemstructure().toString()); System system = holderIRepositories.getSystemRepository().findLatestByUuid(nameElement.getParentsystemstructure().toString()); Subsystem subsystem = holderIRepositories.getSubsystemRepository().findLatestByUuid(nameElement.getParentsystemstructure().toString()); - DeviceType deviceType = holderIRepositories.getDeviceTypeRepository().findLatestByUuid(nameElement.getParentdevicestructure().toString()); + DeviceType deviceType = null; + if (nameElement.getParentdevicestructure() != null) { + deviceType = holderIRepositories.getDeviceTypeRepository().findLatestByUuid(nameElement.getParentdevicestructure().toString()); + } String derivedName = null; if (systemGroup != null) { @@ -688,7 +718,10 @@ public class NamesService { SystemGroup systemGroup = holderIRepositories.getSystemGroupRepository().findLatestByUuid(nameElement.getParentsystemstructure().toString()); System system = holderIRepositories.getSystemRepository().findLatestByUuid(nameElement.getParentsystemstructure().toString()); Subsystem subsystem = holderIRepositories.getSubsystemRepository().findLatestByUuid(nameElement.getParentsystemstructure().toString()); - DeviceType deviceType = holderIRepositories.getDeviceTypeRepository().findLatestByUuid(nameElement.getParentdevicestructure().toString()); + DeviceType deviceType = null; + if (nameElement.getParentdevicestructure() != null) { + deviceType = holderIRepositories.getDeviceTypeRepository().findLatestByUuid(nameElement.getParentdevicestructure().toString()); + } String derivedName = null; if (systemGroup != null) { diff --git a/src/main/java/org/openepics/names/util/NameElementUtil.java b/src/main/java/org/openepics/names/util/NameElementUtil.java index 43c69706..6618c2dc 100644 --- a/src/main/java/org/openepics/names/util/NameElementUtil.java +++ b/src/main/java/org/openepics/names/util/NameElementUtil.java @@ -150,10 +150,14 @@ public class NameElementUtil { // find out system group, system, subsystem // one of the three expected to be non-null, other two expected to be null + SystemGroup systemGroup = holderIRepositories.getSystemGroupRepository().findLatestByUuid(nameElement.getParentsystemstructure().toString()); System system = holderIRepositories.getSystemRepository().findLatestByUuid(nameElement.getParentsystemstructure().toString()); Subsystem subsystem = holderIRepositories.getSubsystemRepository().findLatestByUuid(nameElement.getParentsystemstructure().toString()); - DeviceType deviceType = holderIRepositories.getDeviceTypeRepository().findLatestByUuid(nameElement.getParentdevicestructure().toString()); + DeviceType deviceType = null; + if (nameElement.getParentdevicestructure() != null) { + deviceType = holderIRepositories.getDeviceTypeRepository().findLatestByUuid(nameElement.getParentdevicestructure().toString()); + } String derivedName = null; if (systemGroup != null) { diff --git a/src/main/java/org/openepics/names/util/TextUtil.java b/src/main/java/org/openepics/names/util/TextUtil.java index 47fd1efc..462a68f6 100644 --- a/src/main/java/org/openepics/names/util/TextUtil.java +++ b/src/main/java/org/openepics/names/util/TextUtil.java @@ -107,6 +107,7 @@ public class TextUtil { public static final String DEVICEGROUP_IS_NOT_AVAILABLE = DEVICEGROUP + SPACE + IS_NOT_AVAILABLE; public static final String DEVICETYPE_IS_NOT_AVAILABLE = DEVICETYPE + SPACE + IS_NOT_AVAILABLE; + public static final String PARENT_IS_NOT_CORRECT = PARENT + SPACE + IS_NOT_CORRECT; public static final String SYSTEM_STRUCTURE_IS_NOT_CORRECT = SYSTEM_STRUCTURE + SPACE + IS_NOT_CORRECT; public static final String SYSTEMGROUP_IS_NOT_CORRECT = SYSTEMGROUP + SPACE + IS_NOT_CORRECT; public static final String SYSTEM_IS_NOT_CORRECT = SYSTEM + SPACE + IS_NOT_CORRECT; diff --git a/src/main/java/org/openepics/names/util/ValidateUtil.java b/src/main/java/org/openepics/names/util/ValidateUtil.java index 90303136..70d11e39 100644 --- a/src/main/java/org/openepics/names/util/ValidateUtil.java +++ b/src/main/java/org/openepics/names/util/ValidateUtil.java @@ -454,15 +454,12 @@ public class ValidateUtil { // system structure if (systemGroup != null) { ExceptionUtil.validateConditionDataDeletedException(!systemGroup.isDeleted(), TextUtil.DATA_IS_DELETED, details, TextUtil.PARENTSYSTEMSTRUCTURE); - derivedName = NameUtil.getName(systemGroup, deviceType, nameElement.getIndex(), holder); } else if (system != null) { ExceptionUtil.validateConditionDataDeletedException(!system.isDeleted(), TextUtil.DATA_IS_DELETED, details, TextUtil.PARENTSYSTEMSTRUCTURE); - derivedName = NameUtil.getName(system, deviceType, nameElement.getIndex(), holder); } else if (subsystem != null) { ExceptionUtil.validateConditionDataDeletedException(!subsystem.isDeleted(), TextUtil.DATA_IS_DELETED, details, TextUtil.PARENTSYSTEMSTRUCTURE); - derivedName = NameUtil.getName(subsystem, deviceType, nameElement.getIndex(), holder); } else { throw ExceptionUtil.createDataNotCorrectException(TextUtil.DATA_IS_NOT_CORRECT, details, TextUtil.PARENTSYSTEMSTRUCTURE); @@ -513,14 +510,13 @@ public class ValidateUtil { * * @param name name * @param namingConvention naming convention - * @param holderIRepositories holder repositories - * @param nameRepository name repository + * @param holderRepositories holder repositories * @param holder holder * * @see ValidateUtil#validateNameDataCreate(NameElement, EssNamingConvention, HolderIRepositories, NameRepository, HolderSystemDeviceStructure) */ - public static void validateNameDataCreate(String name, EssNamingConvention namingConvention, HolderIRepositories holderIRepositories, NameRepository nameRepository, HolderSystemDeviceStructure holder) { - if (name == null || namingConvention == null || holderIRepositories == null || nameRepository == null || holder == null) { + public static void validateNameDataCreate(String name, EssNamingConvention namingConvention, HolderRepositories holderRepositories, HolderSystemDeviceStructure holder) { + if (name == null || namingConvention == null || holderRepositories == null || holder == null) { return; } @@ -538,6 +534,9 @@ public class ValidateUtil { String dt = NamingConventionUtil.extractDeviceType(name); String idx = NamingConventionUtil.extractInstanceIndex(name); + String mnemonicPathSystemstructure = NamingConventionUtil.extractMnemonicPathSystemStructure(name); + String mnemonicPathDevicestructure = NamingConventionUtil.extractMnemonicPathDeviceStructure(name); + int count = 0; int countSgSys = 0; int countSgSub = 0; @@ -554,6 +553,7 @@ public class ValidateUtil { count++; countSgSub++; } + // one or two system structure mnemonics + not system group and system + not system group and subsystem if (count < 1 || count > 2 || countSgSys == 2 || countSgSub == 2) { throw ExceptionUtil.createDataNotCorrectException(TextUtil.SYSTEM_STRUCTURE_IS_NOT_CORRECT, details, field); @@ -577,34 +577,27 @@ public class ValidateUtil { // device structure if (!StringUtils.isEmpty(dt)) { - deviceType = holderIRepositories.getDeviceTypeRepository().findLatestNotDeletedByMnemonic(dt); - ExceptionUtil.validateConditionDataNotAvailableException(deviceType != null, TextUtil.DEVICETYPE_IS_NOT_AVAILABLE, details, field); + List<DeviceType> deviceTypes = holderRepositories.getDeviceTypeRepository().readDeviceTypes(Status.APPROVED, false, FieldStructure.MNEMONICPATH, mnemonicPathDevicestructure); + ExceptionUtil.validateConditionDataNotAvailableException(deviceTypes != null && deviceTypes.size() == 1, TextUtil.DEVICETYPE_IS_NOT_AVAILABLE, details, field); + deviceType = deviceTypes.get(0); } // system structure - if (!StringUtils.isEmpty(sg)) { - systemGroup = holderIRepositories.getSystemGroupRepository().findLatestNotDeletedByMnemonic(sg); - ExceptionUtil.validateConditionDataNotAvailableException(systemGroup != null, TextUtil.SYSTEMGROUP_IS_NOT_AVAILABLE, details, field); - + List<Subsystem> subsystems = holderRepositories.getSubsystemRepository().readSubsystems(Status.APPROVED, false, FieldStructure.MNEMONICPATH, mnemonicPathSystemstructure); + List<System> systems = holderRepositories.getSystemRepository().readSystems(Status.APPROVED, false, FieldStructure.MNEMONICPATH, mnemonicPathSystemstructure); + List<SystemGroup> systemGroups = holderRepositories.getSystemGroupRepository().readSystemGroups(Status.APPROVED, false, FieldStructure.MNEMONICPATH, mnemonicPathSystemstructure); + + if (subsystems != null && subsystems.size() == 1) { + subsystem = subsystems.get(0); + derivedName = NameUtil.getName(subsystem, deviceType, NamingConventionUtil.extractInstanceIndex(name), holder); + } else if (systems != null && systems.size() == 1) { + system = systems.get(0); + derivedName = NameUtil.getName(system, deviceType, NamingConventionUtil.extractInstanceIndex(name), holder); + } else if (systemGroups != null && systemGroups.size() == 1) { + systemGroup = systemGroups.get(0); derivedName = NameUtil.getName(systemGroup, deviceType, NamingConventionUtil.extractInstanceIndex(name), holder); - } else { - if (!StringUtils.isEmpty(sys)) { - system = holderIRepositories.getSystemRepository().findLatestNotDeletedByMnemonic(sys); - ExceptionUtil.validateConditionDataNotAvailableException(system != null, TextUtil.SYSTEM_IS_NOT_AVAILABLE, details, field); - - derivedName = NameUtil.getName(system, deviceType, NamingConventionUtil.extractInstanceIndex(name), holder); - } else { - throw ExceptionUtil.createDataNotAvailableException( - TextUtil.SYSTEM_IS_NOT_AVAILABLE, details, field); - } - // TODO is this condition correct? - ExceptionUtil.validateConditionDataNotAvailableException(system != null, TextUtil.SYSTEM_IS_NOT_AVAILABLE, details, field); - if (!StringUtils.isEmpty(sub)) { - subsystem = holderIRepositories.getSubsystemRepository().findLatestNotDeletedByParentAndMnemonic(system.getUuid().toString(), sub); - ExceptionUtil.validateConditionDataNotAvailableException(subsystem != null, TextUtil.SUBSYSTEM_IS_NOT_AVAILABLE, details, field); - - derivedName = NameUtil.getName(subsystem, deviceType, NamingConventionUtil.extractInstanceIndex(name), holder); - } + } else { + throw ExceptionUtil.createDataNotCorrectException(TextUtil.SYSTEM_STRUCTURE_IS_NOT_CORRECT, details, field); } // index @@ -619,10 +612,10 @@ public class ValidateUtil { // convention name equivalence not exists ExceptionUtil.validateConditionDataNotCorrectException(StringUtils.equals(name, derivedName), TextUtil.CONVENTION_NAME_IS_NOT_CORRECT, details, field); - List<Name> names = nameRepository.readNames(false, FieldName.NAME, name); + List<Name> names = holderRepositories.getNameRepository().readNames(false, FieldName.NAME, name); ExceptionUtil.validateConditionDataExistException(names.isEmpty(), TextUtil.CONVENTION_NAME_EXISTS, details, field); - names = nameRepository.readNames(false, FieldName.NAMEEQUIVALENCE, namingConvention.equivalenceClassRepresentative(name)); + names = holderRepositories.getNameRepository().readNames(false, FieldName.NAMEEQUIVALENCE, namingConvention.equivalenceClassRepresentative(name)); ExceptionUtil.validateConditionDataExistException(names.isEmpty(), TextUtil.CONVENTION_NAME_EQUIVALENCE_EXISTS, details, field); } @@ -889,13 +882,18 @@ public class ValidateUtil { String field = TextUtil.UUID; // validate data in itself + // systemgroup, discipline + // not have parent // update, delete // entry not pending // entry approved and not deleted // approve, cancel, reject // entry pending - if (StructureChoice.UPDATE.equals(structureChoice) || StructureChoice.DELETE.equals(structureChoice)) { + if ((Type.SYSTEMGROUP.equals(structureElement.getType()) || Type.DISCIPLINE.equals(structureElement.getType())) + && structureElement.getParent() != null) { + throw ExceptionUtil.createDataNotCorrectException(TextUtil.PARENT_IS_NOT_CORRECT, details, field); + } else if (StructureChoice.UPDATE.equals(structureChoice) || StructureChoice.DELETE.equals(structureChoice)) { ValidateUtil.validateStructuresStatusSize0( structureElement.getUuid(), structureElement.getType(), Status.PENDING, null, holderRepositories, message, details, field); diff --git a/src/test/java/org/openepics/names/docker/complex/NamesMultipleIT.java b/src/test/java/org/openepics/names/docker/complex/NamesMultipleIT.java new file mode 100644 index 00000000..c2c9c875 --- /dev/null +++ b/src/test/java/org/openepics/names/docker/complex/NamesMultipleIT.java @@ -0,0 +1,599 @@ +/* + * Copyright (C) 2022 European Spallation Source ERIC. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +package org.openepics.names.docker.complex; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.fail; + +import java.io.File; +import java.util.UUID; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.openepics.names.docker.ITUtil; +import org.openepics.names.docker.ITUtilNameElement; +import org.openepics.names.docker.ITUtilStructureElement; +import org.openepics.names.rest.beans.Type; +import org.openepics.names.rest.beans.element.NameElement; +import org.openepics.names.rest.beans.element.NameElementCommand; +import org.openepics.names.rest.beans.element.StructureElement; +import org.openepics.names.rest.beans.element.StructureElementCommand; +import org.openepics.names.util.EnumUtil.NameChoice; +import org.testcontainers.containers.DockerComposeContainer; +import org.testcontainers.containers.wait.strategy.Wait; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; + +/** + * Integration tests for Naming and PostgreSQL that make use of existing dockerization + * with docker-compose.yml / Dockerfile. + * + * <p> + * Focus of this class is names endpoint. + * In particular, purpose is to test arrays of names. + * </p> + * + * @author Lars Johansson + */ +@Testcontainers +class NamesMultipleIT { + + // names for each of + // system group + description + comment + // system group + device type + index + description + comment + // system + description + comment + // system + device type + index + description + comment + // subsystem + description + comment + // subsystem + device type + index + description + comment + + @Container + public static final DockerComposeContainer<?> ENVIRONMENT = + new DockerComposeContainer<>(new File("docker-compose-it-db-schema-migration.yml")) + .waitingFor(ITUtil.NAMING, Wait.forLogMessage(".*Started NamingApplication.*", 1)); + + private static UUID systemGroupAcc = null; + private static UUID systemRFQ = null; + private static UUID subsystem010PRL = null; + + private static UUID disciplineCryo = null; + private static UUID deviceGroupCryo = null; + private static UUID deviceType_Cryo_FS = null; + + @BeforeAll + public static void initAll() { + // init system group, system, subsystem, discipline, device group, device type + + StructureElementCommand structureElement = null; + StructureElement approvedStructureElement = null; + + structureElement = new StructureElementCommand( + null, Type.SYSTEMGROUP, null, + "Accelerator", "Acc", + "The ESS Linear Accelerator", "approved by alfio"); + approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement); + systemGroupAcc = approvedStructureElement.getUuid(); + + structureElement = new StructureElementCommand( + null, Type.SYSTEM, systemGroupAcc, + "Radio Frequency Quadrupole", "RFQ", + "empty", "empty"); + approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement); + systemRFQ = approvedStructureElement.getUuid(); + + structureElement = new StructureElementCommand( + null, Type.SUBSYSTEM, systemRFQ, + "01 Phase Reference Line", "010PRL", + "empty", "Approved by Daniel Piso"); + approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement); + subsystem010PRL = approvedStructureElement.getUuid(); + + structureElement = new StructureElementCommand( + null, Type.DISCIPLINE, null, + "Cryogenics", "Cryo", + "empty", "empty"); + approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement); + disciplineCryo = approvedStructureElement.getUuid(); + + structureElement = new StructureElementCommand( + null, Type.DEVICEGROUP, disciplineCryo, + "empty", null, + "empty", "empty"); + approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement); + deviceGroupCryo = approvedStructureElement.getUuid(); + + structureElement = new StructureElementCommand( + null, Type.DEVICETYPE, deviceGroupCryo, + "Flow Switch", "FS", + "empty", "empty"); + approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement); + deviceType_Cryo_FS = approvedStructureElement.getUuid(); + } + + @Test + void checkCreate() { + // purpose + // test conditions for create name + // not create itself + // + // what - combination of + // read exists name + // read is legacy name + // read is valid to create + // read validate create + // + // note + // with and without index + + try { + NameElementCommand[] nameElements = null; + UUID uuid = null; + String value = null; + + nameElements = new NameElementCommand[] { + new NameElementCommand(null, systemGroupAcc, deviceType_Cryo_FS, "011", "checkCreate 1.3.011", "checkCreate 1.3.011"), + new NameElementCommand(null, systemGroupAcc, deviceType_Cryo_FS, "012", "checkCreate 1.3.012", "checkCreate 1.3.012"), + new NameElementCommand(null, systemGroupAcc, deviceType_Cryo_FS, "013", "checkCreate 1.3.013", "checkCreate 1.3.013"), + new NameElementCommand(null, systemRFQ, deviceType_Cryo_FS, "011", "checkCreate 2.3.011", "checkCreate 2.3.011"), + new NameElementCommand(null, systemRFQ, deviceType_Cryo_FS, "012", "checkCreate 2.3.012", "checkCreate 2.3.012"), + new NameElementCommand(null, systemRFQ, deviceType_Cryo_FS, "013", "checkCreate 2.3.013", "checkCreate 2.3.013"), + new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "011", "checkCreate 3.3.011", "checkCreate 3.3.011"), + new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "012", "checkCreate 3.3.012", "checkCreate 3.3.012"), + new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "013", "checkCreate 3.3.013", "checkCreate 3.3.013") + }; + + ITUtilNameElement.assertExists("RFQ:Cryo-FS-011", Boolean.FALSE); + ITUtilNameElement.assertIsLegacy("RFQ:Cryo-FS-011", Boolean.FALSE); + ITUtilNameElement.assertIsValidToCreate("RFQ:Cryo-FS-011", Boolean.TRUE); + ITUtilNameElement.assertValidate(nameElements, NameChoice.CREATE, Boolean.TRUE); + ITUtilNameElement.assertValidate(nameElements, NameChoice.UPDATE, Boolean.FALSE); + ITUtilNameElement.assertValidate(nameElements, NameChoice.DELETE, Boolean.FALSE); + + uuid = deviceType_Cryo_FS; + nameElements[3].setUuid(uuid); + ITUtilNameElement.assertValidate(nameElements, NameChoice.CREATE, Boolean.FALSE); + nameElements[3].setUuid(null); + ITUtilNameElement.assertValidate(nameElements, NameChoice.CREATE, Boolean.TRUE); + + uuid = nameElements[3].getParentsystemstructure(); + nameElements[3].setParentsystemstructure(null); + ITUtilNameElement.assertValidate(nameElements, NameChoice.CREATE, Boolean.FALSE); + nameElements[3].setParentsystemstructure(uuid); + ITUtilNameElement.assertValidate(nameElements, NameChoice.CREATE, Boolean.TRUE); + + uuid = nameElements[3].getParentdevicestructure(); + nameElements[3].setParentdevicestructure(null); + ITUtilNameElement.assertValidate(nameElements, NameChoice.CREATE, Boolean.FALSE); + nameElements[3].setParentdevicestructure(uuid); + ITUtilNameElement.assertValidate(nameElements, NameChoice.CREATE, Boolean.TRUE); + + value = nameElements[3].getIndex(); + nameElements[3].setIndex(null); + ITUtilNameElement.assertValidate(nameElements, NameChoice.CREATE, Boolean.FALSE); + nameElements[3].setIndex(value); + ITUtilNameElement.assertValidate(nameElements, NameChoice.CREATE, Boolean.TRUE); + + value = nameElements[3].getDescription(); + nameElements[3].setDescription(null); + ITUtilNameElement.assertValidate(nameElements, NameChoice.CREATE, Boolean.FALSE); + nameElements[3].setDescription(value); + ITUtilNameElement.assertValidate(nameElements, NameChoice.CREATE, Boolean.TRUE); + + value = nameElements[3].getComment(); + nameElements[3].setComment(null); + ITUtilNameElement.assertValidate(nameElements, NameChoice.CREATE, Boolean.FALSE); + nameElements[3].setComment(value); + ITUtilNameElement.assertValidate(nameElements, NameChoice.CREATE, Boolean.TRUE); + } catch (Exception e) { + fail(); + } + } + + @Test + void create() { + // purpose + // test create name + // + // what - combination of + // create create names + // read exists name + // read is legacy name + // read is valid to create + // read validate create + // + // note + // with and without index + + try { + NameElementCommand[] nameElements = null; + NameElement[] createdNameElements = null; + + nameElements = new NameElementCommand[] { + new NameElementCommand(null, systemGroupAcc, null, null, "create 1.0.0", "create 1.0.0"), + new NameElementCommand(null, systemGroupAcc, deviceType_Cryo_FS, "021", "create 1.3.021", "create 1.3.021"), + new NameElementCommand(null, systemGroupAcc, deviceType_Cryo_FS, "022", "create 1.3.022", "create 1.3.022"), + new NameElementCommand(null, systemGroupAcc, deviceType_Cryo_FS, "023", "create 1.3.023", "create 1.3.023"), + new NameElementCommand(null, systemRFQ, deviceType_Cryo_FS, "021", "create 2.3.021", "create 2.3.021"), + new NameElementCommand(null, systemRFQ, deviceType_Cryo_FS, "022", "create 2.3.022", "create 2.3.022"), + new NameElementCommand(null, systemRFQ, deviceType_Cryo_FS, "023", "create 2.3.023", "create 2.3.023"), + new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "021", "create 3.3.021", "create 3.3.021"), + new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "022", "create 3.3.022", "create 3.3.022"), + new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "023", "create 3.3.023", "create 3.3.023") + }; + + ITUtilNameElement.assertExists("Acc:Cryo-FS-023", Boolean.FALSE); + ITUtilNameElement.assertIsLegacy("Acc:Cryo-FS-023", Boolean.FALSE); + ITUtilNameElement.assertIsValidToCreate("Acc:Cryo-FS-023", Boolean.TRUE); + ITUtilNameElement.assertValidate(nameElements, NameChoice.CREATE, Boolean.TRUE); + ITUtilNameElement.assertValidate(nameElements, NameChoice.UPDATE, Boolean.FALSE); + ITUtilNameElement.assertValidate(nameElements, NameChoice.DELETE, Boolean.FALSE); + + createdNameElements = ITUtilNameElement.assertCreate(nameElements); + assertNotNull(createdNameElements); + assertEquals(10, createdNameElements.length); + + ITUtilNameElement.assertExists("Acc:Cryo-FS-023", Boolean.TRUE); + ITUtilNameElement.assertIsLegacy("Acc:Cryo-FS-023", Boolean.FALSE); + ITUtilNameElement.assertIsValidToCreate("Acc:Cryo-FS-023", Boolean.FALSE); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.CREATE, Boolean.FALSE); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.UPDATE, Boolean.TRUE); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.DELETE, Boolean.TRUE); + } catch (Exception e) { + fail(); + } + } + + @Test + void checkUpdate() { + // purpose + // test conditions for update name + // not update + // + // what - combination of + // create create names + // read exists name + // read is legacy name + // read is valid to create + // read validate create + // read validate update + // + // note + // create in order to update + // validate update + + NameElementCommand[] nameElements = null; + NameElement[] createdNameElements = null; + UUID uuid = null; + String value = null; + + nameElements = new NameElementCommand[] { + new NameElementCommand(null, systemGroupAcc, deviceType_Cryo_FS, "031", "checkUpdate 1.3.031", "checkUpdate 1.3.031"), + new NameElementCommand(null, systemGroupAcc, deviceType_Cryo_FS, "032", "checkUpdate 1.3.032", "checkUpdate 1.3.032"), + new NameElementCommand(null, systemGroupAcc, deviceType_Cryo_FS, "033", "checkUpdate 1.3.033", "checkUpdate 1.3.033"), + new NameElementCommand(null, systemRFQ, deviceType_Cryo_FS, "031", "checkUpdate 2.3.031", "checkUpdate 2.3.031"), + new NameElementCommand(null, systemRFQ, deviceType_Cryo_FS, "032", "checkUpdate 2.3.032", "checkUpdate 2.3.032"), + new NameElementCommand(null, systemRFQ, deviceType_Cryo_FS, "033", "checkUpdate 2.3.033", "checkUpdate 2.3.033"), + new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "031", "checkUpdate 3.3.031", "checkUpdate 3.3.031"), + new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "032", "checkUpdate 3.3.032", "checkUpdate 3.3.032"), + new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "033", "checkUpdate 3.3.033", "checkUpdate 3.3.033") + }; + + ITUtilNameElement.assertExists("RFQ:Cryo-FS-031", Boolean.FALSE); + ITUtilNameElement.assertIsLegacy("RFQ:Cryo-FS-031", Boolean.FALSE); + ITUtilNameElement.assertIsValidToCreate("RFQ:Cryo-FS-031", Boolean.TRUE); + ITUtilNameElement.assertValidate(nameElements, NameChoice.CREATE, Boolean.TRUE); + ITUtilNameElement.assertValidate(nameElements, NameChoice.UPDATE, Boolean.FALSE); + ITUtilNameElement.assertValidate(nameElements, NameChoice.DELETE, Boolean.FALSE); + + createdNameElements = ITUtilNameElement.assertCreate(nameElements); + assertNotNull(createdNameElements); + assertEquals(9, createdNameElements.length); + + ITUtilNameElement.assertExists("RFQ:Cryo-FS-031", Boolean.TRUE); + ITUtilNameElement.assertIsLegacy("RFQ:Cryo-FS-031", Boolean.FALSE); + ITUtilNameElement.assertIsValidToCreate("RFQ:Cryo-FS-031", Boolean.FALSE); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.CREATE, Boolean.FALSE); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.UPDATE, Boolean.TRUE); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.DELETE, Boolean.TRUE); + + uuid = createdNameElements[3].getUuid(); + createdNameElements[3].setUuid(null); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.UPDATE, Boolean.FALSE); + createdNameElements[3].setUuid(uuid); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.UPDATE, Boolean.TRUE); + + uuid = createdNameElements[3].getParentsystemstructure(); + createdNameElements[3].setParentsystemstructure(null); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.UPDATE, Boolean.FALSE); + createdNameElements[3].setParentsystemstructure(uuid); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.UPDATE, Boolean.TRUE); + + uuid = createdNameElements[3].getParentdevicestructure(); + createdNameElements[3].setParentdevicestructure(null); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.UPDATE, Boolean.FALSE); + createdNameElements[3].setParentdevicestructure(uuid); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.UPDATE, Boolean.TRUE); + + value = createdNameElements[3].getIndex(); + createdNameElements[3].setIndex(null); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.UPDATE, Boolean.FALSE); + createdNameElements[3].setIndex(value); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.UPDATE, Boolean.TRUE); + + value = createdNameElements[3].getDescription(); + createdNameElements[3].setDescription(null); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.UPDATE, Boolean.FALSE); + createdNameElements[3].setDescription(value); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.UPDATE, Boolean.TRUE); + + value = createdNameElements[3].getComment(); + createdNameElements[3].setComment(null); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.UPDATE, Boolean.FALSE); + createdNameElements[3].setComment(value); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.UPDATE, Boolean.TRUE); + } + + @Test + void update() { + // purpose + // test update name + // + // what - combination of + // create create names + // read exists name + // read is legacy name + // read is valid to create + // read validate create + // read validate update + // update update names + // + // note + // create in order to update + + NameElementCommand[] nameElements = null; + NameElement[] createdNameElements = null; + NameElement[] updatedNameElements = null; + + nameElements = new NameElementCommand[] { + new NameElementCommand(null, systemGroupAcc, deviceType_Cryo_FS, "041", "update 1.3.041", "update 1.3.041"), + new NameElementCommand(null, systemGroupAcc, deviceType_Cryo_FS, "042", "update 1.3.042", "update 1.3.042"), + new NameElementCommand(null, systemGroupAcc, deviceType_Cryo_FS, "043", "update 1.3.043", "update 1.3.043"), + new NameElementCommand(null, systemRFQ, null, null, "update 2.0.0", "update 2.0.0"), + new NameElementCommand(null, systemRFQ, deviceType_Cryo_FS, "041", "update 2.3.041", "update 2.3.041"), + new NameElementCommand(null, systemRFQ, deviceType_Cryo_FS, "042", "update 2.3.042", "update 2.3.042"), + new NameElementCommand(null, systemRFQ, deviceType_Cryo_FS, "043", "update 2.3.043", "update 2.3.043"), + new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "041", "update 3.3.041", "update 3.3.041"), + new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "042", "update 3.3.042", "update 3.3.042"), + new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "043", "update 3.3.043", "update 3.3.043") + }; + + ITUtilNameElement.assertExists("RFQ", Boolean.FALSE); + ITUtilNameElement.assertIsLegacy("RFQ", Boolean.FALSE); + ITUtilNameElement.assertIsValidToCreate("RFQ", Boolean.TRUE); + ITUtilNameElement.assertValidate(nameElements, NameChoice.CREATE, Boolean.TRUE); + ITUtilNameElement.assertValidate(nameElements, NameChoice.UPDATE, Boolean.FALSE); + ITUtilNameElement.assertValidate(nameElements, NameChoice.DELETE, Boolean.FALSE); + + createdNameElements = ITUtilNameElement.assertCreate(nameElements); + assertNotNull(createdNameElements); + assertEquals(10, createdNameElements.length); + + ITUtilNameElement.assertExists("RFQ", Boolean.TRUE); + ITUtilNameElement.assertIsLegacy("RFQ", Boolean.FALSE); + ITUtilNameElement.assertIsValidToCreate("RFQ", Boolean.FALSE); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.CREATE, Boolean.FALSE); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.UPDATE, Boolean.TRUE); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.DELETE, Boolean.TRUE); + + createdNameElements[0].setDescription("0"); + createdNameElements[1].setDescription("1"); + createdNameElements[2].setDescription("2"); + createdNameElements[3].setDescription("3"); + createdNameElements[4].setDescription("4"); + createdNameElements[5].setDescription("5"); + createdNameElements[6].setDescription("6"); + createdNameElements[7].setDescription("7"); + createdNameElements[8].setDescription("8"); + createdNameElements[9].setDescription("9"); + + ITUtilNameElement.assertExists("RFQ", Boolean.TRUE); + ITUtilNameElement.assertIsLegacy("RFQ", Boolean.FALSE); + ITUtilNameElement.assertIsValidToCreate("RFQ", Boolean.FALSE); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.CREATE, Boolean.FALSE); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.UPDATE, Boolean.TRUE); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.DELETE, Boolean.TRUE); + + updatedNameElements = ITUtilNameElement.assertUpdate(createdNameElements); + assertNotNull(updatedNameElements); + assertEquals(10, updatedNameElements.length); + + ITUtilNameElement.assertExists("RFQ", Boolean.TRUE); + ITUtilNameElement.assertIsLegacy("RFQ", Boolean.FALSE); + ITUtilNameElement.assertIsValidToCreate("RFQ", Boolean.FALSE); + ITUtilNameElement.assertValidate(updatedNameElements, NameChoice.CREATE, Boolean.FALSE); + ITUtilNameElement.assertValidate(updatedNameElements, NameChoice.UPDATE, Boolean.TRUE); + ITUtilNameElement.assertValidate(updatedNameElements, NameChoice.DELETE, Boolean.TRUE); + } + + @Test + void checkDelete() { + // purpose + // test conditions for delete name + // not delete + // + // what - combination of + // create create names + // read exists name + // read is legacy name + // read is valid to create + // read validate create + // read validate delete + // + // note + // create in order to delete + // validate delete + // uuid + // comment + + NameElementCommand[] nameElements = null; + NameElement[] createdNameElements = null; + UUID uuid = null; + String value = null; + + nameElements = new NameElementCommand[] { + new NameElementCommand(null, systemGroupAcc, deviceType_Cryo_FS, "051", "checkDelete 1.3.051", "checkDelete 1.3.051"), + new NameElementCommand(null, systemGroupAcc, deviceType_Cryo_FS, "052", "checkDelete 1.3.052", "checkDelete 1.3.052"), + new NameElementCommand(null, systemGroupAcc, deviceType_Cryo_FS, "053", "checkDelete 1.3.053", "checkDelete 1.3.053"), + new NameElementCommand(null, systemRFQ, deviceType_Cryo_FS, "051", "checkDelete 2.3.051", "checkDelete 2.3.051"), + new NameElementCommand(null, systemRFQ, deviceType_Cryo_FS, "052", "checkDelete 2.3.052", "checkDelete 2.3.052"), + new NameElementCommand(null, systemRFQ, deviceType_Cryo_FS, "053", "checkDelete 2.3.053", "checkDelete 2.3.053"), + new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "051", "checkDelete 3.3.051", "checkDelete 3.3.051"), + new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "052", "checkDelete 3.3.052", "checkDelete 3.3.052"), + new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "053", "checkDelete 3.3.053", "checkDelete 3.3.053") + }; + + ITUtilNameElement.assertExists("RFQ:Cryo-FS-051", Boolean.FALSE); + ITUtilNameElement.assertIsLegacy("RFQ:Cryo-FS-051", Boolean.FALSE); + ITUtilNameElement.assertIsValidToCreate("RFQ:Cryo-FS-051", Boolean.TRUE); + ITUtilNameElement.assertValidate(nameElements, NameChoice.CREATE, Boolean.TRUE); + ITUtilNameElement.assertValidate(nameElements, NameChoice.UPDATE, Boolean.FALSE); + ITUtilNameElement.assertValidate(nameElements, NameChoice.DELETE, Boolean.FALSE); + + createdNameElements = ITUtilNameElement.assertCreate(nameElements); + assertNotNull(createdNameElements); + assertEquals(9, createdNameElements.length); + + ITUtilNameElement.assertExists("RFQ:Cryo-FS-051", Boolean.TRUE); + ITUtilNameElement.assertIsLegacy("RFQ:Cryo-FS-051", Boolean.FALSE); + ITUtilNameElement.assertIsValidToCreate("RFQ:Cryo-FS-051", Boolean.FALSE); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.CREATE, Boolean.FALSE); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.UPDATE, Boolean.TRUE); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.DELETE, Boolean.TRUE); + + uuid = createdNameElements[3].getUuid(); + createdNameElements[3].setUuid(null); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.DELETE, Boolean.FALSE); + createdNameElements[3].setUuid(uuid); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.DELETE, Boolean.TRUE); + + uuid = createdNameElements[3].getParentsystemstructure(); + createdNameElements[3].setParentsystemstructure(null); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.DELETE, Boolean.TRUE); + createdNameElements[3].setParentsystemstructure(uuid); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.DELETE, Boolean.TRUE); + + uuid = createdNameElements[3].getParentdevicestructure(); + createdNameElements[3].setParentdevicestructure(null); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.DELETE, Boolean.TRUE); + createdNameElements[3].setParentdevicestructure(uuid); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.DELETE, Boolean.TRUE); + + value = createdNameElements[3].getIndex(); + createdNameElements[3].setIndex(null); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.DELETE, Boolean.TRUE); + createdNameElements[3].setIndex(value); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.DELETE, Boolean.TRUE); + + value = createdNameElements[3].getDescription(); + createdNameElements[3].setDescription(null); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.DELETE, Boolean.TRUE); + createdNameElements[3].setDescription(value); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.DELETE, Boolean.TRUE); + + value = createdNameElements[3].getComment(); + createdNameElements[3].setComment(null); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.DELETE, Boolean.FALSE); + createdNameElements[3].setComment(value); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.DELETE, Boolean.TRUE); + } + + @Test + void delete() { + // purpose + // test delete name + // + // what - combination of + // create create names + // read exists name + // read is legacy name + // read is valid to create + // read validate create + // read validate update + // delete delete names + // + // note + // create in order to delete + // + // names for each of + // system group + description + comment + // system group + device type + index + description + comment + // system + description + comment + // system + device type + index + description + comment + // subsystem + description + comment + // subsystem + device type + index + description + comment + + NameElementCommand[] nameElements = null; + NameElement[] createdNameElements = null; + NameElement[] deletedNameElements = null; + + nameElements = new NameElementCommand[] { + new NameElementCommand(null, systemGroupAcc, deviceType_Cryo_FS, "061", "delete 1.3.061", "delete 1.3.061"), + new NameElementCommand(null, systemGroupAcc, deviceType_Cryo_FS, "062", "delete 1.3.062", "delete 1.3.062"), + new NameElementCommand(null, systemGroupAcc, deviceType_Cryo_FS, "063", "delete 1.3.063", "delete 1.3.063"), + new NameElementCommand(null, systemRFQ, deviceType_Cryo_FS, "061", "delete 2.3.061", "delete 2.3.061"), + new NameElementCommand(null, systemRFQ, deviceType_Cryo_FS, "062", "delete 2.3.062", "delete 2.3.062"), + new NameElementCommand(null, systemRFQ, deviceType_Cryo_FS, "063", "delete 2.3.063", "delete 2.3.063"), + new NameElementCommand(null, subsystem010PRL, null, null, "delete 3.0.0", "delete 3.0.0"), + new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "061", "delete 3.3.061", "delete 3.3.061"), + new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "062", "delete 3.3.062", "delete 3.3.062"), + new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "063", "delete 3.3.063", "delete 3.3.063") + }; + + ITUtilNameElement.assertExists("RFQ:Cryo-FS-061", Boolean.FALSE); + ITUtilNameElement.assertIsLegacy("RFQ:Cryo-FS-061", Boolean.FALSE); + ITUtilNameElement.assertIsValidToCreate("RFQ:Cryo-FS-061", Boolean.TRUE); + ITUtilNameElement.assertValidate(nameElements, NameChoice.CREATE, Boolean.TRUE); + ITUtilNameElement.assertValidate(nameElements, NameChoice.UPDATE, Boolean.FALSE); + ITUtilNameElement.assertValidate(nameElements, NameChoice.DELETE, Boolean.FALSE); + + createdNameElements = ITUtilNameElement.assertCreate(nameElements); + assertNotNull(createdNameElements); + assertEquals(10, createdNameElements.length); + + ITUtilNameElement.assertExists("RFQ:Cryo-FS-061", Boolean.TRUE); + ITUtilNameElement.assertIsLegacy("RFQ:Cryo-FS-061", Boolean.FALSE); + ITUtilNameElement.assertIsValidToCreate("RFQ:Cryo-FS-061", Boolean.FALSE); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.CREATE, Boolean.FALSE); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.UPDATE, Boolean.TRUE); + ITUtilNameElement.assertValidate(createdNameElements, NameChoice.DELETE, Boolean.TRUE); + + deletedNameElements = ITUtilNameElement.assertDelete(createdNameElements); + assertNotNull(deletedNameElements); + assertEquals(10, deletedNameElements.length); + + ITUtilNameElement.assertExists("RFQ:Cryo-FS-061", Boolean.FALSE); + ITUtilNameElement.assertIsLegacy("RFQ:Cryo-FS-061", Boolean.FALSE); + ITUtilNameElement.assertIsValidToCreate("RFQ:Cryo-FS-061", Boolean.TRUE); + ITUtilNameElement.assertValidate(nameElements, NameChoice.CREATE, Boolean.TRUE); + ITUtilNameElement.assertValidate(deletedNameElements, NameChoice.CREATE, Boolean.FALSE); + ITUtilNameElement.assertValidate(deletedNameElements, NameChoice.UPDATE, Boolean.FALSE); + ITUtilNameElement.assertValidate(deletedNameElements, NameChoice.DELETE, Boolean.FALSE); + } + +} diff --git a/src/test/java/org/openepics/names/docker/complex/StructuresMultipleIT.java b/src/test/java/org/openepics/names/docker/complex/StructuresMultipleIT.java new file mode 100644 index 00000000..c23be18b --- /dev/null +++ b/src/test/java/org/openepics/names/docker/complex/StructuresMultipleIT.java @@ -0,0 +1,1658 @@ +/* + * Copyright (C) 2022 European Spallation Source ERIC. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +package org.openepics.names.docker.complex; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.fail; + +import java.io.File; +import java.util.UUID; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.openepics.names.docker.ITUtil; +import org.openepics.names.docker.ITUtilStructureElement; +import org.openepics.names.rest.beans.Type; +import org.openepics.names.rest.beans.element.StructureElement; +import org.openepics.names.rest.beans.element.StructureElementCommand; +import org.openepics.names.util.EnumUtil.StructureChoice; +import org.testcontainers.containers.DockerComposeContainer; +import org.testcontainers.containers.wait.strategy.Wait; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; + +/** + * Integration tests for Naming and PostgreSQL that make use of existing dockerization + * with docker-compose.yml / Dockerfile. + * + * <p> + * Focus of this class is structures endpoint and system. + * In particular, purpose is to test arrays of structures. + * </p> + * + * @author Lars Johansson + */ +@Testcontainers +class StructuresMultipleIT { + + @Container + public static final DockerComposeContainer<?> ENVIRONMENT = + new DockerComposeContainer<>(new File("docker-compose-it-db-schema-migration.yml")) + .waitingFor(ITUtil.NAMING, Wait.forLogMessage(".*Started NamingApplication.*", 1)); + + private static UUID systemGroupUuid = null; + private static UUID systemUuid = null; + private static UUID subsystemUuid = null; + + private static UUID disciplineUuid = null; + private static UUID deviceGroupUuid = null; + @SuppressWarnings("unused") + private static UUID deviceTypeUuid = null; + + @BeforeAll + public static void initAll() { + // init system group, system, discipline, device group + + StructureElementCommand structureElement = null; + StructureElement approvedStructureElement = null; + + structureElement = new StructureElementCommand( + null, Type.SYSTEMGROUP, null, + "name", "Sg", + "description", "comment"); + approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement); + systemGroupUuid = approvedStructureElement.getUuid(); + + structureElement = new StructureElementCommand( + null, Type.SYSTEM, systemGroupUuid, + "name", "Sys", + "description", "comment"); + approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement); + systemUuid = approvedStructureElement.getUuid(); + + structureElement = new StructureElementCommand( + null, Type.SUBSYSTEM, systemUuid, + "name", "Sub", + "description", "comment"); + approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement); + subsystemUuid = approvedStructureElement.getUuid(); + + structureElement = new StructureElementCommand( + null, Type.DISCIPLINE, null, + "name", "Di", + "description", "comment"); + approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement); + disciplineUuid = approvedStructureElement.getUuid(); + + structureElement = new StructureElementCommand( + null, Type.DEVICEGROUP, disciplineUuid, + "name", null, + "description", "comment"); + approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement); + deviceGroupUuid = approvedStructureElement.getUuid(); + + structureElement = new StructureElementCommand( + null, Type.DEVICETYPE, deviceGroupUuid, + "name", "Dt", + "description", "comment"); + approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement); + deviceTypeUuid = approvedStructureElement.getUuid(); + } + + @Test + void checkCreate() { + // purpose + // test conditions for create subsystem + // not create itself + // + // what - combination of + // create create structures + // read exists in structure + // read is valid to create + // read validate create + // + // validate create + // type + // parent + // name + // mnemonic + // description + // comment + + try { + StructureElementCommand[] structureElements = null; + UUID uuid = null; + String value = null; + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "Sg", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgChc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "Sg", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgChc", Boolean.TRUE); + + ITUtilStructureElement.assertExists(Type.SYSTEM, "Sys", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysChc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "Sys", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysChc", Boolean.TRUE); + + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-Sub", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubChc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-Sub", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubChc", Boolean.TRUE); + + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "Di", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiChc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "Di", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiChc", Boolean.TRUE); + + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "Grp", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpChc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "Grp", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpChc", Boolean.FALSE); + + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-Dt", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtChc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-Dt", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtChc", Boolean.TRUE); + + structureElements = new StructureElementCommand[] { + new StructureElementCommand(null, Type.SYSTEMGROUP, null, "name", "SgChc", "description", "comment"), + new StructureElementCommand(null, Type.SYSTEM, systemGroupUuid, "name", "SysChc", "description", "comment"), + new StructureElementCommand(null, Type.SUBSYSTEM, systemUuid, "name", "SubChc", "description", "comment"), + new StructureElementCommand(null, Type.DISCIPLINE, null, "name", "DiChc", "description", "comment"), + new StructureElementCommand(null, Type.DEVICEGROUP, disciplineUuid, "name", "", "description", "comment"), + new StructureElementCommand(null, Type.DEVICETYPE, deviceGroupUuid, "name", "DtChc", "description", "comment") + }; + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.UPDATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.DELETE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.REJECT, Boolean.FALSE); + + uuid = subsystemUuid; + structureElements[1].setUuid(uuid); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.FALSE); + structureElements[1].setUuid(null); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.TRUE); + + structureElements[1].setType(null); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.FALSE); + structureElements[1].setType(Type.SYSTEMGROUP); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.FALSE); + structureElements[1].setType(Type.SUBSYSTEM); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.FALSE); + structureElements[1].setType(Type.SYSTEM); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.TRUE); + + structureElements[1].setParent(null); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.FALSE); + structureElements[1].setParent(systemUuid); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.FALSE); + structureElements[1].setParent(subsystemUuid); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.FALSE); + structureElements[1].setParent(systemGroupUuid); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.TRUE); + + value = structureElements[1].getName(); + structureElements[1].setName(null); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.FALSE); + structureElements[1].setName(value); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.TRUE); + + value = structureElements[1].getDescription(); + structureElements[1].setDescription(null); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.FALSE); + structureElements[1].setDescription(value); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.TRUE); + + value = structureElements[1].getComment(); + structureElements[1].setComment(null); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.FALSE); + structureElements[1].setComment(value); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.TRUE); + } catch (Exception e) { + fail(); + } + } + + @Test + void createApprove() { + // purpose + // test create and approve subsystem + // + // what - combination of + // create create structures + // read exists in structure + // read is valid to create + // read validate create + // read validate approve + // patch approve structures + // + // note + // create in order to approve + + try { + StructureElementCommand[] structureElements = null; + StructureElement[] createdStructureElements = null; + StructureElement[] approvedStructureElements = null; + + structureElements = new StructureElementCommand[] { + new StructureElementCommand(null, Type.SYSTEMGROUP, null, "name", "SgCa", "description", "comment"), + new StructureElementCommand(null, Type.SYSTEM, systemGroupUuid, "name", "SysCa", "description", "comment"), + new StructureElementCommand(null, Type.SUBSYSTEM, systemUuid, "name", "SubCa", "description", "comment"), + new StructureElementCommand(null, Type.DISCIPLINE, null, "name", "DiCa", "description", "comment"), + new StructureElementCommand(null, Type.DEVICEGROUP, disciplineUuid, "name", "", "description", "comment"), + new StructureElementCommand(null, Type.DEVICETYPE, deviceGroupUuid, "name", "DtCa", "description", "comment") + }; + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgCa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysCa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubCa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiCa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpCa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtCa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgCa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysCa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubCa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiCa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpCa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtCa", Boolean.TRUE); + + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.UPDATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.DELETE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.REJECT, Boolean.FALSE); + + createdStructureElements = ITUtilStructureElement.assertCreate(structureElements); + assertNotNull(createdStructureElements); + assertEquals(6, createdStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgCa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysCa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubCa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiCa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpCa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtCa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgCa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysCa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubCa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiCa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpCa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtCa", Boolean.TRUE); + + ITUtilStructureElement.assertValidate(createdStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(createdStructureElements, StructureChoice.UPDATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(createdStructureElements, StructureChoice.DELETE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(createdStructureElements, StructureChoice.APPROVE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(createdStructureElements, StructureChoice.CANCEL, Boolean.TRUE); + ITUtilStructureElement.assertValidate(createdStructureElements, StructureChoice.REJECT, Boolean.TRUE); + + approvedStructureElements = ITUtilStructureElement.assertApprove(createdStructureElements); + assertNotNull(approvedStructureElements); + assertEquals(6, approvedStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgCa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysCa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubCa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiCa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpCa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtCa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgCa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysCa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubCa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiCa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpCa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtCa", Boolean.FALSE); + + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.REJECT, Boolean.FALSE); + } catch (Exception e) { + fail(); + } + } + + @Test + void createCancel() { + // purpose + // test create and cancel subsystem + // + // what - combination of + // create create structures + // read exists in structure + // read is valid to create + // read validate create + // read validate cancel + // patch cancel structures + // + // note + // create in order to cancel + + try { + StructureElementCommand[] structureElements = null; + StructureElement[] createdStructureElements = null; + StructureElement[] cancelledStructureElements = null; + + structureElements = new StructureElementCommand[] { + new StructureElementCommand(null, Type.SYSTEMGROUP, null, "name", "SgCc", "description", "comment"), + new StructureElementCommand(null, Type.SYSTEM, systemGroupUuid, "name", "SysCc", "description", "comment"), + new StructureElementCommand(null, Type.SUBSYSTEM, systemUuid, "name", "SubCc", "description", "comment"), + new StructureElementCommand(null, Type.DISCIPLINE, null, "name", "DiCc", "description", "comment"), + new StructureElementCommand(null, Type.DEVICEGROUP, disciplineUuid, "name", "", "description", "comment"), + new StructureElementCommand(null, Type.DEVICETYPE, deviceGroupUuid, "name", "DtCc", "description", "comment") + }; + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgCc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysCc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubCc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiCc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpCc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtCc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgCc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysCc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubCc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiCc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpCc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtCc", Boolean.TRUE); + + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.UPDATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.DELETE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.REJECT, Boolean.FALSE); + + createdStructureElements = ITUtilStructureElement.assertCreate(structureElements); + assertNotNull(createdStructureElements); + assertEquals(6, createdStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgCc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysCc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubCc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiCc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpCc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtCc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgCc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysCc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubCc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiCc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpCc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtCc", Boolean.TRUE); + + ITUtilStructureElement.assertValidate(createdStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(createdStructureElements, StructureChoice.UPDATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(createdStructureElements, StructureChoice.DELETE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(createdStructureElements, StructureChoice.APPROVE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(createdStructureElements, StructureChoice.CANCEL, Boolean.TRUE); + ITUtilStructureElement.assertValidate(createdStructureElements, StructureChoice.REJECT, Boolean.TRUE); + + cancelledStructureElements = ITUtilStructureElement.assertCancel(createdStructureElements); + assertNotNull(cancelledStructureElements); + assertEquals(6, cancelledStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgCc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysCc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubCc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiCc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpCc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtCc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgCc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysCc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubCc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiCc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpCc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtCc", Boolean.TRUE); + + ITUtilStructureElement.assertValidate(cancelledStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(cancelledStructureElements, StructureChoice.UPDATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(cancelledStructureElements, StructureChoice.DELETE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(cancelledStructureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(cancelledStructureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(cancelledStructureElements, StructureChoice.REJECT, Boolean.FALSE); + } catch (Exception e) { + fail(); + } + } + + @Test + void createReject() { + // purpose + // test create and reject subsystem + // + // what - combination of + // create create structures + // read validate create + // read validate reject + // patch reject structures + // + // note + // create in order to reject + + try { + StructureElementCommand[] structureElements = null; + StructureElement[] createdStructureElements = null; + StructureElement[] rejectedStructureElements = null; + + structureElements = new StructureElementCommand[] { + new StructureElementCommand(null, Type.SYSTEMGROUP, null, "name", "SgCr", "description", "comment"), + new StructureElementCommand(null, Type.SYSTEM, systemGroupUuid, "name", "SysCr", "description", "comment"), + new StructureElementCommand(null, Type.SUBSYSTEM, systemUuid, "name", "SubCr", "description", "comment"), + new StructureElementCommand(null, Type.DISCIPLINE, null, "name", "DiCr", "description", "comment"), + new StructureElementCommand(null, Type.DEVICEGROUP, disciplineUuid, "name", "", "description", "comment"), + new StructureElementCommand(null, Type.DEVICETYPE, deviceGroupUuid, "name", "DtCr", "description", "comment") + }; + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgCr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysCr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubCr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiCr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpCr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtCr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgCr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysCr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubCr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiCr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpCr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtCr", Boolean.TRUE); + + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.UPDATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.DELETE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.REJECT, Boolean.FALSE); + + createdStructureElements = ITUtilStructureElement.assertCreate(structureElements); + assertNotNull(createdStructureElements); + assertEquals(6, createdStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgCr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysCr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubCr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiCr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpCr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtCr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgCr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysCr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubCr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiCr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpCr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtCr", Boolean.TRUE); + + ITUtilStructureElement.assertValidate(createdStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(createdStructureElements, StructureChoice.UPDATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(createdStructureElements, StructureChoice.DELETE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(createdStructureElements, StructureChoice.APPROVE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(createdStructureElements, StructureChoice.CANCEL, Boolean.TRUE); + ITUtilStructureElement.assertValidate(createdStructureElements, StructureChoice.REJECT, Boolean.TRUE); + + rejectedStructureElements = ITUtilStructureElement.assertReject(createdStructureElements); + assertNotNull(rejectedStructureElements); + assertEquals(6, rejectedStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgCr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysCr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubCr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiCr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpCr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtCr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgCr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysCr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubCr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiCr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpCr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtCr", Boolean.TRUE); + + ITUtilStructureElement.assertValidate(rejectedStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(rejectedStructureElements, StructureChoice.UPDATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(rejectedStructureElements, StructureChoice.DELETE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(rejectedStructureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(rejectedStructureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(rejectedStructureElements, StructureChoice.REJECT, Boolean.FALSE); + } catch (Exception e) { + fail(); + } + } + + @Test + void checkUpdate() { + // purpose + // test conditions for update subsystem + // not update + // + // what - combination of + // create create structures + // read exists in structure + // read is valid to create + // read validate create + // read validate update + // read validate approve + // patch approve structures + // + // note + // create, approve in order to update + // + // validate update + // uuid + // type + // parent + // name + // mnemonic + // description + // comment + + try { + StructureElementCommand[] structureElements = null; + StructureElement[] approvedStructureElements = null; + UUID uuid = null; + String value = null; + + structureElements = new StructureElementCommand[] { + new StructureElementCommand(null, Type.SYSTEMGROUP, null, "name", "SgCu", "description", "comment"), + new StructureElementCommand(null, Type.SYSTEM, systemGroupUuid, "name", "SysCu", "description", "comment"), + new StructureElementCommand(null, Type.SUBSYSTEM, systemUuid, "name", "SubCu", "description", "comment"), + new StructureElementCommand(null, Type.DISCIPLINE, null, "name", "DiCu", "description", "comment"), + new StructureElementCommand(null, Type.DEVICEGROUP, disciplineUuid, "name", "", "description", "comment"), + new StructureElementCommand(null, Type.DEVICETYPE, deviceGroupUuid, "name", "DtCu", "description", "comment") + }; + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgCu", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysCu", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubCu", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiCu", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpCu", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtCu", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgCu", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysCu", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubCu", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiCu", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpCu", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtCu", Boolean.TRUE); + + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.UPDATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.DELETE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.REJECT, Boolean.FALSE); + + approvedStructureElements = ITUtilStructureElement.assertCreateApprove(structureElements); + assertNotNull(approvedStructureElements); + assertEquals(6, approvedStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgCu", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysCu", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubCu", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiCu", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpCu", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtCu", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgCu", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysCu", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubCu", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiCu", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpCu", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtCu", Boolean.FALSE); + + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.REJECT, Boolean.FALSE); + + uuid = approvedStructureElements[1].getUuid(); + approvedStructureElements[1].setUuid(null); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.FALSE); + approvedStructureElements[1].setUuid(uuid); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.TRUE); + + approvedStructureElements[1].setType(null); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.FALSE); + approvedStructureElements[1].setType(Type.SYSTEMGROUP); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.FALSE); + approvedStructureElements[1].setType(Type.SUBSYSTEM); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.FALSE); + approvedStructureElements[1].setType(Type.SYSTEM); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.TRUE); + + approvedStructureElements[1].setParent(null); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.FALSE); + approvedStructureElements[1].setParent(systemUuid); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.FALSE); + approvedStructureElements[1].setParent(subsystemUuid); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.FALSE); + approvedStructureElements[1].setParent(systemGroupUuid); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.TRUE); + + value = approvedStructureElements[1].getName(); + approvedStructureElements[1].setName(null); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.FALSE); + approvedStructureElements[1].setName(value); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.TRUE); + + value = approvedStructureElements[1].getDescription(); + approvedStructureElements[1].setDescription(null); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.FALSE); + approvedStructureElements[1].setDescription(value); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.TRUE); + + value = approvedStructureElements[1].getComment(); + approvedStructureElements[1].setComment(null); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.FALSE); + approvedStructureElements[1].setComment(value); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.TRUE); + } catch (Exception e) { + fail(); + } + } + + @Test + void updateApprove() { + // purpose + // test update and approve subsystem + // + // what - combination of + // create create structures + // read exists in structure + // read is valid to create + // read validate create + // read validate update + // read validate approve + // update update structures + // patch approve structures + // + // note + // create, approve in order to update, approve + + try { + StructureElementCommand[] structureElements = null; + StructureElement[] approvedStructureElements = null; + StructureElement[] updatedStructureElements = null; + + structureElements = new StructureElementCommand[] { + new StructureElementCommand(null, Type.SYSTEMGROUP, null, "name", "SgUa", "description", "comment"), + new StructureElementCommand(null, Type.SYSTEM, systemGroupUuid, "name", "SysUa", "description", "comment"), + new StructureElementCommand(null, Type.SUBSYSTEM, systemUuid, "name", "SubUa", "description", "comment"), + new StructureElementCommand(null, Type.DISCIPLINE, null, "name", "DiUa", "description", "comment"), + new StructureElementCommand(null, Type.DEVICEGROUP, disciplineUuid, "name", "", "description", "comment"), + new StructureElementCommand(null, Type.DEVICETYPE, deviceGroupUuid, "name", "DtUa", "description", "comment") + }; + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgUa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysUa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubUa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiUa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpUa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtUa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysUa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubUa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiUa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtUa", Boolean.TRUE); + + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.UPDATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.DELETE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.REJECT, Boolean.FALSE); + + approvedStructureElements = ITUtilStructureElement.assertCreateApprove(structureElements); + assertNotNull(approvedStructureElements); + assertEquals(6, approvedStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgUa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysUa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubUa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiUa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpUa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtUa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysUa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubUa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiUa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtUa", Boolean.FALSE); + + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.REJECT, Boolean.FALSE); + + approvedStructureElements[0].setDescription("0"); + approvedStructureElements[1].setDescription("1"); + approvedStructureElements[2].setDescription("2"); + approvedStructureElements[3].setDescription("3"); + approvedStructureElements[4].setDescription("4"); + approvedStructureElements[5].setDescription("5"); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgUa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysUa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubUa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiUa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpUa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtUa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysUa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubUa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiUa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtUa", Boolean.FALSE); + + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.REJECT, Boolean.FALSE); + + updatedStructureElements = ITUtilStructureElement.assertUpdate(approvedStructureElements); + assertNotNull(updatedStructureElements); + assertEquals(6, updatedStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgUa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysUa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubUa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiUa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpUa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtUa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysUa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubUa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiUa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtUa", Boolean.FALSE); + + ITUtilStructureElement.assertValidate(updatedStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(updatedStructureElements, StructureChoice.UPDATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(updatedStructureElements, StructureChoice.DELETE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(updatedStructureElements, StructureChoice.APPROVE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(updatedStructureElements, StructureChoice.CANCEL, Boolean.TRUE); + ITUtilStructureElement.assertValidate(updatedStructureElements, StructureChoice.REJECT, Boolean.TRUE); + + approvedStructureElements = ITUtilStructureElement.assertApprove(updatedStructureElements); + assertNotNull(approvedStructureElements); + assertEquals(6, approvedStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgUa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysUa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubUa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiUa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpUa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtUa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysUa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubUa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiUa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtUa", Boolean.FALSE); + + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.REJECT, Boolean.FALSE); + } catch (Exception e) { + fail(); + } + } + + @Test + void updateCancel() { + // purpose + // test update and cancel subsystem + // + // what - combination of + // create create structures + // read exists in structure + // read is valid to create + // read validate create + // read validate update + // read validate approve + // read validate cancel + // update update structures + // patch approve structures + // patch cancel structures + // + // note + // create, approve in order to update, cancel + + try { + StructureElementCommand[] structureElements = null; + StructureElement[] approvedStructureElements = null; + StructureElement[] updatedStructureElements = null; + StructureElement[] cancelledStructureElements = null; + + structureElements = new StructureElementCommand[] { + new StructureElementCommand(null, Type.SYSTEMGROUP, null, "name", "SgUc", "description", "comment"), + new StructureElementCommand(null, Type.SYSTEM, systemGroupUuid, "name", "SysUc", "description", "comment"), + new StructureElementCommand(null, Type.SUBSYSTEM, systemUuid, "name", "SubUc", "description", "comment"), + new StructureElementCommand(null, Type.DISCIPLINE, null, "name", "DiUc", "description", "comment"), + new StructureElementCommand(null, Type.DEVICEGROUP, disciplineUuid, "name", "", "description", "comment"), + new StructureElementCommand(null, Type.DEVICETYPE, deviceGroupUuid, "name", "DtUc", "description", "comment") + }; + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgUc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysUc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubUc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiUc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpUc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtUc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysUc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubUc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiUc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtUc", Boolean.TRUE); + + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.UPDATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.DELETE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.REJECT, Boolean.FALSE); + + approvedStructureElements = ITUtilStructureElement.assertCreateApprove(structureElements); + assertNotNull(approvedStructureElements); + assertEquals(6, approvedStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgUc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysUc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubUc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiUc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpUc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtUc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysUc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubUc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiUc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtUc", Boolean.FALSE); + + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.REJECT, Boolean.FALSE); + + approvedStructureElements[0].setDescription("0"); + approvedStructureElements[1].setDescription("1"); + approvedStructureElements[2].setDescription("2"); + approvedStructureElements[3].setDescription("3"); + approvedStructureElements[4].setDescription("4"); + approvedStructureElements[5].setDescription("5"); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgUc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysUc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubUc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiUc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpUc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtUc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysUc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubUc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiUc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtUc", Boolean.FALSE); + + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.REJECT, Boolean.FALSE); + + updatedStructureElements = ITUtilStructureElement.assertUpdate(approvedStructureElements); + assertNotNull(updatedStructureElements); + assertEquals(6, updatedStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgUc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysUc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubUc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiUc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpUc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtUc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysUc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubUc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiUc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtUc", Boolean.FALSE); + + ITUtilStructureElement.assertValidate(updatedStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(updatedStructureElements, StructureChoice.UPDATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(updatedStructureElements, StructureChoice.DELETE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(updatedStructureElements, StructureChoice.APPROVE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(updatedStructureElements, StructureChoice.CANCEL, Boolean.TRUE); + ITUtilStructureElement.assertValidate(updatedStructureElements, StructureChoice.REJECT, Boolean.TRUE); + + cancelledStructureElements = ITUtilStructureElement.assertCancel(updatedStructureElements); + assertNotNull(cancelledStructureElements); + assertEquals(6, cancelledStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgUc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysUc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubUc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiUc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpUc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtUc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysUc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubUc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiUc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtUc", Boolean.FALSE); + + ITUtilStructureElement.assertValidate(cancelledStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(cancelledStructureElements, StructureChoice.UPDATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(cancelledStructureElements, StructureChoice.DELETE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(cancelledStructureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(cancelledStructureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(cancelledStructureElements, StructureChoice.REJECT, Boolean.FALSE); + } catch (Exception e) { + fail(); + } + } + + @Test + void updateReject() { + // purpose + // test update and reject subsystem + // + // what - combination of + // create create structures + // read exists in structure + // read is valid to create + // read validate create + // read validate update + // read validate approve + // read validate reject + // update update structures + // patch approve structures + // patch reject structures + // + // note + // create, approve in order to update, reject + + try { + StructureElementCommand[] structureElements = null; + StructureElement[] approvedStructureElements = null; + StructureElement[] updatedStructureElements = null; + StructureElement[] rejectedStructureElements = null; + + structureElements = new StructureElementCommand[] { + new StructureElementCommand(null, Type.SYSTEMGROUP, null, "name", "SgUr", "description", "comment"), + new StructureElementCommand(null, Type.SYSTEM, systemGroupUuid, "name", "SysUr", "description", "comment"), + new StructureElementCommand(null, Type.SUBSYSTEM, systemUuid, "name", "SubUr", "description", "comment"), + new StructureElementCommand(null, Type.DISCIPLINE, null, "name", "DiUr", "description", "comment"), + new StructureElementCommand(null, Type.DEVICEGROUP, disciplineUuid, "name", "", "description", "comment"), + new StructureElementCommand(null, Type.DEVICETYPE, deviceGroupUuid, "name", "DtUr", "description", "comment") + }; + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgUr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysUr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubUr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiUr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpUr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtUr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysUr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubUr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiUr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtUr", Boolean.TRUE); + + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.UPDATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.DELETE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.REJECT, Boolean.FALSE); + + approvedStructureElements = ITUtilStructureElement.assertCreateApprove(structureElements); + assertNotNull(approvedStructureElements); + assertEquals(6, approvedStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgUr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysUr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubUr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiUr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpUr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtUr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysUr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubUr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiUr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtUr", Boolean.FALSE); + + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.REJECT, Boolean.FALSE); + + approvedStructureElements[0].setDescription("0"); + approvedStructureElements[1].setDescription("1"); + approvedStructureElements[2].setDescription("2"); + approvedStructureElements[3].setDescription("3"); + approvedStructureElements[4].setDescription("4"); + approvedStructureElements[5].setDescription("5"); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgUr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysUr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubUr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiUr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpUr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtUr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysUr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubUr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiUr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtUr", Boolean.FALSE); + + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.REJECT, Boolean.FALSE); + + updatedStructureElements = ITUtilStructureElement.assertUpdate(approvedStructureElements); + assertNotNull(updatedStructureElements); + assertEquals(6, updatedStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgUr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysUr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubUr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiUr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpUr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtUr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysUr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubUr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiUr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtUr", Boolean.FALSE); + + ITUtilStructureElement.assertValidate(updatedStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(updatedStructureElements, StructureChoice.UPDATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(updatedStructureElements, StructureChoice.DELETE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(updatedStructureElements, StructureChoice.APPROVE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(updatedStructureElements, StructureChoice.CANCEL, Boolean.TRUE); + ITUtilStructureElement.assertValidate(updatedStructureElements, StructureChoice.REJECT, Boolean.TRUE); + + rejectedStructureElements = ITUtilStructureElement.assertReject(updatedStructureElements); + assertNotNull(rejectedStructureElements); + assertEquals(6, rejectedStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgUr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysUr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubUr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiUr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpUr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtUr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysUr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubUr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiUr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtUr", Boolean.FALSE); + + ITUtilStructureElement.assertValidate(rejectedStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(rejectedStructureElements, StructureChoice.UPDATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(rejectedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(rejectedStructureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(rejectedStructureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(rejectedStructureElements, StructureChoice.REJECT, Boolean.FALSE); + } catch (Exception e) { + fail(); + } + } + + @Test + void checkDelete() { + // purpose + // test conditions for delete subsystem + // not delete + // + // what - combination of + // create create structures + // read validate create + // read validate delete + // read validate approve + // patch approve structures + // + // note + // create, approve in order to delete + // + // validate delete + // uuid + // type + // comment + + try { + StructureElementCommand[] structureElements = null; + StructureElement[] approvedStructureElements = null; + UUID uuid = null; + String value = null; + + structureElements = new StructureElementCommand[] { + new StructureElementCommand(null, Type.SYSTEMGROUP, null, "name", "SgCd", "description", "comment"), + new StructureElementCommand(null, Type.SYSTEM, systemGroupUuid, "name", "SysCd", "description", "comment"), + new StructureElementCommand(null, Type.SUBSYSTEM, systemUuid, "name", "SubCd", "description", "comment"), + new StructureElementCommand(null, Type.DISCIPLINE, null, "name", "DiCd", "description", "comment"), + new StructureElementCommand(null, Type.DEVICEGROUP, disciplineUuid, "name", "", "description", "comment"), + new StructureElementCommand(null, Type.DEVICETYPE, deviceGroupUuid, "name", "DtCd", "description", "comment") + }; + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgCd", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysCd", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubCd", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiCd", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpCd", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtCd", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgCd", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysCd", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubCd", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiCd", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpCd", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtCd", Boolean.TRUE); + + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.UPDATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.DELETE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.REJECT, Boolean.FALSE); + + approvedStructureElements = ITUtilStructureElement.assertCreateApprove(structureElements); + assertNotNull(approvedStructureElements); + assertEquals(6, approvedStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgCd", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysCd", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubCd", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiCd", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpCd", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtCd", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgCd", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysCd", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubCd", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiCd", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpCd", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtCd", Boolean.FALSE); + + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.REJECT, Boolean.FALSE); + + uuid = approvedStructureElements[1].getUuid(); + approvedStructureElements[1].setUuid(null); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.FALSE); + approvedStructureElements[1].setUuid(uuid); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + + approvedStructureElements[1].setType(null); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.FALSE); + approvedStructureElements[1].setType(Type.SYSTEMGROUP); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.FALSE); + approvedStructureElements[1].setType(Type.SUBSYSTEM); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.FALSE); + approvedStructureElements[1].setType(Type.SYSTEM); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + + approvedStructureElements[1].setParent(null); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + approvedStructureElements[1].setParent(systemUuid); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + approvedStructureElements[1].setParent(subsystemUuid); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + approvedStructureElements[1].setParent(systemGroupUuid); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + + value = approvedStructureElements[1].getName(); + approvedStructureElements[1].setName(null); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + approvedStructureElements[1].setName(value); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + + value = approvedStructureElements[1].getDescription(); + approvedStructureElements[1].setDescription(null); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + approvedStructureElements[1].setDescription(value); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + + value = approvedStructureElements[1].getComment(); + approvedStructureElements[1].setComment(null); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.FALSE); + approvedStructureElements[1].setComment(value); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + } catch (Exception e) { + fail(); + } + } + + @Test + void deleteApprove() { + // purpose + // test delete and approve subsystem + // + // what - combination of + // create create structures + // read exists in structure + // read is valid to create + // read validate create + // read validate delete + // read validate approve + // delete delete structures + // patch approve structures + // + // note + // create, approve in order to delete, approve + + try { + StructureElementCommand[] structureElements = null; + StructureElement[] approvedStructureElements = null; + StructureElement[] deletedStructureElements = null; + + structureElements = new StructureElementCommand[] { + new StructureElementCommand(null, Type.SYSTEMGROUP, null, "name", "SgDa", "description", "comment"), + new StructureElementCommand(null, Type.SYSTEM, systemGroupUuid, "name", "SysDa", "description", "comment"), + new StructureElementCommand(null, Type.SUBSYSTEM, systemUuid, "name", "SubDa", "description", "comment"), + new StructureElementCommand(null, Type.DISCIPLINE, null, "name", "DiDa", "description", "comment"), + new StructureElementCommand(null, Type.DEVICEGROUP, disciplineUuid, "name", "", "description", "comment"), + new StructureElementCommand(null, Type.DEVICETYPE, deviceGroupUuid, "name", "DtDa", "description", "comment") + }; + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgDa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysDa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubDa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiDa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpDa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtDa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgDa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysDa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubDa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiDa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpDa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtDa", Boolean.TRUE); + + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.UPDATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.DELETE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.REJECT, Boolean.FALSE); + + approvedStructureElements = ITUtilStructureElement.assertCreateApprove(structureElements); + assertNotNull(approvedStructureElements); + assertEquals(6, approvedStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgDa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysDa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubDa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiDa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpDa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtDa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgDa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysDa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubDa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiDa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpDa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtDa", Boolean.FALSE); + + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.REJECT, Boolean.FALSE); + + deletedStructureElements = ITUtilStructureElement.assertDelete(approvedStructureElements); + assertNotNull(deletedStructureElements); + assertEquals(6, deletedStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgDa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysDa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubDa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiDa", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpDa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtDa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgDa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysDa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubDa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiDa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpDa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtDa", Boolean.FALSE); + + ITUtilStructureElement.assertValidate(deletedStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(deletedStructureElements, StructureChoice.UPDATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(deletedStructureElements, StructureChoice.DELETE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(deletedStructureElements, StructureChoice.APPROVE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(deletedStructureElements, StructureChoice.CANCEL, Boolean.TRUE); + ITUtilStructureElement.assertValidate(deletedStructureElements, StructureChoice.REJECT, Boolean.TRUE); + + approvedStructureElements = ITUtilStructureElement.assertApprove(deletedStructureElements); + assertNotNull(approvedStructureElements); + assertEquals(6, approvedStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgDa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysDa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubDa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiDa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpDa", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtDa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgDa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysDa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubDa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiDa", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpDa", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtDa", Boolean.TRUE); + + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.REJECT, Boolean.FALSE); + } catch (Exception e) { + fail(); + } + } + + @Test + void deleteCancel() { + // purpose + // test delete and cancel subsystem + // + // what - combination of + // create create structures + // read exists in structure + // read is valid to create + // read validate create + // read validate delete + // read validate approve + // read validate cancel + // update delete structures + // patch approve structures + // patch cancel structures + // + // note + // create, approve in order to delete, cancel + + try { + StructureElementCommand[] structureElements = null; + StructureElement[] approvedStructureElements = null; + StructureElement[] deletedStructureElements = null; + StructureElement[] cancelledStructureElements = null; + + structureElements = new StructureElementCommand[] { + new StructureElementCommand(null, Type.SYSTEMGROUP, null, "name", "SgDc", "description", "comment"), + new StructureElementCommand(null, Type.SYSTEM, systemGroupUuid, "name", "SysDc", "description", "comment"), + new StructureElementCommand(null, Type.SUBSYSTEM, systemUuid, "name", "SubDc", "description", "comment"), + new StructureElementCommand(null, Type.DISCIPLINE, null, "name", "DiDc", "description", "comment"), + new StructureElementCommand(null, Type.DEVICEGROUP, disciplineUuid, "name", "", "description", "comment"), + new StructureElementCommand(null, Type.DEVICETYPE, deviceGroupUuid, "name", "DtDc", "description", "comment") + }; + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgDc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysDc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubDc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiDc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpDc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtDc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgDc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysDc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubDc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiDc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpDc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtDc", Boolean.TRUE); + + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.UPDATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.DELETE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.REJECT, Boolean.FALSE); + + approvedStructureElements = ITUtilStructureElement.assertCreateApprove(structureElements); + assertNotNull(approvedStructureElements); + assertEquals(6, approvedStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgDc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysDc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubDc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiDc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpDc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtDc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgDc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysDc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubDc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiDc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpDc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtDc", Boolean.FALSE); + + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.REJECT, Boolean.FALSE); + + deletedStructureElements = ITUtilStructureElement.assertDelete(approvedStructureElements); + assertNotNull(deletedStructureElements); + assertEquals(6, deletedStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgDc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysDc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubDc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiDc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpDc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtDc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgDc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysDc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubDc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiDc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpDc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtDc", Boolean.FALSE); + + ITUtilStructureElement.assertValidate(deletedStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(deletedStructureElements, StructureChoice.UPDATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(deletedStructureElements, StructureChoice.DELETE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(deletedStructureElements, StructureChoice.APPROVE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(deletedStructureElements, StructureChoice.CANCEL, Boolean.TRUE); + ITUtilStructureElement.assertValidate(deletedStructureElements, StructureChoice.REJECT, Boolean.TRUE); + + cancelledStructureElements = ITUtilStructureElement.assertCancel(deletedStructureElements); + assertNotNull(cancelledStructureElements); + assertEquals(6, cancelledStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgDc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysDc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubDc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiDc", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpDc", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtDc", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgDc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysDc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubDc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiDc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpDc", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtDc", Boolean.FALSE); + + ITUtilStructureElement.assertValidate(cancelledStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(cancelledStructureElements, StructureChoice.UPDATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(cancelledStructureElements, StructureChoice.DELETE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(cancelledStructureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(cancelledStructureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(cancelledStructureElements, StructureChoice.REJECT, Boolean.FALSE); + } catch (Exception e) { + fail(); + } + } + + @Test + void deleteReject() { + // purpose + // test delete and reject subsystem + // + // what - combination of + // create create structures + // read exists in structure + // read is valid to create + // read validate create + // read validate delete + // read validate approve + // read validate reject + // update delete structures + // patch approve structures + // patch reject structures + // + // note + // create, approve in order to delete, reject + + try { + StructureElementCommand[] structureElements = null; + StructureElement[] approvedStructureElements = null; + StructureElement[] deletedStructureElements = null; + StructureElement[] rejectedStructureElements = null; + + structureElements = new StructureElementCommand[] { + new StructureElementCommand(null, Type.SYSTEMGROUP, null, "name", "SgDr", "description", "comment"), + new StructureElementCommand(null, Type.SYSTEM, systemGroupUuid, "name", "SysDr", "description", "comment"), + new StructureElementCommand(null, Type.SUBSYSTEM, systemUuid, "name", "SubDr", "description", "comment"), + new StructureElementCommand(null, Type.DISCIPLINE, null, "name", "DiDr", "description", "comment"), + new StructureElementCommand(null, Type.DEVICEGROUP, disciplineUuid, "name", "", "description", "comment"), + new StructureElementCommand(null, Type.DEVICETYPE, deviceGroupUuid, "name", "DtDr", "description", "comment") + }; + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgDr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysDr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubDr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiDr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpDr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtDr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgDr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysDr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubDr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiDr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpDr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtDr", Boolean.TRUE); + + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CREATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.UPDATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.DELETE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(structureElements, StructureChoice.REJECT, Boolean.FALSE); + + approvedStructureElements = ITUtilStructureElement.assertCreateApprove(structureElements); + assertNotNull(approvedStructureElements); + assertEquals(6, approvedStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgDr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysDr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubDr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiDr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpDr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtDr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgDr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysDr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubDr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiDr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpDr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtDr", Boolean.FALSE); + + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.UPDATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(approvedStructureElements, StructureChoice.REJECT, Boolean.FALSE); + + deletedStructureElements = ITUtilStructureElement.assertDelete(approvedStructureElements); + assertNotNull(deletedStructureElements); + assertEquals(6, deletedStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgDr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysDr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubDr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiDr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpDr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtDr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgDr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysDr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubDr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiDr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpDr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtDr", Boolean.FALSE); + + ITUtilStructureElement.assertValidate(deletedStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(deletedStructureElements, StructureChoice.UPDATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(deletedStructureElements, StructureChoice.DELETE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(deletedStructureElements, StructureChoice.APPROVE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(deletedStructureElements, StructureChoice.CANCEL, Boolean.TRUE); + ITUtilStructureElement.assertValidate(deletedStructureElements, StructureChoice.REJECT, Boolean.TRUE); + + rejectedStructureElements = ITUtilStructureElement.assertReject(deletedStructureElements); + assertNotNull(rejectedStructureElements); + assertEquals(6, rejectedStructureElements.length); + + ITUtilStructureElement.assertExists(Type.SYSTEMGROUP, "SgDr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SYSTEM, "SysDr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.SUBSYSTEM, "Sys-SubDr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DISCIPLINE, "DiDr", Boolean.TRUE); + ITUtilStructureElement.assertExists(Type.DEVICEGROUP, "GrpDr", Boolean.FALSE); + ITUtilStructureElement.assertExists(Type.DEVICETYPE, "Di-DtDr", Boolean.TRUE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "SgDr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "SysDr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-SubDr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "DiDr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "GrpDr", Boolean.FALSE); + ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-DtDr", Boolean.FALSE); + + ITUtilStructureElement.assertValidate(rejectedStructureElements, StructureChoice.CREATE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(rejectedStructureElements, StructureChoice.UPDATE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(rejectedStructureElements, StructureChoice.DELETE, Boolean.TRUE); + ITUtilStructureElement.assertValidate(rejectedStructureElements, StructureChoice.APPROVE, Boolean.FALSE); + ITUtilStructureElement.assertValidate(rejectedStructureElements, StructureChoice.CANCEL, Boolean.FALSE); + ITUtilStructureElement.assertValidate(rejectedStructureElements, StructureChoice.REJECT, Boolean.FALSE); + } catch (Exception e) { + fail(); + } + } + +} diff --git a/src/test/java/org/openepics/names/util/ValidateUtilTest.java b/src/test/java/org/openepics/names/util/ValidateUtilTest.java index fb05b2da..d2e19534 100644 --- a/src/test/java/org/openepics/names/util/ValidateUtilTest.java +++ b/src/test/java/org/openepics/names/util/ValidateUtilTest.java @@ -309,7 +309,7 @@ class ValidateUtilTest { */ @Test void validateDataCreateName() { - ValidateUtil.validateNameDataCreate(null, null, null, null, null); + ValidateUtil.validateNameDataCreate(null, null, null, null); } /** * Test of validate input update name element. -- GitLab