diff --git a/util/src/test/java/com/ning/billing/util/clock/ClockMock.java b/util/src/test/java/com/ning/billing/util/clock/ClockMock.java
index 4552087..5891471 100644
--- a/util/src/test/java/com/ning/billing/util/clock/ClockMock.java
+++ b/util/src/test/java/com/ning/billing/util/clock/ClockMock.java
@@ -33,7 +33,13 @@ import com.ning.billing.catalog.api.Duration;
import com.ning.billing.catalog.api.TimeUnit;
public class ClockMock implements Clock {
+
private MutablePeriod delta = new MutablePeriod();
+
+
+ private DateTime mockDateTime = now();
+
+
private static final Logger log = LoggerFactory.getLogger(ClockMock.class);
@Override
@@ -57,12 +63,16 @@ public class ClockMock implements Clock {
}
private DateTime adjust(final DateTime now) {
- return now.plus(delta);
+ //return now.plus(delta);
+ return mockDateTime;
}
public synchronized void setTime(final DateTime time) {
final DateTime prev = getUTCNow();
delta = new MutablePeriod(now(), time);
+
+ mockDateTime = time;
+
logChange(prev);
}
@@ -71,6 +81,7 @@ public class ClockMock implements Clock {
}
public synchronized void addDays(final int days) {
+
adjustTo(Days.days(days));
}
@@ -87,6 +98,7 @@ public class ClockMock implements Clock {
}
public synchronized void reset() {
+ mockDateTime = now();
delta = new MutablePeriod();
}
@@ -97,7 +109,10 @@ public class ClockMock implements Clock {
private void adjustTo(final ReadablePeriod period) {
final DateTime prev = getUTCNow();
+
+ //deltaFromDelta
delta.add(period);
+ mockDateTime = mockDateTime.plus(period);
logChange(prev);
}
@@ -120,6 +135,9 @@ public class ClockMock implements Clock {
public synchronized void setDeltaFromReality(final Duration duration, final long epsilon) {
final DateTime prev = getUTCNow();
delta.addMillis((int) epsilon);
+
+ mockDateTime = mockDateTime.plus(epsilon);
+
addDeltaFromReality(duration);
logChange(prev);