aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephane Gamard <stephane.gamard@sonarsource.com>2014-09-12 10:42:26 +0200
committerStephane Gamard <stephane.gamard@sonarsource.com>2014-09-12 10:42:26 +0200
commit6a78bbaefc09b90a361b65f1870be6bae3b9a77b (patch)
treeb970d302a39435ef7a7f8c92e4f09655b04dc5cd
parent8c4feab586b986af67f88945707df8b1dc939229 (diff)
downloadsonarqube-6a78bbaefc09b90a361b65f1870be6bae3b9a77b.tar.gz
sonarqube-6a78bbaefc09b90a361b65f1870be6bae3b9a77b.zip
BaseDao testing for DAO v. 2 0 SynchronizeAfter
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/db/BaseDaoTest.java53
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/db/fake/FakeDao.java3
-rw-r--r--server/sonar-server/src/test/resources/org/sonar/server/db/fake/FakeMapper.xml2
-rw-r--r--sonar-core/src/test/java/org/sonar/core/persistence/TestDatabase.java5
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 &gt;= #{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()));