diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/FileBackedHttpMetadataProviderControllerTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/FileBackedHttpMetadataProviderControllerTests.groovy index 1cf30ab69..f70b69e5b 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/FileBackedHttpMetadataProviderControllerTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/FileBackedHttpMetadataProviderControllerTests.groovy @@ -7,8 +7,11 @@ import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.FileBackedHttpMetadataResolver import edu.internet2.tier.shibboleth.admin.ui.repository.FileBackedHttpMetadataResolverRepository import edu.internet2.tier.shibboleth.admin.ui.util.RandomGenerator +import edu.internet2.tier.shibboleth.admin.ui.util.TestObjectGenerator +import edu.internet2.tier.shibboleth.admin.util.AttributeUtility import groovy.json.JsonOutput import groovy.json.JsonSlurper +import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.autoconfigure.domain.EntityScan import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest import org.springframework.data.jpa.repository.config.EnableJpaRepositories @@ -30,14 +33,19 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. @EntityScan("edu.internet2.tier.shibboleth.admin.ui") class FileBackedHttpMetadataProviderControllerTests extends Specification { RandomGenerator randomGenerator + TestObjectGenerator testObjectGenerator ObjectMapper mapper + @Autowired + AttributeUtility attributeUtility + def repository = Mock(FileBackedHttpMetadataResolverRepository) def controller def mockMvc def setup() { randomGenerator = new RandomGenerator() + testObjectGenerator = new TestObjectGenerator(attributeUtility) mapper = new ObjectMapper() controller = new FileBackedHttpMetadataProviderController ( diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestObjectGenerator.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestObjectGenerator.groovy index b8adc23d0..54d771f5b 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestObjectGenerator.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestObjectGenerator.groovy @@ -35,6 +35,28 @@ class TestObjectGenerator { this.attributeUtility = attributeUtility } + HttpMetadataResolverAttributes buildHttpMetadataResolverAttributes() { + def attributes = new HttpMetadataResolverAttributes().with { + it.disregardTLSCertificate = generator.randomBoolean() + it.connectionRequestTimeout = generator.randomString(10) + it.httpClientRef = generator.randomString(10) + it.httpCacheDirectory = generator.randomString(10) + it.httpCaching = randomHttpCachingType() + it.httpClientSecurityParametersRef = generator.randomString(10) + it.httpMaxCacheEntries = generator.randomInt(1, 10) + it.httpMaxCacheEntrySize = generator.randomInt(100, 10000) + it.proxyHost = generator.randomString(10) + it.proxyPassword = generator.randomString(10) + it.proxyPort = generator.randomString(5) + it.proxyUser = generator.randomString(10) + it.requestTimeout = generator.randomString(10) + it.socketTimeout = generator.randomString(10) + it.tlsTrustEngineRef = generator.randomString(10) + it + } + return attributes + } + List buildFilterList() { List filterList = new ArrayList<>() (1..generator.randomInt(4, 10)).each { @@ -212,6 +234,34 @@ class TestObjectGenerator { } } + FileBackedHttpMetadataResolver buildFileBackedHttpMetadataResolver() { + def resolver = new FileBackedHttpMetadataResolver() + resolver.name = generator.randomString(10) + resolver.requireValidMetadata = generator.randomBoolean() + resolver.failFastInitialization = generator.randomBoolean() + resolver.sortKey = generator.randomInt(0, 10) + resolver.criterionPredicateRegistryRef = generator.randomString(10) + resolver.useDefaultPredicateRegistry = generator.randomBoolean() + resolver.satisfyAnyPredicates = generator.randomBoolean() + resolver.metadataFilters = buildFilterList() + resolver.reloadableMetadataResolverAttributes = buildReloadableMetadataResolverAttributes() + resolver.httpMetadataResolverAttributes = buildHttpMetadataResolverAttributes() + return resolver + } + + ReloadableMetadataResolverAttributes buildReloadableMetadataResolverAttributes() { + def attributes = new ReloadableMetadataResolverAttributes() + attributes.parserPoolRef = generator.randomString(10) + attributes.taskTimerRef = generator.randomString(10) + attributes.minRefreshDelay = generator.randomString(5) + attributes.maxRefreshDelay = generator.randomString(5) + attributes.refreshDelayFactor = generator.randomInt(0, 5) + attributes.indexesRef = generator.randomString(10) + attributes.resolveViaPredicatesOnly = generator.randomBoolean() + attributes.expirationWarningThreshold = generator.randomString(10) + return attributes + } + /** * This method takes a type and a size and builds a List of that size containing objects of that type. This is * intended to be used with things that extend LocalizedName such as {@link OrganizationName}, {@link OrganizationDisplayName},