diff --git a/hawkbit-core/src/main/java/org/eclipse/hawkbit/repository/ActionFields.java b/hawkbit-core/src/main/java/org/eclipse/hawkbit/repository/ActionFields.java index 3c8f28596..432c8b44a 100644 --- a/hawkbit-core/src/main/java/org/eclipse/hawkbit/repository/ActionFields.java +++ b/hawkbit-core/src/main/java/org/eclipse/hawkbit/repository/ActionFields.java @@ -26,6 +26,11 @@ public enum ActionFields implements FieldNameProvider, FieldValueConverter actions = assignmentResult.getAssignedEntity(); + assertThat(actions).hasSize(3); + + // then simulate a status update with code 200 for the first action + final Action action = actions.get(0); + controllerManagement.addUpdateActionStatus(entityFactory.actionStatus().create(action.getId()).code(200) + .message("Update succeeded").status(Status.FINISHED)); + + // verify that one result is returned if the actions are filtered for + // status code 200 + final String rsqlStatusCode = "lastStatusCode==200"; + mvc.perform(get(MgmtRestConstants.ACTION_V1_REQUEST_MAPPING + "?q=" + rsqlStatusCode)) + .andDo(MockMvcResultPrinter.print()).andExpect(status().isOk()).andExpect(jsonPath("total", equalTo(1))) + .andExpect(jsonPath("size", equalTo(1))).andExpect(jsonPath("content[0].status", equalTo("finished"))); + + // verify no result is returned if we filter for a non-existing status + // code + final String rsqlWrongStatusCode = "lastStatusCode==999"; + mvc.perform(get(MgmtRestConstants.ACTION_V1_REQUEST_MAPPING + "?q=" + rsqlWrongStatusCode)) + .andDo(MockMvcResultPrinter.print()).andExpect(status().isOk()).andExpect(jsonPath("total", equalTo(0))) + .andExpect(jsonPath("size", equalTo(0))); + } + @Test @Description("Verifies that actions can be filtered based on distribution set fields.") void filterActionsByDistributionSet() throws Exception {