use of com.hotels.styx.api.LiveHttpRequest in project styx by ExpediaGroup.
the class AntlrConditionTest method matchesAndExpressions.
@Test
public void matchesAndExpressions() {
Condition condition = condition("header('Host') == 'bbc.co.uk' AND header('Content-Length') == '7'");
LiveHttpRequest request = newRequest().header(HOST, "bbc.co.uk").header(CONTENT_LENGTH, "7").build();
assertThat(condition.evaluate(request, context), is(true));
LiveHttpRequest request2 = newRequest().header(HOST, "bbc.co.uk").header(CONTENT_LENGTH, "1").build();
assertThat(condition.evaluate(request2, context), is(false));
LiveHttpRequest request3 = newRequest().header(HOST, "hotels.com").header(CONTENT_LENGTH, "7").build();
assertThat(condition.evaluate(request3, context), is(false));
LiveHttpRequest request4 = newRequest().header(CONTENT_LENGTH, "7").build();
assertThat(condition.evaluate(request4, context), is(false));
LiveHttpRequest request5 = newRequest().header(HOST, "bbc.co.uk").build();
assertThat(condition.evaluate(request5, context), is(false));
}
use of com.hotels.styx.api.LiveHttpRequest in project styx by ExpediaGroup.
the class AntlrConditionTest method matchesOrExpressions.
@Test
public void matchesOrExpressions() {
Condition condition = condition("header('Host') == 'bbc.co.uk' OR header('Content-Length') == '7'");
LiveHttpRequest request = newRequest().header(HOST, "bbc.co.uk").build();
assertThat(condition.evaluate(request, context), is(true));
LiveHttpRequest request2 = newRequest().header(HOST, "hotels.com").header(CONTENT_LENGTH, "7").build();
assertThat(condition.evaluate(request2, context), is(true));
LiveHttpRequest request3 = newRequest().header(HOST, "hotels.com").header(CONTENT_LENGTH, "8").build();
assertThat(condition.evaluate(request3, context), is(false));
}
use of com.hotels.styx.api.LiveHttpRequest in project styx by ExpediaGroup.
the class AntlrConditionTest method methodMatchesString.
@Test
public void methodMatchesString() {
Condition condition = condition("method() == 'GET'");
LiveHttpRequest request = get("/blah").build();
assertThat(condition.evaluate(request, context), is(true));
request = post("/blah").build();
assertThat(condition.evaluate(request, context), is(false));
}
use of com.hotels.styx.api.LiveHttpRequest in project styx by ExpediaGroup.
the class AntlrConditionTest method acceptsSingleQuotesAsFunctionArgument.
@Test
public void acceptsSingleQuotesAsFunctionArgument() throws Exception {
Condition condition = condition("header('Host') =~ '.*\\.co\\.uk'");
LiveHttpRequest request = newRequest().header(HOST, "bbc.co.uk").build();
assertThat(condition.evaluate(request, context), is(true));
}
use of com.hotels.styx.api.LiveHttpRequest in project styx by ExpediaGroup.
the class AntlrConditionTest method parenthesisChangesOperatorPrecedence.
@Test
public void parenthesisChangesOperatorPrecedence() {
Condition condition = condition("header('Host') " + "AND (header('App-Name') =~ 'app[0-9]' OR header('App-Name') =~ 'shop[0-9]')");
LiveHttpRequest request1 = newRequest().header(HOST, "bbc.co.uk").header("App-Name", "app1").build();
assertThat(condition.evaluate(request1, context), is(true));
LiveHttpRequest request2 = newRequest().header(HOST, "bbc.co.uk").header("App-Name", "shop2").build();
assertThat(condition.evaluate(request2, context), is(true));
LiveHttpRequest request3 = newRequest().header(HOST, "bbc.co.uk").header("App-Name", "landing3").build();
assertThat(condition.evaluate(request3, context), is(false));
}
Aggregations