/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package org.keycloak.testsuite.util.matchers;
import org.keycloak.dom.saml.v2.SAML2Object;
import org.keycloak.dom.saml.v2.protocol.LogoutRequestType;
import org.keycloak.dom.saml.v2.protocol.StatusResponseType;
import java.net.URI;
import org.hamcrest.*;
import static org.hamcrest.Matchers.*;
/**
*
* @author hmlnarik
*/
public class SamlStatusResponseTypeMatcher extends BaseMatcher<SAML2Object> {
private final Matcher<URI> statusMatcher;
public SamlStatusResponseTypeMatcher(URI statusMatcher) {
this.statusMatcher = is(statusMatcher);
}
public SamlStatusResponseTypeMatcher(Matcher<URI> statusMatcher) {
this.statusMatcher = statusMatcher;
}
@Override
public boolean matches(Object item) {
return statusMatcher.matches(((StatusResponseType) item).getStatus().getStatusCode().getValue());
}
@Override
public void describeMismatch(Object item, Description description) {
description.appendText("was ").appendValue(((StatusResponseType) item).getStatus().getStatusCode().getValue());
}
@Override
public void describeTo(Description description) {
description.appendText("SAML status response status matches ").appendDescriptionOf(this.statusMatcher);
}
}