aboutsummaryrefslogtreecommitdiffstats
path: root/models/src/test
diff options
context:
space:
mode:
authorFrancescoFioraEst <francesco.fiora@est.tech>2021-11-11 14:57:23 +0000
committerFrancescoFioraEst <francesco.fiora@est.tech>2021-11-25 13:25:48 +0000
commita41acc89a8c7177014d1377c4457cd402ed7ee93 (patch)
tree47eb78295c696d7281bc772e346ec260cd114ce1 /models/src/test
parent7443b9a5ddca988ad4338e2b6597d6fdce552909 (diff)
Add support transaction in CL and ServiceTemplate Providers
Add support transaction in ControlLoopProvider and ServiceTemplateProvider Issue-ID: POLICY-3798 Change-Id: I0ab79f28231e329e06c16e01427775077b3ac994 Signed-off-by: FrancescoFioraEst <francesco.fiora@est.tech>
Diffstat (limited to 'models/src/test')
-rw-r--r--models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ControlLoopProviderTest.java254
-rw-r--r--models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ServiceTemplateProviderTest.java115
2 files changed, 229 insertions, 140 deletions
diff --git a/models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ControlLoopProviderTest.java b/models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ControlLoopProviderTest.java
index 9805edb86..2b472c835 100644
--- a/models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ControlLoopProviderTest.java
+++ b/models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ControlLoopProviderTest.java
@@ -24,174 +24,255 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
import java.util.List;
-import java.util.concurrent.atomic.AtomicInteger;
-import org.junit.jupiter.api.AfterEach;
+import java.util.Optional;
+import javax.persistence.EntityNotFoundException;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoops;
+import org.onap.policy.clamp.controlloop.models.controlloop.persistence.concepts.JpaControlLoop;
+import org.onap.policy.clamp.controlloop.models.controlloop.persistence.repository.ControlLoopRepository;
+import org.onap.policy.clamp.controlloop.models.controlloop.persistence.repository.ToscaNodeTemplateRepository;
+import org.onap.policy.clamp.controlloop.models.controlloop.persistence.repository.ToscaNodeTemplatesRepository;
import org.onap.policy.common.utils.coder.Coder;
import org.onap.policy.common.utils.coder.StandardCoder;
import org.onap.policy.common.utils.coder.YamlJsonTranslator;
import org.onap.policy.common.utils.resources.ResourceUtils;
-import org.onap.policy.models.provider.PolicyModelsProviderParameters;
+import org.onap.policy.models.base.PfConceptKey;
import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
import org.onap.policy.models.tosca.authorative.concepts.ToscaTypedEntityFilter;
+import org.onap.policy.models.tosca.simple.concepts.JpaToscaNodeTemplate;
class ControlLoopProviderTest {
private static final String LIST_IS_NULL = "controlLoops is marked .*ull but is null";
+ private static final String OBJECT_IS_NULL = "controlLoop is marked non-null but is null";
+
+ private static final String ID_NAME = "PMSHInstance1";
+ private static final String ID_VERSION = "1.0.1";
+ private static final String ID_NAME_NOT_EXTST = "not_exist";
+ private static final String ID_NAME_NOT_VALID = "not_valid";
+
private static final Coder CODER = new StandardCoder();
private static final String CONTROL_LOOP_JSON = "src/test/resources/providers/TestControlLoops.json";
- private static final String UPDATE_CL_JSON = "src/test/resources/providers/UpdateControlLoops.json";
private static final String TOSCA_TEMPLATE_YAML = "examples/controlloop/PMSubscriptionHandling.yaml";
private static final YamlJsonTranslator yamlTranslator = new YamlJsonTranslator();
- private static AtomicInteger dbNameCounter = new AtomicInteger();
- private PolicyModelsProviderParameters parameters;
- private ControlLoopProvider controlLoopProvider;
private ControlLoops inputControlLoops;
- private ControlLoops updateControlLoops;
+ private List<JpaControlLoop> inputControlLoopsJpa;
private String originalJson = ResourceUtils.getResourceAsString(CONTROL_LOOP_JSON);
- private String updateClJson = ResourceUtils.getResourceAsString(UPDATE_CL_JSON);
@BeforeEach
void beforeSetupDao() throws Exception {
-
- parameters = new PolicyModelsProviderParameters();
- parameters.setDatabaseDriver("org.h2.Driver");
- parameters.setName("PolicyProviderParameterGroup");
- parameters.setImplementation("org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl");
- parameters.setDatabaseUrl("jdbc:h2:mem:controlLoopProviderTestDb" + dbNameCounter.getAndDecrement());
- parameters.setDatabaseUser("policy");
- parameters.setDatabasePassword("P01icY");
- parameters.setPersistenceUnit("ToscaConceptTest");
-
- controlLoopProvider = new ControlLoopProvider(parameters);
-
inputControlLoops = CODER.decode(originalJson, ControlLoops.class);
- updateControlLoops = CODER.decode(updateClJson, ControlLoops.class);
- }
-
- @AfterEach
- void teardown() {
- controlLoopProvider.close();
+ inputControlLoopsJpa = ProviderUtils.getJpaAndValidateList(inputControlLoops.getControlLoopList(),
+ JpaControlLoop::new, "control loops");
}
@Test
- void testControlLoopCreate() throws Exception {
+ void testControlLoopsSave() throws Exception {
+ var controlLoopRepository = mock(ControlLoopRepository.class);
+ var controlLoopProvider = new ControlLoopProvider(controlLoopRepository,
+ mock(ToscaNodeTemplateRepository.class), mock(ToscaNodeTemplatesRepository.class));
+
assertThatThrownBy(() -> {
- controlLoopProvider.createControlLoops(null);
+ controlLoopProvider.saveControlLoops(null);
}).hasMessageMatching(LIST_IS_NULL);
+ when(controlLoopRepository.saveAll(inputControlLoopsJpa)).thenReturn(inputControlLoopsJpa);
+
var createdControlLoops = new ControlLoops();
createdControlLoops
- .setControlLoopList(controlLoopProvider.createControlLoops(inputControlLoops.getControlLoopList()));
+ .setControlLoopList(controlLoopProvider.saveControlLoops(inputControlLoops.getControlLoopList()));
assertEquals(inputControlLoops, createdControlLoops);
+
+ when(controlLoopRepository.saveAll(any())).thenThrow(IllegalArgumentException.class);
+
+ assertThatThrownBy(() -> {
+ controlLoopProvider.saveControlLoops(inputControlLoops.getControlLoopList());
+ }).hasMessageMatching("Error in save ControlLoops");
}
@Test
- void testGetControlLoops() throws Exception {
+ void testControlLoopSave() throws Exception {
+ var controlLoopRepository = mock(ControlLoopRepository.class);
+ var controlLoopProvider = new ControlLoopProvider(controlLoopRepository,
+ mock(ToscaNodeTemplateRepository.class), mock(ToscaNodeTemplatesRepository.class));
- List<ControlLoop> getResponse;
+ assertThatThrownBy(() -> {
+ controlLoopProvider.saveControlLoop(null);
+ }).hasMessageMatching(OBJECT_IS_NULL);
+
+ when(controlLoopRepository.save(inputControlLoopsJpa.get(0))).thenReturn(inputControlLoopsJpa.get(0));
+
+ var createdControlLoop = controlLoopProvider.saveControlLoop(inputControlLoops.getControlLoopList().get(0));
+
+ assertEquals(inputControlLoops.getControlLoopList().get(0), createdControlLoop);
+
+ when(controlLoopRepository.save(any())).thenThrow(IllegalArgumentException.class);
+
+ assertThatThrownBy(() -> {
+ controlLoopProvider.saveControlLoop(inputControlLoops.getControlLoopList().get(0));
+ }).hasMessageMatching("Error in save controlLoop");
+ }
+
+ @Test
+ void testGetControlLoops() throws Exception {
+ var controlLoopRepository = mock(ControlLoopRepository.class);
+ var controlLoopProvider = new ControlLoopProvider(controlLoopRepository,
+ mock(ToscaNodeTemplateRepository.class), mock(ToscaNodeTemplatesRepository.class));
// Return empty list when no data present in db
- getResponse = controlLoopProvider.getControlLoops(null, null);
+ List<ControlLoop> getResponse = controlLoopProvider.getControlLoops();
assertThat(getResponse).isEmpty();
- controlLoopProvider.createControlLoops(inputControlLoops.getControlLoopList());
- var name = inputControlLoops.getControlLoopList().get(0).getName();
- var version = inputControlLoops.getControlLoopList().get(0).getVersion();
+ controlLoopProvider.saveControlLoops(inputControlLoops.getControlLoopList());
+
+ var controlLoop0 = inputControlLoops.getControlLoopList().get(1);
+ var name = controlLoop0.getName();
+ var version = controlLoop0.getVersion();
+ var controlLoop1 = inputControlLoops.getControlLoopList().get(1);
+
+ when(controlLoopRepository.getFiltered(eq(JpaControlLoop.class), any(), any()))
+ .thenReturn(List.of(new JpaControlLoop(controlLoop0), new JpaControlLoop(controlLoop1)));
+ when(controlLoopRepository.findById(controlLoop0.getKey().asIdentifier().asConceptKey()))
+ .thenReturn(Optional.of(new JpaControlLoop(controlLoop0)));
+ when(controlLoopRepository.getById(controlLoop0.getKey().asIdentifier().asConceptKey()))
+ .thenReturn(new JpaControlLoop(controlLoop0));
+ when(controlLoopRepository.getFiltered(JpaControlLoop.class, name, version))
+ .thenReturn(List.of(new JpaControlLoop(controlLoop0)));
+ when(controlLoopRepository.findById(controlLoop1.getKey().asIdentifier().asConceptKey()))
+ .thenReturn(Optional.of(new JpaControlLoop(controlLoop1)));
+
assertEquals(1, controlLoopProvider.getControlLoops(name, version).size());
- var cl = new ControlLoop();
- cl = controlLoopProvider.getControlLoop(new ToscaConceptIdentifier("PMSHInstance1", "1.0.1"));
+ var cl = controlLoopProvider.findControlLoop(new ToscaConceptIdentifier(ID_NAME, ID_VERSION)).get();
+ assertEquals(inputControlLoops.getControlLoopList().get(1), cl);
+
+ cl = controlLoopProvider.getControlLoop(new ToscaConceptIdentifier(ID_NAME, ID_VERSION));
assertEquals(inputControlLoops.getControlLoopList().get(1), cl);
- assertNull(controlLoopProvider.getControlLoop(new ToscaConceptIdentifier("invalid_name", "1.0.1")));
+ when(controlLoopRepository.getById(any())).thenThrow(EntityNotFoundException.class);
assertThatThrownBy(() -> {
- controlLoopProvider.getFilteredControlLoops(null);
- }).hasMessageMatching("filter is marked .*ull but is null");
+ controlLoopProvider.getControlLoop(new ToscaConceptIdentifier(ID_NAME_NOT_EXTST, ID_VERSION));
+ }).hasMessageMatching("ControlLoop not found");
- final ToscaTypedEntityFilter<ControlLoop> filter = ToscaTypedEntityFilter.<ControlLoop>builder()
- .type("org.onap.domain.pmsh.PMSHControlLoopDefinition").build();
- assertEquals(2, controlLoopProvider.getFilteredControlLoops(filter).size());
- }
+ cl = controlLoopProvider.findControlLoop(ID_NAME, ID_VERSION).get();
+ assertEquals(inputControlLoops.getControlLoopList().get(1), cl);
- @Test
- void testUpdateControlLoops() throws Exception {
- assertThatThrownBy(() -> {
- controlLoopProvider.updateControlLoops(null);
- }).hasMessageMatching("controlLoops is marked .*ull but is null");
+ assertThat(controlLoopProvider.findControlLoop(new ToscaConceptIdentifier(ID_NAME_NOT_EXTST, ID_VERSION)))
+ .isEmpty();
- var existingControlLoops = new ControlLoops();
- existingControlLoops
- .setControlLoopList(controlLoopProvider.createControlLoops(inputControlLoops.getControlLoopList()));
- var updateResponse = new ControlLoop();
- updateResponse = controlLoopProvider.updateControlLoop(updateControlLoops.getControlLoopList().get(0));
+ when(controlLoopRepository.findById(any())).thenThrow(IllegalArgumentException.class);
- assertEquals(ControlLoopOrderedState.RUNNING, updateResponse.getOrderedState());
+ assertThatThrownBy(() -> {
+ controlLoopProvider.findControlLoop(ID_NAME_NOT_VALID, ID_VERSION);
+ }).hasMessageMatching("Not valid parameter");
}
@Test
void testDeleteControlLoop() throws Exception {
+ var controlLoopRepository = mock(ControlLoopRepository.class);
+ var controlLoopProvider = new ControlLoopProvider(controlLoopRepository,
+ mock(ToscaNodeTemplateRepository.class), mock(ToscaNodeTemplatesRepository.class));
+
assertThatThrownBy(() -> {
- controlLoopProvider.deleteControlLoop("Invalid_name", "1.0.1");
+ controlLoopProvider.deleteControlLoop(ID_NAME_NOT_EXTST, ID_VERSION);
}).hasMessageMatching(".*.failed, control loop does not exist");
- ControlLoop deletedCl;
- List<ControlLoop> clList = controlLoopProvider.createControlLoops(inputControlLoops.getControlLoopList());
- var name = inputControlLoops.getControlLoopList().get(0).getName();
- var version = inputControlLoops.getControlLoopList().get(0).getVersion();
+ var controlLoop = inputControlLoops.getControlLoopList().get(0);
+ var name = controlLoop.getName();
+ var version = controlLoop.getVersion();
- deletedCl = controlLoopProvider.deleteControlLoop(name, version);
- assertEquals(clList.get(0), deletedCl);
+ when(controlLoopRepository.findById(new PfConceptKey(name, version)))
+ .thenReturn(Optional.of(inputControlLoopsJpa.get(0)));
+
+ ControlLoop deletedCl = controlLoopProvider.deleteControlLoop(name, version);
+ assertEquals(controlLoop, deletedCl);
}
@Test
void testDeleteAllInstanceProperties() throws Exception {
+ var controlLoopProvider = new ControlLoopProvider(mock(ControlLoopRepository.class),
+ mock(ToscaNodeTemplateRepository.class), mock(ToscaNodeTemplatesRepository.class));
var toscaServiceTemplate = testControlLoopRead();
- controlLoopProvider.deleteInstanceProperties(
- controlLoopProvider.saveInstanceProperties(toscaServiceTemplate),
+ controlLoopProvider.deleteInstanceProperties(controlLoopProvider.saveInstanceProperties(toscaServiceTemplate),
controlLoopProvider.getNodeTemplates(null, null));
- assertThat(controlLoopProvider.getControlLoops(null, null)).isEmpty();
+ assertThat(controlLoopProvider.getControlLoops()).isEmpty();
}
@Test
void testSaveAndDeleteInstanceProperties() throws Exception {
+ var toscaNodeTemplatesRepository = mock(ToscaNodeTemplatesRepository.class);
+ var toscaNodeTemplateRepository = mock(ToscaNodeTemplateRepository.class);
+ var controlLoopProvider = new ControlLoopProvider(mock(ControlLoopRepository.class),
+ toscaNodeTemplateRepository, toscaNodeTemplatesRepository);
var toscaServiceTest = testControlLoopRead();
- controlLoopProvider.createControlLoops(inputControlLoops.getControlLoopList());
controlLoopProvider.saveInstanceProperties(toscaServiceTest);
- assertThat(controlLoopProvider.getNodeTemplates(
- "org.onap.policy.controlloop.PolicyControlLoopParticipant",
- "2.3.1")).isNotEmpty();
-
- controlLoopProvider.deleteInstanceProperties(
- controlLoopProvider.saveInstanceProperties(toscaServiceTest),
- controlLoopProvider.getNodeTemplates(
- "org.onap.policy.controlloop.PolicyControlLoopParticipant",
- "2.3.1"));
-
- assertThat(controlLoopProvider.getNodeTemplates(
- "org.onap.policy.controlloop.PolicyControlLoopParticipant",
- "2.3.1")).isEmpty();
+ verify(toscaNodeTemplatesRepository).save(any());
+
+ var name = "org.onap.policy.controlloop.PolicyControlLoopParticipant";
+ var version = "2.3.1";
+ var elem = toscaServiceTest.getToscaTopologyTemplate().getNodeTemplates().get(name);
+ when(toscaNodeTemplateRepository.getFiltered(JpaToscaNodeTemplate.class, name, version))
+ .thenReturn(List.of(new JpaToscaNodeTemplate(elem)));
+
+ var filtered = controlLoopProvider.getNodeTemplates(name, version);
+ verify(toscaNodeTemplateRepository).getFiltered(JpaToscaNodeTemplate.class, name, version);
+
+ controlLoopProvider.deleteInstanceProperties(controlLoopProvider.saveInstanceProperties(toscaServiceTest),
+ filtered);
+
+ verify(toscaNodeTemplateRepository).delete(any());
}
@Test
void testGetNodeTemplates() throws Exception {
- //Getting all nodes
- List<ToscaNodeTemplate> listNodes = controlLoopProvider.getNodeTemplates(null, null);
+ var toscaNodeTemplateRepository = mock(ToscaNodeTemplateRepository.class);
+ var controlLoopProvider = new ControlLoopProvider(mock(ControlLoopRepository.class),
+ toscaNodeTemplateRepository, mock(ToscaNodeTemplatesRepository.class));
+
+ var toscaNodeTemplate0 = new JpaToscaNodeTemplate(new PfConceptKey(ID_NAME, ID_VERSION));
+ var toscaNodeTemplate1 = new JpaToscaNodeTemplate(new PfConceptKey("PMSHInstance2", ID_VERSION));
+
+ when(toscaNodeTemplateRepository.getFiltered(JpaToscaNodeTemplate.class, null, null))
+ .thenReturn(List.of(toscaNodeTemplate0, toscaNodeTemplate1));
+ when(toscaNodeTemplateRepository.findAll()).thenReturn(List.of(toscaNodeTemplate0, toscaNodeTemplate1));
+ when(toscaNodeTemplateRepository.getFiltered(JpaToscaNodeTemplate.class, ID_NAME, ID_VERSION))
+ .thenReturn(List.of(toscaNodeTemplate0));
+
+ // Getting all nodes
+ var listNodes = controlLoopProvider.getNodeTemplates(null, null);
+ assertNotNull(listNodes);
+ assertThat(listNodes).hasSize(2);
+
+ listNodes = controlLoopProvider.getNodeTemplates(ID_NAME, ID_VERSION);
+ assertNotNull(listNodes);
+ assertThat(listNodes).hasSize(1);
+
+ listNodes = controlLoopProvider.getAllNodeTemplates();
+ assertNotNull(listNodes);
+ assertThat(listNodes).hasSize(2);
+
+ var nodeTemplateFilter =
+ ToscaTypedEntityFilter.<ToscaNodeTemplate>builder().name(ID_NAME).version(ID_VERSION).build();
+
+ listNodes = controlLoopProvider.getFilteredNodeTemplates(nodeTemplateFilter);
assertNotNull(listNodes);
+ assertThat(listNodes).hasSize(1);
assertThatThrownBy(() -> {
controlLoopProvider.getFilteredNodeTemplates(null);
@@ -203,8 +284,7 @@ class ControlLoopProviderTest {
}
private static ToscaServiceTemplate testControlLoopYamlSerialization(String controlLoopFilePath) {
- String controlLoopString = ResourceUtils.getResourceAsString(controlLoopFilePath);
- ToscaServiceTemplate serviceTemplate = yamlTranslator.fromYaml(controlLoopString, ToscaServiceTemplate.class);
- return serviceTemplate;
+ var controlLoopString = ResourceUtils.getResourceAsString(controlLoopFilePath);
+ return yamlTranslator.fromYaml(controlLoopString, ToscaServiceTemplate.class);
}
}
diff --git a/models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ServiceTemplateProviderTest.java b/models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ServiceTemplateProviderTest.java
index 7f2731abf..523a4fb88 100644
--- a/models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ServiceTemplateProviderTest.java
+++ b/models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ServiceTemplateProviderTest.java
@@ -29,13 +29,17 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.util.List;
+import java.util.Optional;
+import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
+import org.onap.policy.clamp.controlloop.models.controlloop.persistence.repository.ToscaServiceTemplateRepository;
import org.onap.policy.common.utils.coder.CoderException;
import org.onap.policy.common.utils.coder.StandardYamlCoder;
import org.onap.policy.common.utils.resources.ResourceUtils;
+import org.onap.policy.models.base.PfConceptKey;
import org.onap.policy.models.base.PfModelException;
-import org.onap.policy.models.provider.PolicyModelsProvider;
import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
+import org.onap.policy.models.tosca.simple.concepts.JpaToscaServiceTemplate;
class ServiceTemplateProviderTest {
@@ -44,28 +48,33 @@ class ServiceTemplateProviderTest {
private static final StandardYamlCoder YAML_TRANSLATOR = new StandardYamlCoder();
+ private static ToscaServiceTemplate inputServiceTemplate;
+
+ @BeforeAll
+ static void loadServiceTemplate() {
+ inputServiceTemplate = getToscaServiceTemplate(TOSCA_SERVICE_TEMPLATE_YAML);
+ }
+
@Test
void testGetCommonOrInstancePropertiesFromNodeTypes() throws PfModelException {
- var serviceTemplateProvider = new ServiceTemplateProvider(mock(PolicyModelsProvider.class));
+ var serviceTemplateRepository = mock(ToscaServiceTemplateRepository.class);
+ var serviceTemplateProvider = new ServiceTemplateProvider(serviceTemplateRepository);
- var serviceTemplate = getToscaServiceTemplate(TOSCA_SERVICE_TEMPLATE_YAML);
-
- var result = serviceTemplateProvider.getCommonOrInstancePropertiesFromNodeTypes(true, serviceTemplate);
+ var result = serviceTemplateProvider.getCommonOrInstancePropertiesFromNodeTypes(true, inputServiceTemplate);
assertNotNull(result);
assertThat(result).hasSize(8);
}
@Test
void testGetDerivedCommonOrInstanceNodeTemplates() throws PfModelException {
- var serviceTemplateProvider = new ServiceTemplateProvider(mock(PolicyModelsProvider.class));
-
- var serviceTemplate = getToscaServiceTemplate(TOSCA_SERVICE_TEMPLATE_YAML);
+ var serviceTemplateRepository = mock(ToscaServiceTemplateRepository.class);
+ var serviceTemplateProvider = new ServiceTemplateProvider(serviceTemplateRepository);
var commonOrInstanceNodeTypeProps =
- serviceTemplateProvider.getCommonOrInstancePropertiesFromNodeTypes(true, serviceTemplate);
+ serviceTemplateProvider.getCommonOrInstancePropertiesFromNodeTypes(true, inputServiceTemplate);
var result = serviceTemplateProvider.getDerivedCommonOrInstanceNodeTemplates(
- serviceTemplate.getToscaTopologyTemplate().getNodeTemplates(), commonOrInstanceNodeTypeProps);
+ inputServiceTemplate.getToscaTopologyTemplate().getNodeTemplates(), commonOrInstanceNodeTypeProps);
assertNotNull(result);
assertThat(result).hasSize(8);
@@ -73,74 +82,74 @@ class ServiceTemplateProviderTest {
@Test
void testCreateServiceTemplate() throws PfModelException {
- var modelsProvider = mock(PolicyModelsProvider.class);
- var serviceTemplateProvider = new ServiceTemplateProvider(modelsProvider);
+ var serviceTemplateRepository = mock(ToscaServiceTemplateRepository.class);
+ var serviceTemplateProvider = new ServiceTemplateProvider(serviceTemplateRepository);
- var serviceTemplate = new ToscaServiceTemplate();
- when(modelsProvider.createServiceTemplate(serviceTemplate)).thenReturn(serviceTemplate);
+ var jpaServiceTemplate = ProviderUtils.getJpaAndValidate(inputServiceTemplate, JpaToscaServiceTemplate::new,
+ "toscaServiceTemplate");
+ when(serviceTemplateRepository.save(jpaServiceTemplate)).thenReturn(jpaServiceTemplate);
- var result = serviceTemplateProvider.createServiceTemplate(serviceTemplate);
+ var result = serviceTemplateProvider.createServiceTemplate(inputServiceTemplate);
- assertThat(result).isEqualTo(serviceTemplate);
+ assertThat(result).isEqualTo(jpaServiceTemplate.toAuthorative());
}
@Test
void testDeleteServiceTemplate() throws PfModelException {
- var serviceTemplate = new ToscaServiceTemplate();
- serviceTemplate.setName("Name");
- serviceTemplate.setVersion("1.0.0");
- var modelsProvider = mock(PolicyModelsProvider.class);
- when(modelsProvider.deleteServiceTemplate(serviceTemplate.getName(), serviceTemplate.getVersion()))
- .thenReturn(serviceTemplate);
-
- var serviceTemplateProvider = new ServiceTemplateProvider(modelsProvider);
- var result =
- serviceTemplateProvider.deleteServiceTemplate(serviceTemplate.getName(), serviceTemplate.getVersion());
-
- assertThat(result).isEqualTo(serviceTemplate);
+ var jpaServiceTemplate = ProviderUtils.getJpaAndValidate(inputServiceTemplate, JpaToscaServiceTemplate::new,
+ "toscaServiceTemplate");
+ var serviceTemplateRepository = mock(ToscaServiceTemplateRepository.class);
+ when(serviceTemplateRepository
+ .findById(new PfConceptKey(inputServiceTemplate.getName(), inputServiceTemplate.getVersion())))
+ .thenReturn(Optional.of(jpaServiceTemplate));
+
+ var serviceTemplateProvider = new ServiceTemplateProvider(serviceTemplateRepository);
+ var result = serviceTemplateProvider.deleteServiceTemplate(inputServiceTemplate.getName(),
+ inputServiceTemplate.getVersion());
+
+ assertThat(result).isEqualTo(jpaServiceTemplate.toAuthorative());
}
@Test
void testGetServiceTemplateListEmpty() throws PfModelException {
- var modelsProvider = mock(PolicyModelsProvider.class);
- when(modelsProvider.getServiceTemplateList(any(String.class), any(String.class))).thenReturn(List.of());
+ var serviceTemplateRepository = mock(ToscaServiceTemplateRepository.class);
+ when(serviceTemplateRepository.findById(any())).thenReturn(Optional.empty());
- var serviceTemplateProvider = new ServiceTemplateProvider(modelsProvider);
+ var serviceTemplateProvider = new ServiceTemplateProvider(serviceTemplateRepository);
assertThatThrownBy(() -> serviceTemplateProvider.getToscaServiceTemplate("Name", "1.0.0"))
.hasMessage("Control Loop definitions not found");
}
@Test
void testGetServiceTemplateList() throws PfModelException {
- var serviceTemplate = new ToscaServiceTemplate();
- serviceTemplate.setName("Name");
- serviceTemplate.setVersion("1.0.0");
- var modelsProvider = mock(PolicyModelsProvider.class);
- when(modelsProvider.getServiceTemplateList(serviceTemplate.getName(), serviceTemplate.getVersion()))
- .thenReturn(List.of(serviceTemplate));
-
- var serviceTemplateProvider = new ServiceTemplateProvider(modelsProvider);
- var result = serviceTemplateProvider.getToscaServiceTemplate(serviceTemplate.getName(),
- serviceTemplate.getVersion());
-
- assertThat(result).isEqualTo(serviceTemplate);
+ var jpaServiceTemplate = ProviderUtils.getJpaAndValidate(inputServiceTemplate, JpaToscaServiceTemplate::new,
+ "toscaServiceTemplate");
+ var serviceTemplateRepository = mock(ToscaServiceTemplateRepository.class);
+ when(serviceTemplateRepository
+ .findById(new PfConceptKey(inputServiceTemplate.getName(), inputServiceTemplate.getVersion())))
+ .thenReturn(Optional.of(jpaServiceTemplate));
+
+ var serviceTemplateProvider = new ServiceTemplateProvider(serviceTemplateRepository);
+ var result = serviceTemplateProvider.getToscaServiceTemplate(inputServiceTemplate.getName(),
+ inputServiceTemplate.getVersion());
+
+ assertThat(result).isEqualTo(jpaServiceTemplate.toAuthorative());
}
@Test
void testGetServiceTemplate() throws PfModelException {
- var serviceTemplate = new ToscaServiceTemplate();
- serviceTemplate.setName("Name");
- serviceTemplate.setVersion("1.0.0");
- var modelsProvider = mock(PolicyModelsProvider.class);
- when(modelsProvider.getServiceTemplateList(serviceTemplate.getName(), serviceTemplate.getVersion()))
- .thenReturn(List.of(serviceTemplate));
+ var jpaServiceTemplate = ProviderUtils.getJpaAndValidate(inputServiceTemplate, JpaToscaServiceTemplate::new,
+ "toscaServiceTemplate");
+ var serviceTemplateRepository = mock(ToscaServiceTemplateRepository.class);
+ when(serviceTemplateRepository.getFiltered(JpaToscaServiceTemplate.class, inputServiceTemplate.getName(),
+ inputServiceTemplate.getVersion())).thenReturn(List.of(jpaServiceTemplate));
- var serviceTemplateProvider = new ServiceTemplateProvider(modelsProvider);
- var result =
- serviceTemplateProvider.getServiceTemplateList(serviceTemplate.getName(), serviceTemplate.getVersion());
+ var serviceTemplateProvider = new ServiceTemplateProvider(serviceTemplateRepository);
+ var result = serviceTemplateProvider.getServiceTemplateList(inputServiceTemplate.getName(),
+ inputServiceTemplate.getVersion());
assertThat(result).hasSize(1);
- assertThat(result.get(0)).isEqualTo(serviceTemplate);
+ assertThat(result.get(0)).isEqualTo(jpaServiceTemplate.toAuthorative());
}
/**