From ed2ec50d180280acc5dcc1f34f1d2359ae04230f Mon Sep 17 00:00:00 2001 From: chasegawa Date: Fri, 16 Apr 2021 08:06:59 -0700 Subject: [PATCH] SHIBUI-1734 Commit to branch - incomplete task --- ...te.java => CustomAttributeDefinition.java} | 8 ++--- .../repository/CustomAttributeRepository.java | 12 +++---- .../CustomAttributeRepositoryTests.groovy | 34 +++++++++---------- 3 files changed, 27 insertions(+), 27 deletions(-) rename backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/{CustomAttribute.java => CustomAttributeDefinition.java} (80%) diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/CustomAttribute.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/CustomAttributeDefinition.java similarity index 80% rename from backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/CustomAttribute.java rename to backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/CustomAttributeDefinition.java index 9c1574be6..03b9db95d 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/CustomAttribute.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/CustomAttributeDefinition.java @@ -14,10 +14,10 @@ import lombok.Data; -@Entity(name = "custom_attribute") +@Entity(name = "custom_attribute_definition") @Audited @Data -public class CustomAttribute { +public class CustomAttributeDefinition { @Id @Column(nullable = false) String name; @@ -32,9 +32,9 @@ public class CustomAttribute { String defaultValue; @ElementCollection - @CollectionTable(name = "custom_attr_values", joinColumns = @JoinColumn(name = "name")) + @CollectionTable(name = "custom_attr_list_defs", joinColumns = @JoinColumn(name = "name")) @Column(name = "value", nullable = false) - Set customAttrValues = new HashSet<>(); + Set customAttrListDefinitions = new HashSet<>(); // @TODO: logic to ensure defaultValue matches an item from the list of values when SELECTION_LIST is the type ?? } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/CustomAttributeRepository.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/CustomAttributeRepository.java index edbc4cd9b..ba6385154 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/CustomAttributeRepository.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/CustomAttributeRepository.java @@ -10,17 +10,17 @@ import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; -import edu.internet2.tier.shibboleth.admin.ui.domain.CustomAttribute; +import edu.internet2.tier.shibboleth.admin.ui.domain.CustomAttributeDefinition; /** - * Repository to manage {@link CustomAttribute} instances. + * Repository to manage {@link CustomAttributeDefinition} instances. */ -public interface CustomAttributeRepository extends JpaRepository { +public interface CustomAttributeRepository extends JpaRepository { - List findAll(); + List findAll(); - CustomAttribute findByName(String name); + CustomAttributeDefinition findByName(String name); @SuppressWarnings("unchecked") - CustomAttribute save(CustomAttribute attribute); + CustomAttributeDefinition save(CustomAttributeDefinition attribute); } diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/CustomAttributeRepositoryTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/CustomAttributeRepositoryTests.groovy index 9aa14cab0..f9af4b2a4 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/CustomAttributeRepositoryTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/CustomAttributeRepositoryTests.groovy @@ -9,7 +9,7 @@ import org.springframework.data.jpa.repository.config.EnableJpaRepositories import org.springframework.test.context.ContextConfiguration import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration -import edu.internet2.tier.shibboleth.admin.ui.domain.CustomAttribute +import edu.internet2.tier.shibboleth.admin.ui.domain.CustomAttributeDefinition import spock.lang.Specification /** @@ -31,10 +31,10 @@ class CustomAttributeRepositoryTests extends Specification { def "basic CRUD operations validated"() { given: def setItems = new HashSet(["val1", "val2", "val3"]) - def ca = new CustomAttribute().with { + def ca = new CustomAttributeDefinition().with { it.name = "ca-name" it.attributeType = "SELECTION_LIST" - it.customAttrValues = setItems + it.customAttrListDefinitions = setItems it } @@ -55,7 +55,7 @@ class CustomAttributeRepositoryTests extends Specification { // save check def cas = repo.findAll() cas.size() == 1 - def caFromDb1 = cas.get(0).asType(CustomAttribute) + def caFromDb1 = cas.get(0).asType(CustomAttributeDefinition) caFromDb1.equals(ca) == true // fetch checks @@ -76,13 +76,13 @@ class CustomAttributeRepositoryTests extends Specification { then: def cas2 = repo.findAll() cas2.size() == 1 - def caFromDb2 = cas2.get(0).asType(CustomAttribute) + def caFromDb2 = cas2.get(0).asType(CustomAttributeDefinition) caFromDb2.equals(ca) == false caFromDb2.equals(caFromDb1) == true // delete tests when: - def delByName = new CustomAttribute().with { + def delByName = new CustomAttributeDefinition().with { it.name = "ca-name" it } @@ -99,22 +99,22 @@ class CustomAttributeRepositoryTests extends Specification { def setItems2 = new HashSet(["val2", "val1"]) def setItems3 = new HashSet(["val1", "val2", "val3"]) def setItems4 = new HashSet(["val1", "val2", "val3", "val4"]) - def ca2 = new CustomAttribute().with { + def ca2 = new CustomAttributeDefinition().with { it.name = "ca-name" it.attributeType = "SELECTION_LIST" - it.customAttrValues = setItems2 + it.customAttrListDefinitions = setItems2 it } - def ca3 = new CustomAttribute().with { + def ca3 = new CustomAttributeDefinition().with { it.name = "ca-name" it.attributeType = "SELECTION_LIST" - it.customAttrValues = setItems3 + it.customAttrListDefinitions = setItems3 it } - def ca4 = new CustomAttribute().with { + def ca4 = new CustomAttributeDefinition().with { it.name = "ca-name" it.attributeType = "SELECTION_LIST" - it.customAttrValues = setItems4 + it.customAttrListDefinitions = setItems4 it } @@ -126,31 +126,31 @@ class CustomAttributeRepositoryTests extends Specification { then: def cas = repo.findAll() cas.size() == 1 - def caFromDb = cas.get(0).asType(CustomAttribute) + def caFromDb = cas.get(0).asType(CustomAttributeDefinition) caFromDb.equals(ca3) == true // now update the attribute list items caFromDb.with { - it.customAttrValues = setItems4 + it.customAttrListDefinitions = setItems4 it } repo.save(caFromDb) entityManager.flush() entityManager.clear() - def caFromDb4 = repo.findAll().get(0).asType(CustomAttribute) + def caFromDb4 = repo.findAll().get(0).asType(CustomAttributeDefinition) caFromDb4.equals(ca4) == true // now remove items caFromDb.with { - it.customAttrValues = setItems2 + it.customAttrListDefinitions = setItems2 it } repo.save(caFromDb) entityManager.flush() entityManager.clear() - def caFromDb2 = repo.findAll().get(0).asType(CustomAttribute) + def caFromDb2 = repo.findAll().get(0).asType(CustomAttributeDefinition) caFromDb2.equals(ca2) == true } } \ No newline at end of file