#1428 - ENH: Use java.time.Clock for @WhenModified and @WhenCreated and allow it to be Replaceable for testing

Adjust such that Clock is on DefaultServer and can be set via ExtendedServer interface
This commit is contained in:
rob bygrave
2018-06-15 20:49:14 +12:00
parent f86f1b2647
commit 4308a98a0a
5 changed files with 50 additions and 8 deletions
@@ -1,6 +1,5 @@
package io.ebean;
import io.ebeaninternal.api.SpiEbeanServer;
import org.junit.After;
import org.junit.Test;
import org.tests.model.basic.Customer;
@@ -17,8 +16,8 @@ public class ExtendedServerTest extends BaseTestCase {
@After
public void cleanup() {
((SpiEbeanServer) Ebean.getDefaultServer())
.getServerConfig()
Ebean.getDefaultServer()
.extended()
.setClock(Clock.systemUTC());
}
@@ -52,11 +51,13 @@ public class ExtendedServerTest extends BaseTestCase {
@Test
public void mockClock() {
SpiEbeanServer server = (SpiEbeanServer) Ebean.getDefaultServer();
EbeanServer server = Ebean.getDefaultServer();
final Instant snapshot = Instant.now();
Instant backedSnapshot = snapshot.minus(1, ChronoUnit.DAYS);
Clock snapshotClock = Clock.fixed(backedSnapshot, Clock.systemUTC().getZone());
server.getServerConfig().setClock(snapshotClock);
server.extended().setClock(snapshotClock);
ResetBasicData.reset();
@@ -55,6 +55,7 @@ import io.ebeaninternal.server.transaction.RemoteTransactionEvent;
import javax.persistence.OptimisticLockException;
import javax.persistence.PersistenceException;
import java.lang.reflect.Type;
import java.time.Clock;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
@@ -85,6 +86,16 @@ public class TDSpiEbeanServer implements SpiEbeanServer {
return this;
}
@Override
public long clockNow() {
return System.currentTimeMillis();
}
@Override
public void setClock(Clock clock) {
}
@Override
public SpiLogManager log() {
return null;