mirror of
https://github.com/ebean-orm/ebean.git
synced 2026-10-24 15:55:55 +00:00
ScalarTypeLocalDate update - some test ordering issues
This commit is contained in:
@@ -182,7 +182,7 @@
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.1</version>
|
||||
<version>3.2</version>
|
||||
<configuration>
|
||||
<source>1.6</source>
|
||||
<target>1.6</target>
|
||||
|
||||
@@ -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<LocalDate> {
|
||||
|
||||
@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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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());
|
||||
|
||||
|
||||
@@ -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<Vehicle> 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<Vehicle> 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<Country> 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<Country> 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<Country> countryList2 = Ebean.find(Country.class)
|
||||
|
||||
@@ -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<MUser> query = Ebean.find(MUser.class)
|
||||
.where().disjunction()
|
||||
.eq("roles.roleName", "role2special") // user0
|
||||
.eq("roles.roleName", "role3") // nobody
|
||||
.endJunction().query();
|
||||
Query<MUser> query = Ebean.find(MUser.class)
|
||||
.where().disjunction()
|
||||
.eq("roles.roleName", "role2specialB") // user0
|
||||
.eq("roles.roleName", "role3B") // nobody
|
||||
.endJunction().query();
|
||||
|
||||
List<MUser> list = query.findList();
|
||||
Assert.assertSame(1, list.size()); // list should contain user0
|
||||
System.out.println(list);
|
||||
List<MUser> 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();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user