From ab7450a5c85292468a99cb312e0571a160815789 Mon Sep 17 00:00:00 2001 From: Dmitriy Kopylenko Date: Tue, 19 Nov 2019 15:56:41 -0500 Subject: [PATCH] SHIBUI-1588 --- .../filters/EntityAttributesFilterTarget.java | 2 + .../MetadataResolverRepositoryTests.groovy | 38 ++++++++++++++++++- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/EntityAttributesFilterTarget.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/EntityAttributesFilterTarget.java index ffff2ca30..8a9c2a7fb 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/EntityAttributesFilterTarget.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/EntityAttributesFilterTarget.java @@ -8,6 +8,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import javax.persistence.Column; import javax.persistence.ElementCollection; import javax.persistence.Entity; import javax.persistence.FetchType; @@ -31,6 +32,7 @@ public enum EntityAttributesFilterTargetType { @ElementCollection @OrderColumn + @Column(length = 4000) private List value; public EntityAttributesFilterTargetType getEntityAttributesFilterTargetType() { diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/MetadataResolverRepositoryTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/MetadataResolverRepositoryTests.groovy index cec7fe8c5..b3f102167 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/MetadataResolverRepositoryTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/MetadataResolverRepositoryTests.groovy @@ -25,6 +25,8 @@ import spock.lang.Specification import javax.persistence.EntityManager +import static edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilterTarget.EntityAttributesFilterTargetType.CONDITION_SCRIPT + /** * Testing persistence of the MetadataResolver models */ @@ -198,7 +200,42 @@ class MetadataResolverRepositoryTests extends Specification { basicPersistenceOfResolverIsCorrectFor { it instanceof LocalDynamicMetadataResolver } } + def "persisting entity attributes filter target with script of more than 255 characters"() { + given: + def mdr = new MetadataResolver().with { + it.name = "SHIBUI-1588" + it + } + def filter = new EntityAttributesFilter().with { + it.name = 'SHIBUI-1588' + it.resourceId = 'SHIBUI-1588' + it.entityAttributesFilterTarget = new EntityAttributesFilterTarget().with { + it.entityAttributesFilterTargetType = CONDITION_SCRIPT + it.singleValue = """ + /* + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut + labore et dolore magna aliqua. Cras fermentum odio eu feugiat pretium nibh ipsum. Sed augue lacus viverra vitae. + Fermentum et sollicitudin ac orci. Platea dictumst vestibulum rhoncus est pellentesque elit ullamcorper dignissim. + Rhoncus urna neque viverra justo nec ultrices dui sapien. Tortor id aliquet lectus proin nibh nisl condimentum id venenatis. + Massa id neque aliquam vestibulum morbi blandit cursus risus. Metus aliquam eleifend mi in nulla posuere sollicitudin. + Arcu ac tortor dignissim convallis aenean. Et tortor consequat id porta nibh venenatis cras. + Netus et malesuada fames ac turpis egestas. Bibendum arcu vitae elementum curabitur. + Volutpat consequat mauris nunc congue nisi vitae suscipit. + */ + """ + it + } + it + } + mdr.addFilter(filter) + when: + metadataResolverRepository.save(mdr) + entityManager.flush() + + then: + noExceptionThrown() + } private void basicPersistenceOfResolverIsCorrectFor(Closure resolverTypeCheck) { assert metadataResolverRepository.findAll().size() > 0 @@ -227,5 +264,4 @@ class MetadataResolverRepositoryTests extends Specification { } resolver } - }