From 905d361fb7dd5a433ebf4666d091fd9c8f521fa7 Mon Sep 17 00:00:00 2001 From: JosephKeenan Date: Tue, 14 Dec 2021 12:25:21 +0000 Subject: [PATCH] Adding unit tests and robuestness for DMI registration -Added more scenarios for combinations of plugins -Made plugin registration more robust Issue-ID: CPS-736 Signed-off-by: JosephKeenan Change-Id: I7495eb802fec8708e7ea6b0a97a9d7fe4676c8c1 --- .../cps/ncmp/api/models/DmiPluginRegistration.java | 25 +++++++++++----------- ...rkCmProxyDataServiceImplRegistrationSpec.groovy | 14 +++++++----- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/DmiPluginRegistration.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/DmiPluginRegistration.java index a604f3448..9faf7331e 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/DmiPluginRegistration.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/DmiPluginRegistration.java @@ -53,8 +53,6 @@ public class DmiPluginRegistration { private List removedCmHandles; - public static final String PLEASE_SUPPLY_CORRECT_PLUGIN_INFORMATION = "Please supply correct plugin information."; - /** * Validates plugin service names. * @@ -67,19 +65,22 @@ public class DmiPluginRegistration { String errorMessage = null; - if (isNullEmptyOrBlank(combinedServiceName) - && isNullEmptyOrBlank(dataServiceName) - && isNullEmptyOrBlank(modelsServiceName)) { - errorMessage = "No DMI plugin service names"; - } - - if (!isNullEmptyOrBlank(combinedServiceName) - && (!isNullEmptyOrBlank(dataServiceName) || !isNullEmptyOrBlank(modelsServiceName))) { - errorMessage = "Invalid combination of plugin service names"; + if (isNullEmptyOrBlank(combinedServiceName)) { + if ((isNullEmptyOrBlank(dataServiceName) && isNullEmptyOrBlank(modelsServiceName))) { + errorMessage = "No DMI plugin service names"; + } else { + if (isNullEmptyOrBlank(dataServiceName) || isNullEmptyOrBlank(modelsServiceName)) { + errorMessage = "Cannot register just a Data or Model plugin service name"; + } + } + } else { + if (!isNullEmptyOrBlank(dataServiceName) || !isNullEmptyOrBlank(modelsServiceName)) { + errorMessage = "Cannot register combined plugin service name and other service names"; + } } if (errorMessage != null) { - throw new NcmpException(errorMessage, PLEASE_SUPPLY_CORRECT_PLUGIN_INFORMATION); + throw new NcmpException(errorMessage, "Please supply correct plugin information."); } } diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImplRegistrationSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImplRegistrationSpec.groovy index 8c3e593da..304c08ae8 100644 --- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImplRegistrationSpec.groovy +++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImplRegistrationSpec.groovy @@ -170,11 +170,15 @@ class NetworkCmProxyDataServiceImplRegistrationSpec extends Specification { and: 'registration is not called' 0 * objectUnderTest.parseAndCreateCmHandlesInDmiRegistrationAndSyncModules(dmiPluginRegistration) where: - scenario | dmiPlugin | dmiModelPlugin | dmiDataPlugin || expectedMessageDetails - 'no DMI plugin' | '' | '' | '' || 'No DMI plugin service names' - 'all DMI plugins' | 'service1' | 'service2' | 'service3' || 'Invalid combination of plugin service names' - 'no model DMI plugin' | 'service1' | '' | 'service2' || 'Invalid combination of plugin service names' - 'no data DMI plugin' | 'service1' | 'service2' | '' || 'Invalid combination of plugin service names' + scenario | dmiPlugin | dmiModelPlugin | dmiDataPlugin || expectedMessageDetails + 'empty DMI plugins' | '' | '' | '' || 'No DMI plugin service names' + 'blank DMI plugins' | ' ' | ' ' | ' ' || 'No DMI plugin service names' + 'null DMI plugins' | null | null | null || 'No DMI plugin service names' + 'all DMI plugins' | 'service1' | 'service2' | 'service3' || 'Cannot register combined plugin service name and other service names' + '(combined)DMI and Data Plugin' | 'service1' | '' | 'service2' || 'Cannot register combined plugin service name and other service names' + '(combined)DMI and model Plugin'| 'service1' | 'service2' | '' || 'Cannot register combined plugin service name and other service names' + 'only model DMI plugin' | '' | 'service1' | '' || 'Cannot register just a Data or Model plugin service name' + 'only data DMI plugin' | '' | '' | 'service1' || 'Cannot register just a Data or Model plugin service name' } def getObjectUnderTestWithModelSyncDisabled() { -- 2.16.6