From d2693e2f4907601c4ece1dfb15ab1eedfac91711 Mon Sep 17 00:00:00 2001 From: Melanie Retter Date: Tue, 23 Aug 2016 11:29:24 +0200 Subject: [PATCH] MaxAssignment smaller than 0 is not allowed -> BadRequest Status code Signed-off-by: Melanie Retter --- .../resource/MgmtSoftwareModuleTypeResource.java | 6 ++++++ .../MgmtSoftwareModuleTypeResourceTest.java | 13 +++++++++++++ 2 files changed, 19 insertions(+) diff --git a/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleTypeResource.java b/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleTypeResource.java index 353cf16e5..74829df31 100644 --- a/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleTypeResource.java +++ b/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleTypeResource.java @@ -113,6 +113,12 @@ public class MgmtSoftwareModuleTypeResource implements MgmtSoftwareModuleTypeRes public ResponseEntity> createSoftwareModuleTypes( @RequestBody final List softwareModuleTypes) { + for (final MgmtSoftwareModuleTypeRequestBodyPost softwareModuleType : softwareModuleTypes) { + if (softwareModuleType.getMaxAssignments() <= 0) { + return new ResponseEntity<>(HttpStatus.BAD_REQUEST); + } + } + final List createdSoftwareModules = this.softwareManagement.createSoftwareModuleType( MgmtSoftwareModuleTypeMapper.smFromRequest(entityFactory, softwareModuleTypes)); diff --git a/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleTypeResourceTest.java b/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleTypeResourceTest.java index 36d975138..af5b18ade 100644 --- a/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleTypeResourceTest.java +++ b/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleTypeResourceTest.java @@ -133,6 +133,19 @@ public class MgmtSoftwareModuleTypeResourceTest extends AbstractRestIntegrationT .andExpect(jsonPath("$content.[2].key", equalTo("test123"))).andExpect(jsonPath("$total", equalTo(4))); } + @Test + @WithUser(principal = "uploadTester", allSpPermissions = true) + @Description("Checks the correct behaviour of /rest/v1/softwaremoduletypes POST requests when max assignment is <= 0") + public void createSoftwareModuleTypesInvalidAssignmentBadRequest() throws JSONException, Exception { + + final List types = new ArrayList<>(); + types.add(entityFactory.generateSoftwareModuleType("test1", "TestName1", "Desc1", -1)); + + mvc.perform(post("/rest/v1/softwaremoduletypes/").content(JsonBuilder.softwareModuleTypes(types)) + .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON)) + .andDo(MockMvcResultPrinter.print()).andExpect(status().isBadRequest()); + } + @Test @WithUser(principal = "uploadTester", allSpPermissions = true) @Description("Checks the correct behaviour of /rest/v1/softwaremoduletypes POST requests.")