diff --git a/pom.xml b/pom.xml index cc87439f7..862022012 100644 --- a/pom.xml +++ b/pom.xml @@ -182,7 +182,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.1 + 3.2 1.6 1.6 diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeLocalDate.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeLocalDate.java index 58685ff8c..d69073fee 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeLocalDate.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeLocalDate.java @@ -6,6 +6,8 @@ import java.sql.Date; import java.sql.Timestamp; import java.sql.Types; import java.time.LocalDate; +import java.time.ZoneId; +import java.time.ZonedDateTime; /** * ScalarType for java.time.LocalDate. This maps to a JDBC Date. @@ -18,7 +20,9 @@ public class ScalarTypeLocalDate extends ScalarTypeBaseDate { @Override public long convertToMillis(Object value) { - return convertToDate((LocalDate) value).toInstant().toEpochMilli(); + LocalDate localDate = (LocalDate) value; + ZonedDateTime zonedDateTime = localDate.atStartOfDay(ZoneId.systemDefault()); + return zonedDateTime.toInstant().toEpochMilli(); } @Override diff --git a/src/test/java/com/avaje/ebeaninternal/server/type/ScalarTypeLocalDateTest.java b/src/test/java/com/avaje/ebeaninternal/server/type/ScalarTypeLocalDateTest.java index 73b48161e..f1e0a0082 100644 --- a/src/test/java/com/avaje/ebeaninternal/server/type/ScalarTypeLocalDateTest.java +++ b/src/test/java/com/avaje/ebeaninternal/server/type/ScalarTypeLocalDateTest.java @@ -2,6 +2,7 @@ package com.avaje.ebeaninternal.server.type; import org.junit.Test; +import java.sql.Date; import java.time.LocalDate; import static org.junit.Assert.*; @@ -19,32 +20,39 @@ public class ScalarTypeLocalDateTest { System.out.println(date); LocalDate parseDate = type.parseDateTime(millis); - assertEquals(date, parseDate); } @Test public void testConvertFromDate() throws Exception { + LocalDate localDate = LocalDate.now(); + Date date = Date.valueOf(localDate); + + LocalDate localDate1 = type.convertFromDate(date); + assertEquals(localDate, localDate1); + + Date date1 = type.convertToDate(localDate); + assertEquals(date, date1); } - @Test - public void testConvertToDate() throws Exception { - - } @Test public void testToJdbcType() throws Exception { + LocalDate localDate = LocalDate.now(); + Object o = type.toJdbcType(localDate); + assertTrue(o instanceof Date); } @Test public void testToBeanType() throws Exception { + LocalDate localDate = LocalDate.now(); + Date date = Date.valueOf(localDate); + + LocalDate localDate1 = type.toBeanType(date); + assertEquals(localDate, localDate1); } - @Test - public void testParseDateTime() throws Exception { - - } } \ No newline at end of file diff --git a/src/test/java/com/avaje/tests/basic/TestBeanReferenceRefresh.java b/src/test/java/com/avaje/tests/basic/TestBeanReferenceRefresh.java index 98daf7776..1f85d168a 100644 --- a/src/test/java/com/avaje/tests/basic/TestBeanReferenceRefresh.java +++ b/src/test/java/com/avaje/tests/basic/TestBeanReferenceRefresh.java @@ -2,6 +2,7 @@ package com.avaje.tests.basic; import java.sql.Date; +import com.avaje.ebean.cache.ServerCache; import org.junit.Assert; import org.junit.Test; @@ -18,8 +19,11 @@ public class TestBeanReferenceRefresh extends BaseTestCase { public void testMe() { ResetBasicData.reset(); - - Order order = Ebean.getReference(Order.class, 1); + + ServerCache beanCache = Ebean.getServerCacheManager().getBeanCache(Order.class); + beanCache.clear(); + + Order order = Ebean.getReference(Order.class, 1); Assert.assertTrue(Ebean.getBeanState(order).isReference()); diff --git a/src/test/java/com/avaje/tests/basic/TestInheritRef.java b/src/test/java/com/avaje/tests/basic/TestInheritRef.java index 2604d61c8..368d7c2c8 100644 --- a/src/test/java/com/avaje/tests/basic/TestInheritRef.java +++ b/src/test/java/com/avaje/tests/basic/TestInheritRef.java @@ -15,32 +15,45 @@ public class TestInheritRef extends BaseTestCase { @Test public void testAssocOne() { - - Ebean.createUpdate(Vehicle.class, "delete from vehicle"); - Car c = new Car(); - c.setLicenseNumber("C6788"); - c.setDriver("CarDriver"); - Ebean.save(c); - - Truck t = new Truck(); - t.setLicenseNumber("T1098"); - t.setCapacity(20D); - Ebean.save(t); - - List list = Ebean.find(Vehicle.class) - .setAutofetch(false) - .findList(); - - Assert.assertTrue(list.size() > 0); - for (Vehicle vehicle : list) { - if (vehicle instanceof Truck){ - Truck truck = (Truck)vehicle; - Assert.assertTrue(truck.getLicenseNumber().equals("T1098")); - Assert.assertTrue(truck.getCapacity() == 20D); - - } - } - - } + Ebean.beginTransaction(); + try { + Ebean.createUpdate(Vehicle.class, "delete from vehicle"); + + Car c = new Car(); + c.setLicenseNumber("C6788"); + c.setDriver("CarDriver"); + Ebean.save(c); + + Truck t = new Truck(); + t.setLicenseNumber("T1098BBX"); + t.setCapacity(20D); + Ebean.save(t); + + List list = Ebean.find(Vehicle.class) + .setAutofetch(false) + .findList(); + + Assert.assertTrue(list.size() > 0); + + Truck foundTruck = null; + int found = 0; + + for (Vehicle vehicle : list) { + if (vehicle instanceof Truck) { + Truck truck = (Truck) vehicle; + if ("T1098BBX".equals(truck.getLicenseNumber())) { + found++; + foundTruck = truck; + } + } + } + + Assert.assertEquals(1, found); + Assert.assertTrue(foundTruck.getCapacity() == 20D); + + } finally { + Ebean.rollbackTransaction(); + } + } } diff --git a/src/test/java/com/avaje/tests/cache/TestQueryCacheCountry.java b/src/test/java/com/avaje/tests/cache/TestQueryCacheCountry.java index d56c38cdf..c1350529c 100644 --- a/src/test/java/com/avaje/tests/cache/TestQueryCacheCountry.java +++ b/src/test/java/com/avaje/tests/cache/TestQueryCacheCountry.java @@ -19,17 +19,20 @@ public class TestQueryCacheCountry extends BaseTestCase { ResetBasicData.reset(); - ServerCache cache = Ebean.getServerCacheManager().getQueryCache(Country.class); - cache.clear(); + ServerCache queryCache = Ebean.getServerCacheManager().getQueryCache(Country.class); + queryCache.clear(); - Assert.assertEquals(0, cache.getStatistics(false).getSize()); + ServerCache beanCache = Ebean.getServerCacheManager().getBeanCache(Country.class); + beanCache.clear(); + + Assert.assertEquals(0, queryCache.getStatistics(false).getSize()); List countryList0 = Ebean.find(Country.class) .setUseQueryCache(true) .order().asc("name") .findList(); - Assert.assertEquals(1, cache.getStatistics(false).getSize()); + Assert.assertEquals(1, queryCache.getStatistics(false).getSize()); Assert.assertTrue(countryList0.size() > 0); List countryList1 = Ebean.find(Country.class) @@ -37,7 +40,7 @@ public class TestQueryCacheCountry extends BaseTestCase { .order().asc("name") .findList(); - ServerCacheStatistics statistics = cache.getStatistics(false); + ServerCacheStatistics statistics = queryCache.getStatistics(false); Assert.assertEquals(1, statistics.getSize()); Assert.assertEquals(1, statistics.getHitCount()); Assert.assertSame(countryList1, countryList0); @@ -46,7 +49,7 @@ public class TestQueryCacheCountry extends BaseTestCase { nz.setName("New Zealandia"); Ebean.save(nz); - statistics = cache.getStatistics(false); + statistics = queryCache.getStatistics(false); Assert.assertEquals(0, statistics.getSize()); List countryList2 = Ebean.find(Country.class) diff --git a/src/test/java/com/avaje/tests/query/joins/TestDisjunctWhereOuterJoin.java b/src/test/java/com/avaje/tests/query/joins/TestDisjunctWhereOuterJoin.java index d46361f2d..797c71051 100644 --- a/src/test/java/com/avaje/tests/query/joins/TestDisjunctWhereOuterJoin.java +++ b/src/test/java/com/avaje/tests/query/joins/TestDisjunctWhereOuterJoin.java @@ -17,49 +17,52 @@ public class TestDisjunctWhereOuterJoin extends BaseTestCase { public void test() { Ebean.beginTransaction(); + try { - MRole r1 = new MRole(); - r1.setRoleName("role1"); - Ebean.save(r1); + MRole r1 = new MRole(); + r1.setRoleName("role1B"); + Ebean.save(r1); - MRole r2 = new MRole(); - r2.setRoleName("role2special"); - Ebean.save(r2); + MRole r2 = new MRole(); + r2.setRoleName("role2specialB"); + Ebean.save(r2); - MRole r3 = new MRole(); - r3.setRoleName("role3"); - Ebean.save(r3); + MRole r3 = new MRole(); + r3.setRoleName("role3B"); + Ebean.save(r3); - MUser u0 = new MUser(); - u0.setUserName("user0"); - u0.addRole(r1); - u0.addRole(r2); + MUser u0 = new MUser(); + u0.setUserName("user0B"); + u0.addRole(r1); + u0.addRole(r2); - Ebean.save(u0); + Ebean.save(u0); - MUser u1 = new MUser(); - u1.setUserName("user1"); - u1.addRole(r1); + MUser u1 = new MUser(); + u1.setUserName("user1B"); + u1.addRole(r1); - Ebean.save(u1); + Ebean.save(u1); - Ebean.commitTransaction(); - - Query query = Ebean.find(MUser.class) - .where().disjunction() - .eq("roles.roleName", "role2special") // user0 - .eq("roles.roleName", "role3") // nobody - .endJunction().query(); + Query query = Ebean.find(MUser.class) + .where().disjunction() + .eq("roles.roleName", "role2specialB") // user0 + .eq("roles.roleName", "role3B") // nobody + .endJunction().query(); - List list = query.findList(); - Assert.assertSame(1, list.size()); // list should contain user0 - System.out.println(list); + List list = query.findList(); + Assert.assertSame(1, list.size()); // list should contain user0 + System.out.println(list); - String sql = query.getGeneratedSql(); - Assert.assertTrue(sql.indexOf("select distinct") > -1); - Assert.assertTrue(sql.indexOf("outer join mrole ") > -1); - Assert.assertTrue(sql.indexOf(".role_name = ?") > -1); + String sql = query.getGeneratedSql(); + Assert.assertTrue(sql.indexOf("select distinct") > -1); + Assert.assertTrue(sql.indexOf("outer join mrole ") > -1); + Assert.assertTrue(sql.indexOf(".role_name = ?") > -1); + + } finally { + Ebean.rollbackTransaction(); + } } }