use of io.apiman.test.policies.Configuration in project apiman-plugins by apiman.
the class TimeoutPolicyTest method shouldExecute_onSimpleConfiguration.
/**
* Control the normal execution
*/
@Test
@Configuration("{\"timeoutConnect\" : \"1\", \"timeoutRead\" : \"2\" }")
@BackEndApi(EndPointPropertiesEcho.class)
public void shouldExecute_onSimpleConfiguration() throws PolicyFailureError, Throwable {
// WHEN Execute the policy
PolicyTestResponse response = null;
try {
response = send(PolicyTestRequest.build(PolicyTestRequestType.GET, "/some/resource"));
} catch (PolicyFailureError ex) {
fail("Configuration error");
}
// THEN timeouts are set
HashMap<?, ?> responseMap = new ObjectMapper().readValue(response.body(), HashMap.class);
assertEquals("timeoutConnect", "1", responseMap.get("timeouts.connect"));
assertEquals("timeoutRead", "2", responseMap.get("timeouts.read"));
}
use of io.apiman.test.policies.Configuration in project apiman-plugins by apiman.
the class TimeoutPolicyTest method shouldsettingNothing_onNoValue.
/**
* Execute with no value
*/
@Test
@Configuration("{}")
@BackEndApi(EndPointPropertiesEcho.class)
public void shouldsettingNothing_onNoValue() throws PolicyFailureError, Throwable {
// WHEN Execute the policy
PolicyTestResponse response = null;
try {
response = send(PolicyTestRequest.build(PolicyTestRequestType.GET, "/some/resource"));
} catch (PolicyFailureError ex) {
fail("Configuration error");
}
// THEN timeouts are not set
HashMap<?, ?> responseMap = new ObjectMapper().readValue(response.body(), HashMap.class);
assertFalse("timeoutConnect", responseMap.containsKey("timeouts.connect"));
assertFalse("timeoutRead", responseMap.containsKey("timeouts.read"));
}
use of io.apiman.test.policies.Configuration in project apiman-plugins by apiman.
the class SoapAuthorizationPolicyTest method testAction.
@Test
@Configuration("{\r\n" + " \"requestUnmatched\" : \"pass\"," + " \"rules\" : [\r\n" + " { \"action\" : \"reportIncident\", \"role\" : \"the-role\" }\r\n" + " ]\r\n" + "}")
public void testAction() throws Throwable {
HashSet<String> userRoles = new HashSet<>();
userRoles.add("other-role");
// Should Succeed
PolicyTestRequest request = PolicyTestRequest.build(PolicyTestRequestType.GET, "/auth/my-items");
request.header("SOAPAction", "closeIncident");
request.contextAttribute(SoapAuthorizationPolicy.AUTHENTICATED_USER_ROLES, userRoles);
PolicyTestResponse response = send(request);
EchoResponse echo = response.entity(EchoResponse.class);
Assert.assertNotNull(echo);
// Should Fail
request = PolicyTestRequest.build(PolicyTestRequestType.GET, "/auth/my-items");
try {
request.header("SOAPAction", "reportIncident");
request.contextAttribute(SoapAuthorizationPolicy.AUTHENTICATED_USER_ROLES, userRoles);
send(request);
Assert.fail("Expected a failure response!");
} catch (PolicyFailureError failure) {
PolicyFailure policyFailure = failure.getFailure();
Assert.assertNotNull(policyFailure);
Assert.assertEquals(PolicyFailureType.Authorization, policyFailure.getType());
}
}
use of io.apiman.test.policies.Configuration in project apiman-plugins by apiman.
the class SoapAuthorizationPolicyTest method testMultiple.
@Test
@Configuration("{\r\n" + " \"rules\" : [\r\n" + " { \"action\" : \"reportIncident\", \"role\" : \"user\" },\r\n" + " { \"action\" : \"resolveIncident\", \"role\" : \"admin\" }\r\n" + " ]\r\n" + "}")
public void testMultiple() throws Throwable {
HashSet<String> userRoles = new HashSet<>();
userRoles.add("user");
// Should Succeed
PolicyTestRequest request = PolicyTestRequest.build(PolicyTestRequestType.GET, "/path/to/user/resource");
request.header("SOAPAction", "reportIncident");
request.contextAttribute(SoapAuthorizationPolicy.AUTHENTICATED_USER_ROLES, userRoles);
PolicyTestResponse response = send(request);
EchoResponse echo = response.entity(EchoResponse.class);
Assert.assertNotNull(echo);
// Should Fail
request = PolicyTestRequest.build(PolicyTestRequestType.GET, "/admin/path/to/admin/resource");
try {
request.header("SOAPAction", "resolveIncident");
request.contextAttribute(SoapAuthorizationPolicy.AUTHENTICATED_USER_ROLES, userRoles);
send(request);
Assert.fail("Expected a failure response!");
} catch (PolicyFailureError failure) {
PolicyFailure policyFailure = failure.getFailure();
Assert.assertNotNull(policyFailure);
Assert.assertEquals(PolicyFailureType.Authorization, policyFailure.getType());
}
//
userRoles.add("admin");
// Should Succeed
request = PolicyTestRequest.build(PolicyTestRequestType.GET, "/path/to/user/resource");
request.header("SOAPAction", "reportIncident");
request.contextAttribute(SoapAuthorizationPolicy.AUTHENTICATED_USER_ROLES, userRoles);
response = send(request);
echo = response.entity(EchoResponse.class);
Assert.assertNotNull(echo);
// Should Succeed
request = PolicyTestRequest.build(PolicyTestRequestType.GET, "/admin/path/to/admin/resource");
request.header("SOAPAction", "reportIncident");
request.contextAttribute(SoapAuthorizationPolicy.AUTHENTICATED_USER_ROLES, userRoles);
response = send(request);
echo = response.entity(EchoResponse.class);
Assert.assertNotNull(echo);
}
use of io.apiman.test.policies.Configuration in project apiman-plugins by apiman.
the class SoapAuthorizationPolicyTest method testNoneMatchedFail.
@Test
@Configuration("{\r\n" + " \"requestUnmatched\" : \"fail\"," + " \"rules\" : [\r\n" + " { \"action\" : \"reportIncident\", \"role\" : \"user\" },\r\n" + " { \"action\" : \"reportIncident\", \"role\" : \"admin\" }\r\n" + " ]\r\n" + "}")
public void testNoneMatchedFail() throws Throwable {
HashSet<String> userRoles = new HashSet<>();
// Should Fail
PolicyTestRequest request = PolicyTestRequest.build(PolicyTestRequestType.GET, "/other/resource");
try {
request.header("SOAPAction", "reportIncident");
request.contextAttribute(SoapAuthorizationPolicy.AUTHENTICATED_USER_ROLES, userRoles);
send(request);
Assert.fail("Expected a failure response!");
} catch (PolicyFailureError failure) {
PolicyFailure policyFailure = failure.getFailure();
Assert.assertNotNull(policyFailure);
Assert.assertEquals(PolicyFailureType.Authorization, policyFailure.getType());
}
// Should Fail
request = PolicyTestRequest.build(PolicyTestRequestType.POST, "/admin/resource");
try {
request.header("SOAPAction", "reportIncident");
request.contextAttribute(SoapAuthorizationPolicy.AUTHENTICATED_USER_ROLES, userRoles);
send(request);
Assert.fail("Expected a failure response!");
} catch (PolicyFailureError failure) {
PolicyFailure policyFailure = failure.getFailure();
Assert.assertNotNull(policyFailure);
}
}
Aggregations