From 950ed398cc583b753825dda1785f0a9bebc69b9a Mon Sep 17 00:00:00 2001 From: Avgustin Marinov Date: Fri, 26 Jul 2024 08:43:20 +0300 Subject: [PATCH] Target REST API returns OK with empty list when no tags (#1786) Signed-off-by: Marinov Avgustin > getTags(@PathVariable("targetId") String targetId) { final Set tags = targetManagement.getTagsByControllerId(targetId); - if (tags.isEmpty()) { - return ResponseEntity.noContent().build(); - } else { - return ResponseEntity.ok(MgmtTagMapper.toResponse(tags.stream().toList())); - } + return ResponseEntity.ok( + MgmtTagMapper.toResponse(tags == null ? Collections.emptyList() : tags.stream().toList())); } @Override diff --git a/hawkbit-rest/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetResourceTest.java b/hawkbit-rest/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetResourceTest.java index 2703ee3c8..ea42bfbfa 100644 --- a/hawkbit-rest/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetResourceTest.java +++ b/hawkbit-rest/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetResourceTest.java @@ -1898,22 +1898,17 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest { } @Test - void getControllerTagReturnsTagWithNoContent() throws Exception { - // create target with attributes - final String knownTargetId = "targetIdWithNoTags"; - final Target target = testdataFactory.createTarget(knownTargetId); - - // test query target over rest resource - mvc.perform(get(MgmtRestConstants.TARGET_V1_REQUEST_MAPPING + "/" + knownTargetId + "/tags")) - .andDo(MockMvcResultPrinter.print()) - .andExpect(status().isNoContent()); - } - - @Test - void getControllerTagReturnsTagWithOk() throws Exception { + void getControllerTagReturnsTagsWithOk() throws Exception { // create target with attributes final String knownTargetId = "targetIdWithTags"; final Target target = testdataFactory.createTarget(knownTargetId); + + // test query target over rest resource with no tags - expect OK with empty list + mvc.perform(get(MgmtRestConstants.TARGET_V1_REQUEST_MAPPING + "/" + knownTargetId + "/tags")) + .andDo(MockMvcResultPrinter.print()) + .andExpect(status().isOk()) + .andExpect(jsonPath("$", Matchers.hasSize(0))); + final List targetTags = testdataFactory.createTargetTags(2, "tag_getControllerTagReturnsTagWithOk"); final List tagNames = new ArrayList<>(); for (final TargetTag targetTag : targetTags) { @@ -1921,7 +1916,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest { tagNames.add(targetTag.getName()); } - // test query target over rest resource + // test query target over rest resource with 2 tags - expect OK with 2 tags the target is tagged with mvc.perform(get(MgmtRestConstants.TARGET_V1_REQUEST_MAPPING + "/" + knownTargetId + "/tags")) .andDo(MockMvcResultPrinter.print()) .andExpect(status().isOk())