From 901a5893c29d200d133abc407ad91c94bb039ee3 Mon Sep 17 00:00:00 2001 From: Yacob Yonas Date: Fri, 13 Jun 2014 12:35:34 -0700 Subject: [PATCH] Update test to fix test of ChangeMessage migration to notedb Added two helper methods to ChangeMessagesIT to change the granularity of time to fix a problem with the ties in timestamps for change messages. Additionally added necessary dependency in BUCK file. Change-Id: I5a22529bbb62450c98b2c7172a59abbe3ab7e32c --- .../google/gerrit/acceptance/rest/change/BUCK | 4 ++ .../rest/change/ChangeMessagesIT.java | 43 +++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/BUCK b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/BUCK index d63d195201..f42a1349ad 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/BUCK +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/BUCK @@ -10,6 +10,10 @@ OTHER_TESTS = glob(['*IT.java'], excludes = SUBMIT_TESTS + SUBMIT_UTIL_SRCS) acceptance_tests( srcs = OTHER_TESTS, + deps = [ + ':submit_util', + '//lib/joda:joda-time', + ], labels = ['rest'], ) diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/ChangeMessagesIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/ChangeMessagesIT.java index 6352b50cd2..acf50db459 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/ChangeMessagesIT.java +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/ChangeMessagesIT.java @@ -14,6 +14,8 @@ package com.google.gerrit.acceptance.rest.change; +import static java.util.concurrent.TimeUnit.MILLISECONDS; +import static java.util.concurrent.TimeUnit.SECONDS; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; @@ -23,14 +25,55 @@ import com.google.gerrit.extensions.api.changes.ReviewInput; import com.google.gerrit.extensions.common.ChangeInfo; import com.google.gerrit.extensions.common.ChangeMessageInfo; import com.google.gerrit.extensions.restapi.RestApiException; +import com.google.gerrit.testutil.ConfigSuite; import org.eclipse.jgit.api.errors.GitAPIException; +import org.eclipse.jgit.lib.Config; +import org.joda.time.DateTime; +import org.joda.time.DateTimeUtils; +import org.joda.time.DateTimeUtils.MillisProvider; +import org.junit.After; +import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; import java.io.IOException; import java.util.Iterator; +import java.util.concurrent.atomic.AtomicLong; +@RunWith(ConfigSuite.class) public class ChangeMessagesIT extends AbstractDaemonTest { + private String systemTimeZone; + private volatile long clockStepMs; + + @ConfigSuite.Config + public static Config noteDbEnabled() { + Config cfg = new Config(); + cfg.setBoolean("notedb", null, "write", true); + cfg.setBoolean("notedb", "changeMessages", "read", true); + return cfg; + } + + @Before + public void setTimeForTesting() { + systemTimeZone = System.setProperty("user.timezone", "US/Eastern"); + clockStepMs = MILLISECONDS.convert(1, SECONDS); + final AtomicLong clockMs = new AtomicLong( + new DateTime(2009, 9, 30, 17, 0, 0).getMillis()); + + DateTimeUtils.setCurrentMillisProvider(new MillisProvider() { + @Override + public long getMillis() { + return clockMs.getAndAdd(clockStepMs); + } + }); + } + + @After + public void resetTime() { + DateTimeUtils.setCurrentMillisSystem(); + System.setProperty("user.timezone", systemTimeZone); + } @Test public void messagesNotReturnedByDefault() throws Exception {