package pt.isel.mpd14.probe.test; import java.lang.reflect.InvocationTargetException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.HashMap; import java.util.Map; import junit.framework.Assert; import junit.framework.TestCase; import pt.isel.mpd14.probe.Binder; import pt.isel.mpd14.probe.test.model.Student; import pt.isel.mpd14.probe.test.model.StudentDto; /** * Unit test for Binder class. */ public class BinderTest extends TestCase{ final static SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); public void test_bind_student_to_studentDto() throws Exception { /* Arrange */ Student s1 = new Student(31531, sdf.parse("05-6-1994"), "Jose Cocacola", null); Map<String, Object> s1fields = Binder.getFieldsValues(s1); /* Act */ StudentDto s2 = Binder.bindToFields(StudentDto.class, s1fields); System.out.println(s2); /* if(s2.id != s1.id){ throw new IllegalStateException(); } */ Assert.assertEquals(s1.getId(), s2.id); Assert.assertEquals(s1.getName(), s2.name); Assert.assertEquals(null, s2.birthDate); } public void test_bind_to_student_properties() throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, ParseException{ /* Arrange */ Map<String, Object> v = new HashMap<>(); v.put("name", "Maria josefina"); v.put("id", 657657); v.put("birthdate", sdf.parse("4-5-1997")); /* Act */ Student s = Binder.bindToProps(Student.class, v); /* Assert */ Assert.assertEquals(v.get("name"), s.getName()); Assert.assertEquals(v.get("id"), new Integer(s.getId())); Assert.assertEquals(v.get("birthdate"), s.getBirthDate()); } }