Added feature to query by last target poll.
Signed-off-by: Kai Zimmermann <kai.zimmermann@bosch-si.com>
This commit is contained in:
@@ -64,7 +64,12 @@ public enum TargetFields implements FieldNameProvider {
|
||||
/**
|
||||
* The tags field.
|
||||
*/
|
||||
TAG("tags.name");
|
||||
TAG("tags.name"),
|
||||
|
||||
/**
|
||||
* Last time the target or DMF client polled.
|
||||
*/
|
||||
LASTCONTROLLERREQUESTAT("targetInfo.lastTargetQuery");
|
||||
|
||||
private final String fieldName;
|
||||
private List<String> subEntityAttribues;
|
||||
|
||||
@@ -14,6 +14,7 @@ import static org.hamcrest.CoreMatchers.not;
|
||||
import static org.hamcrest.Matchers.hasItem;
|
||||
import static org.hamcrest.Matchers.hasKey;
|
||||
import static org.hamcrest.Matchers.hasSize;
|
||||
import static org.hamcrest.Matchers.notNullValue;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
|
||||
@@ -90,6 +91,7 @@ public class MgmtTargetResourceTest extends AbstractRestIntegrationTest {
|
||||
private static final String JSON_PATH_FIELD_CONTENT = ".content";
|
||||
private static final String JSON_PATH_FIELD_SIZE = ".size";
|
||||
private static final String JSON_PATH_FIELD_TOTAL = ".total";
|
||||
private static final String JSON_PATH_FIELD_LAST_REQUEST_AT = ".lastControllerRequestAt";
|
||||
|
||||
// target
|
||||
// $.field
|
||||
@@ -101,6 +103,7 @@ public class MgmtTargetResourceTest extends AbstractRestIntegrationTest {
|
||||
private static final String JSON_PATH_ID = JSON_PATH_ROOT + JSON_PATH_FIELD_ID;
|
||||
private static final String JSON_PATH_CONTROLLERID = JSON_PATH_ROOT + JSON_PATH_FIELD_CONTROLLERID;
|
||||
private static final String JSON_PATH_DESCRIPTION = JSON_PATH_ROOT + JSON_PATH_FIELD_DESCRIPTION;
|
||||
private static final String JSON_PATH_LAST_REQUEST_AT = JSON_PATH_ROOT + JSON_PATH_FIELD_LAST_REQUEST_AT;
|
||||
|
||||
@Test
|
||||
@Description("Ensures that actions list is in exptected order.")
|
||||
@@ -425,6 +428,7 @@ public class MgmtTargetResourceTest extends AbstractRestIntegrationTest {
|
||||
.andExpect(jsonPath("$content.[?(@.name==" + idA + ")][0].controllerId", equalTo(idA)))
|
||||
.andExpect(jsonPath("$content.[?(@.name==" + idA + ")][0].createdBy", equalTo("bumlux")))
|
||||
.andExpect(jsonPath("$content.[?(@.name==" + idA + ")][0].updateStatus", equalTo("unknown")))
|
||||
.andExpect(jsonPath("$content.[?(@.name==" + idA + ")][0].lastControllerRequestAt", notNullValue()))
|
||||
// idB
|
||||
.andExpect(jsonPath("$content.[?(@.name==" + idB + ")][0]._links.self.href",
|
||||
equalTo(linksHrefPrefix + idB)))
|
||||
@@ -433,6 +437,7 @@ public class MgmtTargetResourceTest extends AbstractRestIntegrationTest {
|
||||
.andExpect(jsonPath("$content.[?(@.name==" + idB + ")][0].controllerId", equalTo(idB)))
|
||||
.andExpect(jsonPath("$content.[?(@.name==" + idB + ")][0].createdBy", equalTo("bumlux")))
|
||||
.andExpect(jsonPath("$content.[?(@.name==" + idB + ")][0].updateStatus", equalTo("unknown")))
|
||||
.andExpect(jsonPath("$content.[?(@.name==" + idA + ")][0].lastControllerRequestAt", notNullValue()))
|
||||
// idC
|
||||
.andExpect(jsonPath("$content.[?(@.name==" + idC + ")][0]._links.self.href",
|
||||
equalTo(linksHrefPrefix + idC)))
|
||||
@@ -440,7 +445,8 @@ public class MgmtTargetResourceTest extends AbstractRestIntegrationTest {
|
||||
.andExpect(jsonPath("$content.[?(@.name==" + idC + ")][0].description", equalTo(idC)))
|
||||
.andExpect(jsonPath("$content.[?(@.name==" + idC + ")][0].controllerId", equalTo(idC)))
|
||||
.andExpect(jsonPath("$content.[?(@.name==" + idC + ")][0].createdBy", equalTo("bumlux")))
|
||||
.andExpect(jsonPath("$content.[?(@.name==" + idC + ")][0].updateStatus", equalTo("unknown")));
|
||||
.andExpect(jsonPath("$content.[?(@.name==" + idC + ")][0].updateStatus", equalTo("unknown")))
|
||||
.andExpect(jsonPath("$content.[?(@.name==" + idA + ")][0].lastControllerRequestAt", notNullValue()));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -518,7 +524,7 @@ public class MgmtTargetResourceTest extends AbstractRestIntegrationTest {
|
||||
// create first a target which can be retrieved by rest interface
|
||||
final String knownControllerId = "1";
|
||||
final String knownName = "someName";
|
||||
createSingleTarget(knownControllerId, knownName);
|
||||
final Target target = createSingleTarget(knownControllerId, knownName);
|
||||
final String hrefPrefix = "http://localhost/rest/v1/targets/" + knownControllerId + "/";
|
||||
// test
|
||||
mvc.perform(get(MgmtRestConstants.TARGET_V1_REQUEST_MAPPING + "/" + knownControllerId))
|
||||
@@ -526,6 +532,7 @@ public class MgmtTargetResourceTest extends AbstractRestIntegrationTest {
|
||||
.andExpect(jsonPath(JSON_PATH_NAME, equalTo(knownName)))
|
||||
.andExpect(jsonPath(JSON_PATH_CONTROLLERID, equalTo(knownControllerId)))
|
||||
.andExpect(jsonPath(JSON_PATH_DESCRIPTION, equalTo(TARGET_DESCRIPTION_TEST)))
|
||||
.andExpect(jsonPath(JSON_PATH_LAST_REQUEST_AT, equalTo(target.getTargetInfo().getLastTargetQuery())))
|
||||
.andExpect(jsonPath("$.pollStatus", hasKey("lastRequestAt")))
|
||||
.andExpect(jsonPath("$.pollStatus", hasKey("nextExpectedRequestAt")))
|
||||
.andExpect(jsonPath("$.pollStatus.overdue", equalTo(false)))
|
||||
@@ -1299,17 +1306,17 @@ public class MgmtTargetResourceTest extends AbstractRestIntegrationTest {
|
||||
+ "\"}]";
|
||||
}
|
||||
|
||||
private void createSingleTarget(final String controllerId, final String name) {
|
||||
private Target createSingleTarget(final String controllerId, final String name) {
|
||||
final Target target = entityFactory.generateTarget(controllerId);
|
||||
target.setName(name);
|
||||
target.setDescription(TARGET_DESCRIPTION_TEST);
|
||||
targetManagement.createTarget(target);
|
||||
controllerManagament.updateLastTargetQuery(controllerId, null);
|
||||
return controllerManagament.updateLastTargetQuery(controllerId, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* creating targets with the given amount by setting name, id etc from the
|
||||
* alphabet [a-z] using the ASCII.
|
||||
* alphabet [a-z] using ASCII.
|
||||
*
|
||||
* @param amount
|
||||
*/
|
||||
@@ -1320,14 +1327,14 @@ public class MgmtTargetResourceTest extends AbstractRestIntegrationTest {
|
||||
final Target target = entityFactory.generateTarget(str);
|
||||
target.setName(str);
|
||||
target.setDescription(str);
|
||||
final Target savedTarget = targetManagement.createTarget(target);
|
||||
assertThat(savedTarget.getLastModifiedBy()).isNotNull();
|
||||
targetManagement.createTarget(target);
|
||||
controllerManagament.updateLastTargetQuery(str, null);
|
||||
character++;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* helper method to give feedback mark an target IN_SNCY
|
||||
* helper method to give feedback mark an target IN_SYNC
|
||||
*
|
||||
*/
|
||||
private void feedbackToByInSync(final Long actionId) {
|
||||
|
||||
@@ -37,6 +37,8 @@ import ru.yandex.qatools.allure.annotations.Stories;
|
||||
@Features("Component Tests - Repository")
|
||||
@Stories("RSQL filter target")
|
||||
public class RSQLTargetFieldTest extends AbstractJpaIntegrationTest {
|
||||
private static final long LAST_TARGET_QUERY = 10000;
|
||||
private static final long LAST_TARGET_QUERY_SMALLER = 1000;
|
||||
|
||||
@Before
|
||||
public void seuptBeforeTest() {
|
||||
@@ -48,14 +50,16 @@ public class RSQLTargetFieldTest extends AbstractJpaIntegrationTest {
|
||||
final TargetInfo targetInfo = target.getTargetInfo();
|
||||
targetInfo.getControllerAttributes().put("revision", "1.1");
|
||||
((JpaTargetInfo) target.getTargetInfo()).setUpdateStatus(TargetUpdateStatus.PENDING);
|
||||
|
||||
((JpaTargetInfo) target.getTargetInfo()).setLastTargetQuery(LAST_TARGET_QUERY);
|
||||
targetManagement.createTarget(target);
|
||||
|
||||
final JpaTarget target2 = new JpaTarget("targetId1234");
|
||||
target2.setDescription("targetId1234");
|
||||
final TargetInfo targetInfo2 = new JpaTargetInfo(target2);
|
||||
final TargetInfo targetInfo2 = target2.getTargetInfo();
|
||||
targetInfo2.getControllerAttributes().put("revision", "1.2");
|
||||
target2.setTargetInfo(targetInfo2);
|
||||
((JpaTargetInfo) target2.getTargetInfo()).setLastTargetQuery(LAST_TARGET_QUERY_SMALLER);
|
||||
targetManagement.createTarget(target2);
|
||||
|
||||
targetManagement.createTarget(new JpaTarget("targetId1235"));
|
||||
targetManagement.createTarget(new JpaTarget("targetId1236"));
|
||||
|
||||
@@ -166,6 +170,17 @@ public class RSQLTargetFieldTest extends AbstractJpaIntegrationTest {
|
||||
assertRSQLQuery(TargetFields.TAG.name() + "=out=(Tag1,notexist)", 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Description("Test filter target by lastTargetQuery")
|
||||
public void testFilterByLastTargetQuery() {
|
||||
assertRSQLQuery(TargetFields.LASTCONTROLLERREQUESTAT.name() + "==" + LAST_TARGET_QUERY, 1);
|
||||
assertRSQLQuery(TargetFields.LASTCONTROLLERREQUESTAT.name() + "!=" + LAST_TARGET_QUERY, 1);
|
||||
assertRSQLQuery(TargetFields.LASTCONTROLLERREQUESTAT.name() + "=lt=" + LAST_TARGET_QUERY, 1);
|
||||
assertRSQLQuery(TargetFields.LASTCONTROLLERREQUESTAT.name() + "=lt=" + LAST_TARGET_QUERY_SMALLER, 0);
|
||||
assertRSQLQuery(TargetFields.LASTCONTROLLERREQUESTAT.name() + "=gt=" + LAST_TARGET_QUERY_SMALLER, 1);
|
||||
assertRSQLQuery(TargetFields.LASTCONTROLLERREQUESTAT.name() + "=gt=" + LAST_TARGET_QUERY, 0);
|
||||
}
|
||||
|
||||
private void assertRSQLQuery(final String rsqlParam, final long expcetedTargets) {
|
||||
final Page<Target> findTargetPage = targetManagement.findTargetsAll(rsqlParam, new PageRequest(0, 100));
|
||||
final long countTargetsAll = findTargetPage.getTotalElements();
|
||||
|
||||
Reference in New Issue
Block a user