### Question:
ProductModuleService { public static ProductModule update(final Context context, final String number, final ProductModule productModule) throws NetLicensingException { CheckUtils.paramNotEmpty(number, "number"); CheckUtils.paramNotNull(productModule, "productModule"); return NetLicensingService.getInstance().post(context, Constants.ProductModule.ENDPOINT_PATH + "/" + number, productModule.asRequestForm(), ProductModule.class); }  static ProductModule create(final Context context, final String productNumber,
            final ProductModule productModule); static ProductModule get(final Context context, final String number); static Page<ProductModule> list(final Context context, final String filter); static ProductModule update(final Context context, final String number, final ProductModule productModule); static void delete(final Context context, final String number, final boolean forceCascade);  }### Answer:
@Test public void testUpdate() throws Exception { final ProductModule productModule = new ProductModuleImpl(); productModule.setNumber("PM002-TEST"); productModule.setName("Demo Product Module"); productModule.addProperty(Constants.LicensingModel.Rental.RED_THRESHOLD, "5"); final ProductModule updatedModule = ProductModuleService.update(context, "PM001-TEST", productModule); assertNotNull(updatedModule); assertEquals("PM002-TEST", updatedModule.getNumber()); assertEquals(true, updatedModule.getActive()); assertEquals("Demo Product Module", updatedModule.getName()); assertEquals(Constants.LicensingModel.Rental.NAME, updatedModule.getLicensingModel()); assertEquals("P001-TEST", updatedModule.getProduct().getNumber()); assertEquals("10", updatedModule.getProperties().get(Constants.LicensingModel.Rental.YELLOW_THRESHOLD)); assertEquals("5", updatedModule.getProperties().get(Constants.LicensingModel.Rental.RED_THRESHOLD)); }