Skip to content

Commit

Permalink
SHIBUI-526: testing
Browse files Browse the repository at this point in the history
  • Loading branch information
dima767 committed Jun 19, 2018
1 parent b8f903b commit 63c41e6
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@
@ToString
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "@type", visible = true)
@JsonSubTypes({@JsonSubTypes.Type(value=EntityRoleWhiteListFilter.class, name="EntityRoleWhiteList"),
@JsonSubTypes.Type(value=EntityAttributesFilter.class, name="EntityAttributes")})
@JsonSubTypes.Type(value=EntityAttributesFilter.class, name="EntityAttributes"),
@JsonSubTypes.Type(value=RequiredValidUntilFilter.class, name="RequiredValidUntil")})
public class MetadataFilter extends AbstractAuditable {

@JsonProperty("@type")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.SerializationFeature
import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilter
import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityRoleWhiteListFilter
import edu.internet2.tier.shibboleth.admin.ui.domain.filters.MetadataFilter
import edu.internet2.tier.shibboleth.admin.ui.domain.filters.RequiredValidUntilFilter
import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects
import edu.internet2.tier.shibboleth.admin.ui.util.TestObjectGenerator
import edu.internet2.tier.shibboleth.admin.util.AttributeUtility
Expand Down Expand Up @@ -74,28 +75,54 @@ class PolymorphicFiltersJacksonHandlingTests extends Specification {
simulatedPrePersistentFilter.relyingPartyOverrides = simulatedPersistentFilter.relyingPartyOverrides
simulatedPrePersistentFilter.fromTransientRepresentation()

expect:
simulatedPersistentFilter.attributes.size() == simulatedPrePersistentFilter.attributes.size()
}

def "Correct polymorphic serialization of RequiredValidUntilFilter"() {
given:
def givenFilterJson = """
{
"@type" : "RequiredValidUntil",
"createdDate" : null,
"modifiedDate" : null,
"createdBy" : null,
"modifiedBy" : null,
"name" : null,
"resourceId" : "9667ae04-8c36-4741-be62-dd325e7d6790",
"filterEnabled" : true,
"version" : 0,
"maxValidityInterval" : "P14D"
}
"""

when:
def jsonFromPersistentFilter = mapper.writeValueAsString(simulatedPersistentFilter)
def jsonFromPrePersistentFilter = mapper.writeValueAsString(simulatedPrePersistentFilter)
println("JSON from persistent filter -> $jsonFromPersistentFilter")
println("JSON from PRE persistent filter -> $jsonFromPrePersistentFilter")
println("Attributes from persistent filter -> $simulatedPersistentFilter.attributes")
println("Attributes from PRE persistent filter -> $simulatedPrePersistentFilter.attributes")
def deSerializedFilter = mapper.readValue(givenFilterJson, MetadataFilter)
def json = mapper.writeValueAsString(deSerializedFilter)
println(json)
def roundTripFilter = mapper.readValue(json, MetadataFilter)

then:
simulatedPersistentFilter.attributes.size() == simulatedPrePersistentFilter.attributes.size()
roundTripFilter == deSerializedFilter

and:
deSerializedFilter instanceof RequiredValidUntilFilter
roundTripFilter instanceof RequiredValidUntilFilter
}

def "List of filters with correct types"() {
given:
def filters = testObjectGenerator.buildAllTypesOfFilterList();
def filters = testObjectGenerator.buildAllTypesOfFilterList()

when:
def json = mapper.writeValueAsString(filters)
println(json)

then:
json
json.contains('EntityAttributes')
json.contains('RequiredValidUntil')
json.contains('EntityAttributes')

}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import edu.internet2.tier.shibboleth.admin.ui.domain.OrganizationName
import edu.internet2.tier.shibboleth.admin.ui.domain.OrganizationURL
import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityRoleWhiteListFilter
import edu.internet2.tier.shibboleth.admin.ui.domain.filters.MetadataFilter
import edu.internet2.tier.shibboleth.admin.ui.domain.filters.RequiredValidUntilFilter
import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.FilterRepresentation
import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.FilterTargetRepresentation
import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.RelyingPartyOverridesRepresentation
Expand All @@ -19,6 +20,7 @@ import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.HttpMetadataResol
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ReloadableMetadataResolverAttributes
import edu.internet2.tier.shibboleth.admin.util.AttributeUtility
import edu.internet2.tier.shibboleth.admin.util.MDDCConstants

import org.opensaml.saml.saml2.metadata.Organization

import java.util.function.Supplier
Expand Down Expand Up @@ -64,6 +66,7 @@ class TestObjectGenerator {
(1..generator.randomInt(4, 10)).each {
filterList.add(buildFilter { entityAttributesFilter() })
filterList.add(buildFilter { entityRoleWhitelistFilter() })
filterList.add(buildFilter { requiredValidUntilFilter() })
}
return filterList
}
Expand All @@ -87,6 +90,13 @@ class TestObjectGenerator {
}
}

RequiredValidUntilFilter requiredValidUntilFilter() {
return new RequiredValidUntilFilter().with {
it.maxValidityInterval = 'P14D'
it
}
}

EntityAttributesFilter copyOf(EntityAttributesFilter entityAttributesFilter) {
new EntityAttributesFilter().with {
it.name = entityAttributesFilter.name
Expand Down

0 comments on commit 63c41e6

Please sign in to comment.