From aeb3084b0366c4f68656fa0811133dd01a614970 Mon Sep 17 00:00:00 2001 From: Matija Obreza Date: Mon, 15 Oct 2018 15:47:46 +0200 Subject: [PATCH] Fix: Respect incoming Dataset#uuid when creating a new record - Test that VocabularyTerms are deleted with Descriptor --- .../service/impl/DatasetServiceImpl.java | 1 + .../catalog/services/CatalogServiceTest.java | 4 ++++ .../catalog/services/DatasetServiceTest.java | 2 ++ .../services/DescriptorServiceTest.java | 18 +++++++++++++++++- 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/genesys/catalog/service/impl/DatasetServiceImpl.java b/src/main/java/org/genesys/catalog/service/impl/DatasetServiceImpl.java index 4ff0a583e..4a42b4da2 100644 --- a/src/main/java/org/genesys/catalog/service/impl/DatasetServiceImpl.java +++ b/src/main/java/org/genesys/catalog/service/impl/DatasetServiceImpl.java @@ -143,6 +143,7 @@ public class DatasetServiceImpl implements DatasetService { datasetVersionsRepository.save(datasetVersions); Dataset dataset = new Dataset(); + dataset.setUuid(source.getUuid()); dataset.setVersions(datasetVersions); copyValues(dataset, source); dataset.setOwner(source.getOwner()); diff --git a/src/test/java/org/genesys/test/catalog/services/CatalogServiceTest.java b/src/test/java/org/genesys/test/catalog/services/CatalogServiceTest.java index 267205e6a..1562bbe55 100644 --- a/src/test/java/org/genesys/test/catalog/services/CatalogServiceTest.java +++ b/src/test/java/org/genesys/test/catalog/services/CatalogServiceTest.java @@ -28,6 +28,7 @@ import org.genesys.catalog.persistence.PartnerRepository; import org.genesys.catalog.persistence.ShortFilterRepository; import org.genesys.catalog.persistence.traits.DescriptorListRepository; import org.genesys.catalog.persistence.traits.DescriptorRepository; +import org.genesys.catalog.persistence.vocab.VocabularyTermRepository; import org.genesys.catalog.service.DescriptorListService; import org.genesys.catalog.service.DescriptorService; import org.genesys.catalog.service.PartnerService; @@ -87,6 +88,9 @@ public abstract class CatalogServiceTest extends AbstractServiceTest { @Autowired protected VocabularyService vocabularyService; + @Autowired + protected VocabularyTermRepository vocabularyTermRepository; + @Autowired protected ShortFilterService shortFilterService; diff --git a/src/test/java/org/genesys/test/catalog/services/DatasetServiceTest.java b/src/test/java/org/genesys/test/catalog/services/DatasetServiceTest.java index 7fd678f20..59660c301 100644 --- a/src/test/java/org/genesys/test/catalog/services/DatasetServiceTest.java +++ b/src/test/java/org/genesys/test/catalog/services/DatasetServiceTest.java @@ -414,6 +414,8 @@ public class DatasetServiceTest extends AbstractDatasetServiceTest { final Dataset dataset = buildAndSaveDataset(DATASET_TITLE_1, DATASET_DESCRIPTION_1, partner, PublishState.DRAFT); dataset.setDescriptors(Lists.newArrayList(descriptor1)); + + dataset.setUuid(null); // Clear UUID to create a copy Dataset savedDataset = datasetService.createDataset(dataset); assertThat(savedDataset.getDescriptors(), contains(descriptor1)); diff --git a/src/test/java/org/genesys/test/catalog/services/DescriptorServiceTest.java b/src/test/java/org/genesys/test/catalog/services/DescriptorServiceTest.java index 53d37816f..99b60076e 100644 --- a/src/test/java/org/genesys/test/catalog/services/DescriptorServiceTest.java +++ b/src/test/java/org/genesys/test/catalog/services/DescriptorServiceTest.java @@ -108,7 +108,8 @@ public class DescriptorServiceTest extends CatalogServiceTest { assertThat(result, not(nullValue())); assertThat(result.getId(), not(nullValue())); - assertThat(result.getTerms(), not(hasSize(0))); + assertThat(result.getTerms(), hasSize(2)); + assertThat(vocabularyTermRepository.count(), is(2l)); } @Test(expected = NotFoundElement.class) @@ -123,6 +124,21 @@ public class DescriptorServiceTest extends CatalogServiceTest { descriptorService.getDescriptor(result.getUuid(), result.getVersion()); } + + @Test(expected = NotFoundElement.class) + public void testRemoveDescriptorWithTerms() { + final UUID uuid = UUID.randomUUID(); + final Descriptor input = setupDescriptor(uuid, DESCRIPTOR_TITLE_1, Category.PASSPORT, DataType.CODED, VERSION_1_0, PublishState.DRAFT); + input.setTerms(Lists.newArrayList(VocabularyTerm.fromData(TERM_CODE_1, TERM_TITLE_1), VocabularyTerm.fromData(TERM_CODE_2, TERM_TITLE_2))); + + Descriptor result = descriptorService.createDescriptor(input); + assertThat(result.getTerms(), not(hasSize(0))); + + result = descriptorService.removeDescriptor(result); + descriptorService.getDescriptor(result.getUuid(), result.getVersion()); + assertThat(vocabularyTermRepository.count(), is(0l)); + } + @Test public void testUnpublishDescriptorWithDescriptorList() { // create descriptor -- GitLab