From 61a524a49ca0bdfcb058ea154cfb9e0d3ff28bbf Mon Sep 17 00:00:00 2001 From: Bill Smith Date: Mon, 11 Jun 2018 11:12:45 -0700 Subject: [PATCH] [SHIBUI-517] Fixed all tests. --- ...HttpMetadataProviderControllerTests.groovy | 369 ++---------------- ...HttpMetadataResolverRepositoryTests.groovy | 2 +- .../admin/ui/util/TestObjectGenerator.groovy | 2 +- 3 files changed, 43 insertions(+), 330 deletions(-) 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 fe7686402..19975e843 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 @@ -85,44 +85,10 @@ class FileBackedHttpMetadataProviderControllerTests extends Specification { def "POST a new resolver properly persists and returns the new persisted resolver"() { given: - def postedJsonBody = '''{ - "name": "name", - "requireValidMetadata": true, - "failFastInitialization": true, - "sortKey": 7, - "criterionPredicateRegistryRef": "criterionPredicateRegistryRef", - "useDefaultPredicateRegistry": true, - "satisfyAnyPredicates": true, - "metadataFilters": [], - "reloadableMetadataResolverAttributes": { - "parserPoolRef": "parserPoolRef", - "taskTimerRef": "taskTimerRef", - "minRefreshDelay": "minRefreshDelay", - "maxRefreshDelay": "maxRefreshDelay", - "refreshDelayFactor": 1.0, - "indexesRef": "indexesRef", - "resolveViaPredicatesOnly": true, - "expirationWarningThreshold": "expirationWarningThreshold" - }, - "httpMetadataResolverAttributes": { - "httpClientRef": "httpClientRef", - "connectionRequestTimeout": "connectionRequestTimeout", - "requestTimeout": "requestTimeout", - "socketTimeout": "socketTimeout", - "disregardTLSCertificate": true, - "tlsTrustEngineRef": "tlsTrustEngineRef", - "httpClientSecurityParametersRef": "httpClientSecurityParametersRef", - "proxyHost": "proxyHost", - "proxyPort": "proxyPort", - "proxyUser": "proxyUser", - "proxyPassword": "proxyPassword", - "httpCaching": "none", - "httpCacheDirectory": "httpCacheDirectory", - "httpMaxCacheEntries": 1, - "httpMaxCacheEntrySize": 2 - } -}''' - def resolver = new ObjectMapper().readValue(postedJsonBody.bytes, FileBackedHttpMetadataResolver) + def resolver = testObjectGenerator.buildFileBackedHttpMetadataResolver() + resolver.version = resolver.hashCode() + def postedJsonBody = mapper.writeValueAsString(resolver) + 1 * repository.findByName(resolver.getName()) >> null 1 * repository.save(_) >> resolver @@ -145,46 +111,13 @@ class FileBackedHttpMetadataProviderControllerTests extends Specification { def "POST a new resolver that has a name of a persisted resolver returns conflict"() { given: - def randomResolverName = randomGenerator.randomString(10) - def postedJsonBody = """{ - "name": "$randomResolverName", - "requireValidMetadata": true, - "failFastInitialization": true, - "sortKey": 7, - "criterionPredicateRegistryRef": "criterionPredicateRegistryRef", - "useDefaultPredicateRegistry": true, - "satisfyAnyPredicates": true, - "metadataFilters": [], - "reloadableMetadataResolverAttributes": { - "parserPoolRef": "parserPoolRef", - "taskTimerRef": "taskTimerRef", - "minRefreshDelay": "minRefreshDelay", - "maxRefreshDelay": "maxRefreshDelay", - "refreshDelayFactor": 1.0, - "indexesRef": "indexesRef", - "resolveViaPredicatesOnly": true, - "expirationWarningThreshold": "expirationWarningThreshold" - }, - "httpMetadataResolverAttributes": { - "httpClientRef": "httpClientRef", - "connectionRequestTimeout": "connectionRequestTimeout", - "requestTimeout": "requestTimeout", - "socketTimeout": "socketTimeout", - "disregardTLSCertificate": true, - "tlsTrustEngineRef": "tlsTrustEngineRef", - "httpClientSecurityParametersRef": "httpClientSecurityParametersRef", - "proxyHost": "proxyHost", - "proxyPort": "proxyPort", - "proxyUser": "proxyUser", - "proxyPassword": "proxyPassword", - "httpCaching": "none", - "httpCacheDirectory": "httpCacheDirectory", - "httpMaxCacheEntries": 1, - "httpMaxCacheEntrySize": 2 - } -}""" - def resolver = new ObjectMapper().readValue(postedJsonBody.bytes, FileBackedHttpMetadataResolver) - 1 * repository.findByName(randomResolverName) >> resolver + def existingResolver = testObjectGenerator.buildFileBackedHttpMetadataResolver() + def randomResolverName = existingResolver.name + def newResolver = testObjectGenerator.buildFileBackedHttpMetadataResolver() + newResolver.name = randomResolverName + def postedJsonBody = mapper.writeValueAsString(newResolver) + + 1 * repository.findByName(randomResolverName) >> existingResolver 0 * repository.save(_) when: @@ -199,56 +132,18 @@ class FileBackedHttpMetadataProviderControllerTests extends Specification { def "GET by resourceId returns the desired persisted resolver"() { given: - def randomUUID = randomGenerator.randomId() - def resolverJson = """{ - "name": "name", - "resourceId": "$randomUUID", - "requireValidMetadata": true, - "failFastInitialization": true, - "sortKey": 7, - "criterionPredicateRegistryRef": "criterionPredicateRegistryRef", - "useDefaultPredicateRegistry": true, - "satisfyAnyPredicates": true, - "metadataFilters": [], - "reloadableMetadataResolverAttributes": { - "parserPoolRef": "parserPoolRef", - "taskTimerRef": "taskTimerRef", - "minRefreshDelay": "minRefreshDelay", - "maxRefreshDelay": "maxRefreshDelay", - "refreshDelayFactor": 1.0, - "indexesRef": "indexesRef", - "resolveViaPredicatesOnly": true, - "expirationWarningThreshold": "expirationWarningThreshold" - }, - "httpMetadataResolverAttributes": { - "httpClientRef": "httpClientRef", - "connectionRequestTimeout": "connectionRequestTimeout", - "requestTimeout": "requestTimeout", - "socketTimeout": "socketTimeout", - "disregardTLSCertificate": true, - "tlsTrustEngineRef": "tlsTrustEngineRef", - "httpClientSecurityParametersRef": "httpClientSecurityParametersRef", - "proxyHost": "proxyHost", - "proxyPort": "proxyPort", - "proxyUser": "proxyUser", - "proxyPassword": "proxyPassword", - "httpCaching": "none", - "httpCacheDirectory": "httpCacheDirectory", - "httpMaxCacheEntries": 1, - "httpMaxCacheEntrySize": 2 - } -}""" - - def resolver = new ObjectMapper().readValue(resolverJson.bytes, FileBackedHttpMetadataResolver) - resolver.setResourceId(randomUUID) - - 1 * repository.findByResourceId(randomUUID) >> resolver + def existingResolver = testObjectGenerator.buildFileBackedHttpMetadataResolver() + existingResolver.version = existingResolver.hashCode() + def randomResourceId = existingResolver.resourceId + def resolverJson = mapper.writeValueAsString(existingResolver) + + 1 * repository.findByResourceId(randomResourceId) >> existingResolver def expectedResponseContentType = APPLICATION_JSON_UTF8 when: def result = mockMvc.perform( - get("/api/MetadataProvider/FileBackedHttp/$randomUUID")) + get("/api/MetadataProvider/FileBackedHttp/$randomResourceId")) then: result.andExpect(status().isOk()) @@ -273,6 +168,7 @@ class FileBackedHttpMetadataProviderControllerTests extends Specification { def "GET by resolver name returns the desired persisted resolver"() { given: def randomResolver = testObjectGenerator.buildFileBackedHttpMetadataResolver() + randomResolver.version = randomResolver.hashCode() def randomResolverName = randomResolver.name def resolverJson = mapper.writeValueAsString(randomResolver) @@ -306,89 +202,15 @@ class FileBackedHttpMetadataProviderControllerTests extends Specification { def "PUT allows for a successful update of an already-persisted resolver"() { given: - def randomResourceId = "resourceId" - def existingResolverJson = """{ - "name": "name", - "resourceId": "$randomResourceId", - "requireValidMetadata": true, - "failFastInitialization": true, - "sortKey": 7, - "criterionPredicateRegistryRef": "criterionPredicateRegistryRef", - "useDefaultPredicateRegistry": true, - "satisfyAnyPredicates": true, - "metadataFilters": [], - "reloadableMetadataResolverAttributes": { - "parserPoolRef": "parserPoolRef", - "taskTimerRef": "taskTimerRef", - "minRefreshDelay": "minRefreshDelay", - "maxRefreshDelay": "maxRefreshDelay", - "refreshDelayFactor": 1.0, - "indexesRef": "indexesRef", - "resolveViaPredicatesOnly": true, - "expirationWarningThreshold": "expirationWarningThreshold" - }, - "httpMetadataResolverAttributes": { - "httpClientRef": "httpClientRef", - "connectionRequestTimeout": "connectionRequestTimeout", - "requestTimeout": "requestTimeout", - "socketTimeout": "socketTimeout", - "disregardTLSCertificate": true, - "tlsTrustEngineRef": "tlsTrustEngineRef", - "httpClientSecurityParametersRef": "httpClientSecurityParametersRef", - "proxyHost": "proxyHost", - "proxyPort": "proxyPort", - "proxyUser": "proxyUser", - "proxyPassword": "proxyPassword", - "httpCaching": "none", - "httpCacheDirectory": "httpCacheDirectory", - "httpMaxCacheEntries": 1, - "httpMaxCacheEntrySize": 2 - } -}""" - def existingResolver = new ObjectMapper().readValue(existingResolverJson.bytes, FileBackedHttpMetadataResolver) - def existingResolverVersion = existingResolver.hashCode() - - def randomName = randomGenerator.randomString(10) - def postedJsonBody = """{ - "name": "$randomName", - "resourceId": "$randomResourceId", - "version": "$existingResolverVersion", - "requireValidMetadata": true, - "failFastInitialization": true, - "sortKey": 7, - "criterionPredicateRegistryRef": "criterionPredicateRegistryRef", - "useDefaultPredicateRegistry": true, - "satisfyAnyPredicates": true, - "metadataFilters": [], - "reloadableMetadataResolverAttributes": { - "parserPoolRef": "parserPoolRef", - "taskTimerRef": "taskTimerRef", - "minRefreshDelay": "minRefreshDelay", - "maxRefreshDelay": "maxRefreshDelay", - "refreshDelayFactor": 1.0, - "indexesRef": "indexesRef", - "resolveViaPredicatesOnly": true, - "expirationWarningThreshold": "expirationWarningThreshold" - }, - "httpMetadataResolverAttributes": { - "httpClientRef": "httpClientRef", - "connectionRequestTimeout": "connectionRequestTimeout", - "requestTimeout": "requestTimeout", - "socketTimeout": "socketTimeout", - "disregardTLSCertificate": true, - "tlsTrustEngineRef": "tlsTrustEngineRef", - "httpClientSecurityParametersRef": "httpClientSecurityParametersRef", - "proxyHost": "proxyHost", - "proxyPort": "proxyPort", - "proxyUser": "proxyUser", - "proxyPassword": "proxyPassword", - "httpCaching": "none", - "httpCacheDirectory": "httpCacheDirectory", - "httpMaxCacheEntries": 1, - "httpMaxCacheEntrySize": 2 - } -}""" - def updatedResolver = new ObjectMapper().readValue(postedJsonBody.bytes, FileBackedHttpMetadataResolver) + def existingResolver = testObjectGenerator.buildFileBackedHttpMetadataResolver() + existingResolver.version = existingResolver.hashCode() + def randomResourceId = existingResolver.resourceId + def updatedResolver = testObjectGenerator.buildFileBackedHttpMetadataResolver() + updatedResolver.version = existingResolver.version + updatedResolver.resourceId = existingResolver.resourceId + def postedJsonBody = mapper.writeValueAsString(updatedResolver) + + 1 * repository.findByResourceId(randomResourceId) >> existingResolver 1 * repository.save(_) >> updatedResolver @@ -410,89 +232,14 @@ class FileBackedHttpMetadataProviderControllerTests extends Specification { def "PUT of an updated resolver with an incorrect version returns a conflict"() { given: - def randomResourceId = "resourceId" - def existingResolverJson = """{ - "name": "name", - "resourceId": "$randomResourceId", - "requireValidMetadata": true, - "failFastInitialization": true, - "sortKey": 7, - "criterionPredicateRegistryRef": "criterionPredicateRegistryRef", - "useDefaultPredicateRegistry": true, - "satisfyAnyPredicates": true, - "metadataFilters": [], - "reloadableMetadataResolverAttributes": { - "parserPoolRef": "parserPoolRef", - "taskTimerRef": "taskTimerRef", - "minRefreshDelay": "minRefreshDelay", - "maxRefreshDelay": "maxRefreshDelay", - "refreshDelayFactor": 1.0, - "indexesRef": "indexesRef", - "resolveViaPredicatesOnly": true, - "expirationWarningThreshold": "expirationWarningThreshold" - }, - "httpMetadataResolverAttributes": { - "httpClientRef": "httpClientRef", - "connectionRequestTimeout": "connectionRequestTimeout", - "requestTimeout": "requestTimeout", - "socketTimeout": "socketTimeout", - "disregardTLSCertificate": true, - "tlsTrustEngineRef": "tlsTrustEngineRef", - "httpClientSecurityParametersRef": "httpClientSecurityParametersRef", - "proxyHost": "proxyHost", - "proxyPort": "proxyPort", - "proxyUser": "proxyUser", - "proxyPassword": "proxyPassword", - "httpCaching": "none", - "httpCacheDirectory": "httpCacheDirectory", - "httpMaxCacheEntries": 1, - "httpMaxCacheEntrySize": 2 - } -}""" - def existingResolver = new ObjectMapper().readValue(existingResolverJson.bytes, FileBackedHttpMetadataResolver) - def existingResolverVersion = existingResolver.hashCode() - - def randomName = randomGenerator.randomString(10) - def randomVersion = randomGenerator.randomInt() - def postedJsonBody = """{ - "name": "$randomName", - "resourceId": "$randomResourceId", - "version": "$randomVersion", - "requireValidMetadata": true, - "failFastInitialization": true, - "sortKey": 7, - "criterionPredicateRegistryRef": "criterionPredicateRegistryRef", - "useDefaultPredicateRegistry": true, - "satisfyAnyPredicates": true, - "metadataFilters": [], - "reloadableMetadataResolverAttributes": { - "parserPoolRef": "parserPoolRef", - "taskTimerRef": "taskTimerRef", - "minRefreshDelay": "minRefreshDelay", - "maxRefreshDelay": "maxRefreshDelay", - "refreshDelayFactor": 1.0, - "indexesRef": "indexesRef", - "resolveViaPredicatesOnly": true, - "expirationWarningThreshold": "expirationWarningThreshold" - }, - "httpMetadataResolverAttributes": { - "httpClientRef": "httpClientRef", - "connectionRequestTimeout": "connectionRequestTimeout", - "requestTimeout": "requestTimeout", - "socketTimeout": "socketTimeout", - "disregardTLSCertificate": true, - "tlsTrustEngineRef": "tlsTrustEngineRef", - "httpClientSecurityParametersRef": "httpClientSecurityParametersRef", - "proxyHost": "proxyHost", - "proxyPort": "proxyPort", - "proxyUser": "proxyUser", - "proxyPassword": "proxyPassword", - "httpCaching": "none", - "httpCacheDirectory": "httpCacheDirectory", - "httpMaxCacheEntries": 1, - "httpMaxCacheEntrySize": 2 - } -}""" + def existingResolver = testObjectGenerator.buildFileBackedHttpMetadataResolver() + existingResolver.version = existingResolver.hashCode() + def randomResourceId = existingResolver.resourceId + def updatedResolver = testObjectGenerator.buildFileBackedHttpMetadataResolver() + updatedResolver.version = updatedResolver.hashCode() + updatedResolver.resourceId = existingResolver.resourceId + def postedJsonBody = mapper.writeValueAsString(updatedResolver) + 1 * repository.findByResourceId(randomResourceId) >> existingResolver 0 * repository.save(_) @@ -508,45 +255,11 @@ class FileBackedHttpMetadataProviderControllerTests extends Specification { def "PUT of a resolver that is not persisted returns not found"() { given: - def randomResourceId = randomGenerator.randomId() - def postedJsonBody = """{ - "name": "name", - "resourceId": "$randomResourceId", - "requireValidMetadata": true, - "failFastInitialization": true, - "sortKey": 7, - "criterionPredicateRegistryRef": "criterionPredicateRegistryRef", - "useDefaultPredicateRegistry": true, - "satisfyAnyPredicates": true, - "metadataFilters": [], - "reloadableMetadataResolverAttributes": { - "parserPoolRef": "parserPoolRef", - "taskTimerRef": "taskTimerRef", - "minRefreshDelay": "minRefreshDelay", - "maxRefreshDelay": "maxRefreshDelay", - "refreshDelayFactor": 1.0, - "indexesRef": "indexesRef", - "resolveViaPredicatesOnly": true, - "expirationWarningThreshold": "expirationWarningThreshold" - }, - "httpMetadataResolverAttributes": { - "httpClientRef": "httpClientRef", - "connectionRequestTimeout": "connectionRequestTimeout", - "requestTimeout": "requestTimeout", - "socketTimeout": "socketTimeout", - "disregardTLSCertificate": true, - "tlsTrustEngineRef": "tlsTrustEngineRef", - "httpClientSecurityParametersRef": "httpClientSecurityParametersRef", - "proxyHost": "proxyHost", - "proxyPort": "proxyPort", - "proxyUser": "proxyUser", - "proxyPassword": "proxyPassword", - "httpCaching": "none", - "httpCacheDirectory": "httpCacheDirectory", - "httpMaxCacheEntries": 1, - "httpMaxCacheEntrySize": 2 - } -}""" + def randomResolver = testObjectGenerator.buildFileBackedHttpMetadataResolver() + randomResolver.version = randomResolver.hashCode() + def randomResourceId = randomResolver.resourceId + def postedJsonBody = mapper.writeValueAsString(randomResolver) + 1 * repository.findByResourceId(randomResourceId) >> null 0 * repository.save(_) diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/FileBackedHttpMetadataResolverRepositoryTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/FileBackedHttpMetadataResolverRepositoryTests.groovy index 5074750ea..c68667042 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/FileBackedHttpMetadataResolverRepositoryTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/FileBackedHttpMetadataResolverRepositoryTests.groovy @@ -97,7 +97,7 @@ class FileBackedHttpMetadataResolverRepositoryTests extends Specification { "httpMetadataResolverAttributes": { "httpClientRef": "httpClientRef", "connectionRequestTimeout": "connectionRequestTimeout", - "requestTimeout": "requestTimeout", + "connectionTimeout": "connectionTimeout", "socketTimeout": "socketTimeout", "disregardTLSCertificate": true, "tlsTrustEngineRef": "tlsTrustEngineRef", 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 3a3605a90..da541f5ed 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 @@ -243,7 +243,7 @@ class TestObjectGenerator { resolver.criterionPredicateRegistryRef = generator.randomString(10) resolver.useDefaultPredicateRegistry = generator.randomBoolean() resolver.satisfyAnyPredicates = generator.randomBoolean() - resolver.metadataFilters = buildFilterList() + resolver.metadataFilters = [] resolver.reloadableMetadataResolverAttributes = buildReloadableMetadataResolverAttributes() resolver.httpMetadataResolverAttributes = buildHttpMetadataResolverAttributes() return resolver