I am writing negative test case in which I am expecting internal server error but somehow I am not able to get it. The code i have tried and the output is posted below:
delete
method:
/**
* delete pricing rule by id
* @param ruleId
* @return
*/
@DeleteMapping(path = "/deleteById/{ruleId}")
public ResponseEntity<String> deletePricingRule(@PathVariable String ruleId) {
logMethodStart(RulesCrudController.class, "deletePricingRule");
try {
log.debug( "deleting pricing rule with id: " + ruleId );
String deletedId = pricingRuleServiceImpl.deletePricingRule(ruleId);
if( deletedId != null ) {
log.debug("deleted pricing rule with id: " + ruleId);
return new ResponseEntity<>("The rule id : " + deletedId + " is deleted successfully", HttpStatus.OK);
} else {
return new ResponseEntity<>("No pricing rule with rule id: "+ ruleId +" is Found",HttpStatus.INTERNAL_SERVER_ERROR);
}
}
catch(Exception e){
log.error("deletePricingRule() got an exception: " + e.toString());
return new ResponseEntity<>("No pricing rule with rule id: "+ ruleId +" is Found",HttpStatus.INTERNAL_SERVER_ERROR);
}
}
delete
test case
@Test
public void DeletePricingRule_withDeleteMethod_InternalServerError() throws Exception {
when(mockService.deletePricingRule(dynamo.getId())).thenReturn( null );
mockMVC.perform(MockMvcRequestBuilders.delete("/pricingRule/deleteById/{ruleId}", dynamo.getId()))
.andExpect(status().isInternalServerError());
}
Object that I am using:
@Mock
private PricingRule dynamo, dynamo1;
@Before
public void setUp() {
dynamo = new PricingRule();
dynamo.setId("0653cf02-6b39-40ab-a008-6efea487eb8f");
dynamo.setRuleDesc("dynamo test");
dynamo1 = new PricingRule();
dynamo1.setId("0653cf02-6b39-40ab-a008-6efea487eb8f");
dynamo1.setRuleDesc("dynamo test");
}
Output:
java.lang.AssertionError: Status
Expected :500
Actual :200