@Test public void test() { deleteAndPopulateTable("people"); Person p = Person.create("name", "Sam", "dob", "2001-01-07"); a(p).shouldNotBe("valid"); p.set("last_name", "Johnson"); a(p).shouldBe("valid"); }
@Test public void shouldGenerateSimpleJson() { deleteAndPopulateTable("people"); Person p = Person.findFirst("name = ? and last_name = ? ", "John", "Smith"); // test no indent String json = p.toJson(false, "name", "last_name", "dob"); Map map = JsonHelper.toMap(json); a(map.get("name")).shouldBeEqual("John"); a(map.get("last_name")).shouldBeEqual("Smith"); a(map.get("dob")).shouldBeEqual("1934-12-01"); }
@Test public void shouldKeepParametersCase() { Person p = Person.create("name", "Joe", "last_name", "Schmoe"); Map map = JsonHelper.toMap(p.toJson(true)); a(map.get("name")).shouldBeEqual("Joe"); a(map.get("last_name")).shouldBeEqual("Schmoe"); map = JsonHelper.toMap(p.toJson(true, "Name", "Last_Name")); a(map.get("Name")).shouldBeEqual("Joe"); a(map.get("Last_Name")).shouldBeEqual("Schmoe"); }
@Test public void shouldReturnSecondsInDateTime() throws ParseException { Person p = new Person(); p.set("name", "john", "last_name", "doe").saveIt(); p.refresh(); String json = p.toJson(true); System.out.println(json); @SuppressWarnings("unchecked") Map<String, String> map = JsonHelper.toMap(json); Date d = new ISO8601DateFormat().parse(map.get("created_at")); // difference between date in Json and in original model instance should be less than 1000 // milliseconds a(Math.abs(d.getTime() - p.getTimestamp("created_at").getTime()) < 1000L).shouldBeTrue(); }
@Test public void testPresenceValidator() { deleteAndPopulateTable("people"); Person p = new Person(); p.validate(); a(p.errors().size()).shouldBeEqual(2); a(p.errors().get("name")).shouldBeEqual("value is missing"); a(p.errors().get("last_name")).shouldBeEqual("value is missing"); p.set("name", "igor"); p.validate(); a(p.errors().size()).shouldBeEqual(1); p.set("last_name", "polevoy"); p.validate(); a(p.errors().size()).shouldBeEqual(0); }