From c03a93719ea96aafd6342c959da70818dc52b458 Mon Sep 17 00:00:00 2001 From: Dmitriy Kopylenko Date: Thu, 7 Jun 2018 14:58:45 -0400 Subject: [PATCH] SHIBUI-522[533] --- ...JPAMetadataResolverServiceImplTests.groovy | 7 ++---- ...JPAMetadataResolverServiceImplTests.groovy | 23 +++++++++++++++---- .../admin/ui/util/TestHelpers.groovy | 2 +- backend/src/test/resources/conf/533.xml | 12 ++++++++++ 4 files changed, 33 insertions(+), 11 deletions(-) create mode 100644 backend/src/test/resources/conf/533.xml diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/IncommonJPAMetadataResolverServiceImplTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/IncommonJPAMetadataResolverServiceImplTests.groovy index bc32cc580..86f923b2a 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/IncommonJPAMetadataResolverServiceImplTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/IncommonJPAMetadataResolverServiceImplTests.groovy @@ -6,7 +6,6 @@ import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFil import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilterTarget import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolverRepository -import edu.internet2.tier.shibboleth.admin.ui.util.TestHelpers import edu.internet2.tier.shibboleth.admin.util.AttributeUtility import org.opensaml.saml.metadata.resolver.ChainingMetadataResolver import org.opensaml.saml.metadata.resolver.MetadataResolver @@ -19,8 +18,6 @@ import org.springframework.context.annotation.Bean import org.springframework.data.jpa.repository.config.EnableJpaRepositories import org.springframework.test.annotation.DirtiesContext import org.springframework.test.context.ContextConfiguration -import org.xmlunit.builder.DiffBuilder -import org.xmlunit.builder.Input import spock.lang.Specification import static edu.internet2.tier.shibboleth.admin.ui.util.TestHelpers.* @@ -46,7 +43,7 @@ class IncommonJPAMetadataResolverServiceImplTests extends Specification { def output = metadataResolverService.generateConfiguration() then: - assert generatedXmlTheSameAsExpectedXml('/conf/278.xml', output) + assert generatedXmlIsTheSameAsExpectedXml('/conf/278.xml', output) } def 'test generation of metadata-providers.xml with filters'() { @@ -73,7 +70,7 @@ class IncommonJPAMetadataResolverServiceImplTests extends Specification { def output = metadataResolverService.generateConfiguration() then: - assert generatedXmlTheSameAsExpectedXml('/conf/278.2.xml', output) + assert generatedXmlIsTheSameAsExpectedXml('/conf/278.2.xml', output) } //TODO: check that this configuration is sufficient diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAMetadataResolverServiceImplTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAMetadataResolverServiceImplTests.groovy index fc24d7a21..916001ba7 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAMetadataResolverServiceImplTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAMetadataResolverServiceImplTests.groovy @@ -4,11 +4,11 @@ import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfigurat import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilter import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilterTarget -import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityRoleWhiteListFilter import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolverRepository import edu.internet2.tier.shibboleth.admin.ui.util.TestObjectGenerator import edu.internet2.tier.shibboleth.admin.util.AttributeUtility +import groovy.xml.DOMBuilder import groovy.xml.MarkupBuilder import net.shibboleth.ext.spring.resource.ResourceHelper import net.shibboleth.utilities.java.support.resolver.CriteriaSet @@ -32,6 +32,8 @@ import org.xmlunit.builder.DiffBuilder import org.xmlunit.builder.Input import spock.lang.Specification +import static edu.internet2.tier.shibboleth.admin.ui.util.TestHelpers.* + @SpringBootTest @DataJpaTest @ContextConfiguration(classes=[CoreShibUiConfiguration, SearchConfiguration]) @@ -59,8 +61,21 @@ class JPAMetadataResolverServiceImplTests extends Specification { TestObjectGenerator testObjectGenerator + DOMBuilder domBuilder + + StringWriter writer + + MarkupBuilder markupBuilder + def setup() { testObjectGenerator = new TestObjectGenerator(attributeUtility) + domBuilder = DOMBuilder.newInstance() + writer = new StringWriter() + markupBuilder = new MarkupBuilder(writer) + } + + def cleanup() { + writer.close() } def 'test adding a filter'() { @@ -113,15 +128,13 @@ class JPAMetadataResolverServiceImplTests extends Specification { def 'test generating EntityRoleWhitelistFilter xml snippet'() { given: - def xml = new MarkupBuilder() def filter = testObjectGenerator.entityRoleWhitelistFilter() when: - genXmlSnippet(xml) { JPAMetadataResolverServiceImpl.cast(metadataResolverService).constructFilterXmlNode(filter, it) } - println xml.toString() + genXmlSnippet(markupBuilder) { JPAMetadataResolverServiceImpl.cast(metadataResolverService).constructFilterXmlNode(filter, it) } then: - xml + assert generatedXmlIsTheSameAsExpectedXml('/conf/533.xml', domBuilder.parseText(writer.toString())) } static genXmlSnippet(MarkupBuilder xml, Closure xmlNodeGenerator) { diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestHelpers.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestHelpers.groovy index d235f9d06..fd7f59065 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestHelpers.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestHelpers.groovy @@ -26,7 +26,7 @@ class TestHelpers { return count } - static generatedXmlTheSameAsExpectedXml(String expectedXmlResource, Document generatedXml) { + static generatedXmlIsTheSameAsExpectedXml(String expectedXmlResource, Document generatedXml) { !DiffBuilder.compare(Input.fromStream(this.class.getResourceAsStream(expectedXmlResource))).withTest(Input.fromDocument(generatedXml)).ignoreComments().ignoreWhitespace().build().hasDifferences() } } diff --git a/backend/src/test/resources/conf/533.xml b/backend/src/test/resources/conf/533.xml new file mode 100644 index 000000000..2120be543 --- /dev/null +++ b/backend/src/test/resources/conf/533.xml @@ -0,0 +1,12 @@ + + + + + role1 + role2 + +