package alien4cloud.utils; import lombok.Getter; import lombok.Setter; import org.junit.Assert; import org.junit.Test; import com.fasterxml.jackson.core.JsonProcessingException; /** * @author Minh Khang VU */ public class ReflectionUtilTest { @Getter @Setter private static class MergedObject { private String id; private String text; private Integer number; private String notUpdated; } @Getter @Setter private static class MergeRequest { private String text; private String number; private String notUpdated; private String badField; } @Test public void mergeObjectTest() throws JsonProcessingException { MergedObject mergedObject = new MergedObject(); mergedObject.setId("an id"); mergedObject.setText("text"); mergedObject.setNumber(4); MergeRequest mergeRequest = new MergeRequest(); mergeRequest.setText("another text"); mergeRequest.setNumber("5"); ReflectionUtil.mergeObject(mergeRequest, mergedObject); Assert.assertEquals(5, mergedObject.getNumber().intValue()); Assert.assertEquals("another text", mergedObject.getText()); Assert.assertEquals("an id", mergedObject.getId()); } @Test public void mergeObjectTestWithUnknownField() throws JsonProcessingException { MergedObject mergedObject = new MergedObject(); mergedObject.setId("an id"); mergedObject.setText("text"); mergedObject.setNumber(4); MergeRequest mergeRequest = new MergeRequest(); mergeRequest.setText("another text"); mergeRequest.setNumber("5"); // this property will be ignored mergeRequest.setBadField("bad"); ReflectionUtil.mergeObject(mergeRequest, mergedObject); } }