From 5a8718b84dbd3c6fa78aa644a4695274a0a1ab5d Mon Sep 17 00:00:00 2001 From: Ruslan Kashapov Date: Thu, 10 Dec 2020 10:49:59 +0200 Subject: Create dataspace Issue-ID: CPS-134 Change-Id: Ie7f00f9c322a12a6c2a71c1407f6970a7dd24d2d Signed-off-by: Ruslan Kashapov --- .../cps/spi/impl/CpsAdminPersistenceServiceImpl.java | 10 ++++++++++ .../cps/spi/impl/CpsAdminPersistenceServiceTest.java | 19 +++++++++++++++++++ 2 files changed, 29 insertions(+) (limited to 'cps-ri') diff --git a/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsAdminPersistenceServiceImpl.java b/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsAdminPersistenceServiceImpl.java index 5093ba5899..d6579bdbb5 100644 --- a/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsAdminPersistenceServiceImpl.java +++ b/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsAdminPersistenceServiceImpl.java @@ -28,6 +28,7 @@ import org.onap.cps.spi.entities.Dataspace; import org.onap.cps.spi.entities.Fragment; import org.onap.cps.spi.entities.SchemaSet; import org.onap.cps.spi.exceptions.AnchorAlreadyDefinedException; +import org.onap.cps.spi.exceptions.DataspaceAlreadyDefinedException; import org.onap.cps.spi.model.Anchor; import org.onap.cps.spi.repository.DataspaceRepository; import org.onap.cps.spi.repository.FragmentRepository; @@ -48,6 +49,15 @@ public class CpsAdminPersistenceServiceImpl implements CpsAdminPersistenceServic @Autowired private SchemaSetRepository schemaSetRepository; + @Override + public void createDataspace(final String dataspaceName) { + try { + dataspaceRepository.save(new Dataspace(dataspaceName)); + } catch (final DataIntegrityViolationException e) { + throw new DataspaceAlreadyDefinedException(dataspaceName, e); + } + } + @Override public void createAnchor(final String dataspaceName, final String schemaSetName, final String anchorName) { final Dataspace dataspace = dataspaceRepository.getByName(dataspaceName); diff --git a/cps-ri/src/test/java/org/onap/cps/spi/impl/CpsAdminPersistenceServiceTest.java b/cps-ri/src/test/java/org/onap/cps/spi/impl/CpsAdminPersistenceServiceTest.java index 455369d2cf..7497526f9a 100644 --- a/cps-ri/src/test/java/org/onap/cps/spi/impl/CpsAdminPersistenceServiceTest.java +++ b/cps-ri/src/test/java/org/onap/cps/spi/impl/CpsAdminPersistenceServiceTest.java @@ -32,6 +32,7 @@ import org.onap.cps.spi.CpsAdminPersistenceService; import org.onap.cps.spi.entities.Dataspace; import org.onap.cps.spi.entities.Fragment; import org.onap.cps.spi.exceptions.AnchorAlreadyDefinedException; +import org.onap.cps.spi.exceptions.DataspaceAlreadyDefinedException; import org.onap.cps.spi.exceptions.DataspaceNotFoundException; import org.onap.cps.spi.exceptions.SchemaSetNotFoundException; import org.onap.cps.spi.model.Anchor; @@ -76,6 +77,24 @@ public class CpsAdminPersistenceServiceTest { @Autowired private SchemaSetRepository schemaSetRepository; + @Test + @SqlGroup({@Sql(CLEAR_DATA), @Sql(SET_DATA)}) + public void testCreateDataspace() { + final String dataspaceName = "DATASPACE-NEW"; + cpsAdminPersistenceService.createDataspace(dataspaceName); + + final Dataspace dataspace = dataspaceRepository.findByName(dataspaceName).orElseThrow(); + assertNotNull(dataspace); + assertNotNull(dataspace.getId()); + assertEquals(dataspaceName, dataspace.getName()); + } + + @Test(expected = DataspaceAlreadyDefinedException.class) + @SqlGroup({@Sql(CLEAR_DATA), @Sql(SET_DATA)}) + public void testCreateDataspaceWithNameAlreadyDefined() { + cpsAdminPersistenceService.createDataspace(DATASPACE_NAME); + } + @Test @SqlGroup({@Sql(CLEAR_DATA), @Sql(SET_DATA)}) public void testCreateAnchor() { -- cgit 1.2.3-korg