diff options
author | Stephane Gamard <stephane.gamard@sonarsource.com> | 2014-09-12 10:42:26 +0200 |
---|---|---|
committer | Stephane Gamard <stephane.gamard@sonarsource.com> | 2014-09-12 10:42:26 +0200 |
commit | 6a78bbaefc09b90a361b65f1870be6bae3b9a77b (patch) | |
tree | b970d302a39435ef7a7f8c92e4f09655b04dc5cd | |
parent | 8c4feab586b986af67f88945707df8b1dc939229 (diff) | |
download | sonarqube-6a78bbaefc09b90a361b65f1870be6bae3b9a77b.tar.gz sonarqube-6a78bbaefc09b90a361b65f1870be6bae3b9a77b.zip |
BaseDao testing for DAO v. 2 0 SynchronizeAfter
4 files changed, 57 insertions, 6 deletions
diff --git a/server/sonar-server/src/test/java/org/sonar/server/db/BaseDaoTest.java b/server/sonar-server/src/test/java/org/sonar/server/db/BaseDaoTest.java index 405e221e9be..f4007ef3d42 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/db/BaseDaoTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/db/BaseDaoTest.java @@ -25,6 +25,8 @@ import org.junit.BeforeClass; import org.junit.ClassRule; import org.junit.Test; import org.sonar.api.utils.System2; +import org.sonar.core.cluster.ClusterAction; +import org.sonar.core.cluster.WorkQueue; import org.sonar.core.persistence.DbSession; import org.sonar.core.persistence.MyBatis; import org.sonar.core.persistence.TestDatabase; @@ -32,14 +34,34 @@ import org.sonar.server.db.fake.FakeDao; import org.sonar.server.db.fake.FakeDto; import org.sonar.server.db.fake.FakeMapper; +import java.util.Date; +import java.util.List; import java.util.UUID; import static org.fest.assertions.Assertions.assertThat; public class BaseDaoTest { + public static FakeQueue queue = new FakeQueue(); + @ClassRule - public static TestDatabase db = new TestDatabase().schema(BaseDaoTest.class, "schema.sql"); + public static TestDatabase db = new TestDatabase() + .schema(BaseDaoTest.class, "schema.sql") + .setQueue(queue); + + private static class FakeQueue implements WorkQueue<ClusterAction> { + + private int count = 0; + + @Override + public void enqueue(List<ClusterAction> actions) { + count = actions.size(); + } + + public int getCount() { + return count; + } + } private static final String DTO_ALIAS = "fake"; @@ -51,8 +73,7 @@ public class BaseDaoTest { MyBatis batis = db.myBatis(); batis.getSessionFactory().getConfiguration().getTypeAliasRegistry().registerAlias(DTO_ALIAS, FakeDto.class); batis.getSessionFactory().getConfiguration().addMapper(FakeMapper.class); - } - + } @Before public void before() throws Exception { @@ -91,6 +112,30 @@ public class BaseDaoTest { assertThat(dto.getUpdatedAt().getTime()).isGreaterThan(t0); assertThat(dto.getCreatedAt().getTime()).isLessThan(t1); + } + + @Test + public void does_enqueue_on_insert() { + FakeDto myDto = new FakeDto() + .setKey(UUID.randomUUID().toString()); + dao.insert(session, myDto); + session.commit(); + assertThat(queue.getCount()).isEqualTo(1); + } + + @Test + public void synchronize_to_es_after_date() throws Exception { + long t0 = System.currentTimeMillis() - 1000; + + String key = UUID.randomUUID().toString(); + FakeDto myDto = new FakeDto() + .setKey(key); + dao.insert(session, myDto); + + session.commit(); + assertThat(queue.getCount()).isEqualTo(1); + dao.synchronizeAfter(session, new Date(t0)); + assertThat(queue.getCount()).isEqualTo(2); } -}
\ No newline at end of file +} diff --git a/server/sonar-server/src/test/java/org/sonar/server/db/fake/FakeDao.java b/server/sonar-server/src/test/java/org/sonar/server/db/fake/FakeDao.java index b3ed13e04a9..73ec0efcc47 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/db/fake/FakeDao.java +++ b/server/sonar-server/src/test/java/org/sonar/server/db/fake/FakeDao.java @@ -22,11 +22,12 @@ package org.sonar.server.db.fake; import org.sonar.api.utils.System2; import org.sonar.core.persistence.DbSession; import org.sonar.server.db.BaseDao; +import org.sonar.server.search.IndexDefinition; public class FakeDao extends BaseDao<FakeMapper, FakeDto, String> { public FakeDao(System2 system2) { - super(FakeMapper.class, system2); + super(IndexDefinition.createFor("test", "fake"), FakeMapper.class, system2); } @Override diff --git a/server/sonar-server/src/test/resources/org/sonar/server/db/fake/FakeMapper.xml b/server/sonar-server/src/test/resources/org/sonar/server/db/fake/FakeMapper.xml index dc3aa0a1a62..361a1445ed4 100644 --- a/server/sonar-server/src/test/resources/org/sonar/server/db/fake/FakeMapper.xml +++ b/server/sonar-server/src/test/resources/org/sonar/server/db/fake/FakeMapper.xml @@ -24,7 +24,7 @@ <select id="selectAfterDate" resultType="fake" resultSetType="FORWARD_ONLY" fetchSize="200"> select <include refid="selectColumns"/> - from rules r + from fake f where f.updated_at IS NULL or f.updated_at >= #{date} </select> diff --git a/sonar-core/src/test/java/org/sonar/core/persistence/TestDatabase.java b/sonar-core/src/test/java/org/sonar/core/persistence/TestDatabase.java index b42a4e36428..cf2438bc636 100644 --- a/sonar-core/src/test/java/org/sonar/core/persistence/TestDatabase.java +++ b/sonar-core/src/test/java/org/sonar/core/persistence/TestDatabase.java @@ -88,6 +88,11 @@ public class TestDatabase extends ExternalResource { return this; } + public TestDatabase setQueue(WorkQueue queue) { + this.queue = queue; + return this; + } + @Override protected void before() throws Throwable { Settings settings = new Settings().setProperties(Maps.fromProperties(System.getProperties())); |