package com.griddynamics.jagger.test.jaas.validator.tests;
import com.griddynamics.jagger.engine.e1.services.data.service.TestEntity;
import com.griddynamics.jagger.invoker.v2.JHttpEndpoint;
import com.griddynamics.jagger.invoker.v2.JHttpQuery;
import com.griddynamics.jagger.invoker.v2.JHttpResponse;
import com.griddynamics.jagger.test.jaas.util.TestContext;
import com.griddynamics.jagger.test.jaas.validator.BaseHttpResponseValidator;
import static junit.framework.Assert.assertNotNull;
/**
* Validates response of /sessions/{sessionId}/tests/{testName}.
* Expected:
* - actual record is the same as expected one.
*/
public class TestResponseContentValidator extends BaseHttpResponseValidator<TestEntity> {
@Override
public String getName() {
return "TestResponseContentValidator";
}
@Override
public boolean isValid(JHttpQuery<String> query, JHttpEndpoint endpoint, JHttpResponse<TestEntity> result) {
TestEntity actualEntity = result.getBody();
TestEntity expectedEntity = TestContext.getTestByName(getSessionIdFromQuery(query), getTestNameFromQuery(query));
assertNotNull("Returned test entity is null.", actualEntity);
//TODO: Wait for JFG-916 to be implemented and un-comment.
//assertEquals("Expected and actual tests are not equal.", expectedEntity, actualEntity);
return true;
}
private String getSessionIdFromQuery(JHttpQuery<String> query) {
// ${jaas.rest.root}/sessions/{sessionId}/tests/{testName} => ${jaas.rest.root} + sessions + {sessionId} + tests + {testName}
String[] parts = query.getPath().split("/");
return parts[parts.length - 3];
}
private String getTestNameFromQuery(JHttpQuery<String> query) {
// ${jaas.rest.root}/sessions/{sessionId}/tests/{testName} => ${jaas.rest.root} + sessions + {sessionId} + tests + {testName}
String[] parts = query.getPath().split("/");
return parts[parts.length - 1];
}
}