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 8c68942c3..e9dc3c390 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,8 +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.MarkupBuilder import net.shibboleth.ext.spring.resource.ResourceHelper import net.shibboleth.utilities.java.support.resolver.CriteriaSet @@ -51,6 +54,15 @@ class JPAMetadataResolverServiceImplTests extends Specification { @Autowired OpenSamlObjects openSamlObjects + @Autowired + AttributeUtility attributeUtility + + TestObjectGenerator testObjectGenerator + + def setup() { + testObjectGenerator = new TestObjectGenerator(attributeUtility) + } + def 'test adding a filter'() { given: def expectedXML = ''' @@ -102,10 +114,25 @@ class JPAMetadataResolverServiceImplTests extends Specification { def 'test generating filter xml snippet'() { given: def xml = new MarkupBuilder() + def filter = testObjectGenerator.entityRoleWhitelistFilter() when: - xml.MetadataResolver { - genXmlSnippet(delegate) + xml.MetadataProvider(id: 'ShibbolethMetadata', + xmlns: 'urn:mace:shibboleth:2.0:metadata', + 'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance', + 'xsi:type': 'ChainingMetadataProvider', + 'xsi:schemaLocation': 'urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd urn:mace:shibboleth:2.0:resource http://shibboleth.net/schema/idp/shibboleth-resource.xsd urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd urn:oasis:names:tc:SAML:2.0:metadata http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd urn:oasis:names:tc:SAML:2.0:assertion http://docs.oasis-open.org/security/saml/v2.0/saml-schema-assertion-2.0.xsd' + ) { + MetadataProvider(id: 'HTTPMetadata', + 'xsi:type': 'FileBackedHTTPMetadataProvider', + backingFile: '%{idp.home}/metadata/incommonmd.xml', + metadataURL: 'http://md.incommon.org/InCommon/InCommon-metadata.xml', + minRefreshDelay: 'PT5M', + maxRefreshDelay: 'PT1H', + refreshDelayFactor: '0.75' + ) { + genXmlSnippet(filter, delegate) + } } println xml.toString() @@ -113,11 +140,14 @@ class JPAMetadataResolverServiceImplTests extends Specification { xml } - private genXmlSnippet(xmlDelegate) { + private genXmlSnippet(EntityRoleWhiteListFilter filter, xmlDelegate) { xmlDelegate.MetadataFilter( - 'xsi:type': 'EntityRoleWhiteList' + 'xsi:type': 'EntityRoleWhiteList', + 'xmlns:md': 'urn:oasis:names:tc:SAML:2.0:metadata' ) { - RetainedRole('md:SPSSODescriptor') + filter.retainedRoles.each { + xmlDelegate.RetainedRole(it) + } } }