Asserting Actual and Expected values in an object using softAssert
public static void assertPet(PetsRequestDTO requestDTO, PetsResponseDTO responseDTO) { SoftAssert softAssert = new SoftAssert(); softAssert.assertEquals(requestDTO.getId(), responseDTO.getId()); softAssert.assertEquals(requestDTO.getCategory(), responseDTO.getCategory()); softAssert.assertEquals(requestDTO.getName(), responseDTO.getName()); softAssert.assertEquals(requestDTO.getPhotoUrls(), responseDTO.getPhotoUrls()); softAssert.assertEquals(requestDTO.getTags(), responseDTO.getTags()); softAssert.assertEquals(requestDTO.getStatus(), responseDTO.getStatus()); softAssert.assertAll(); }
Assert using stream and reduce code duplicate
used gson library for deserialization.
Convert the response object to Map and do the assertion
public static Map<Object, Object> convertDtoToMap(Object object) { String json = convertDtoToJson(object); return gson.fromJson(json, Map.class); }
public static void assertCommonObject(Map<Object, Object> actual, Map<Object, Object> expected) { SoftAssert softAssert = new SoftAssert(); actual.entrySet().stream().forEach( (e1) -> { Object key = e1.getKey(); if (expected.containsKey(key)) { softAssert.assertEquals(actual.get(key), expected.get(key), "Actual:" + actual.get(key) + " Expected:" + expected.get(key)); } } ); softAssert.assertAll(); }