]> source.dussan.org Git - sonarqube.git/commitdiff
added assertion for enqueue without commit in BatchSession
authorStephane Gamard <stephane.gamard@sonarsource.com>
Wed, 8 Oct 2014 13:36:31 +0000 (15:36 +0200)
committerStephane Gamard <stephane.gamard@sonarsource.com>
Wed, 8 Oct 2014 15:22:30 +0000 (17:22 +0200)
sonar-core/src/test/java/org/sonar/core/persistence/BatchSessionTest.java

index 8ead5748e1bceb34f2f78e54e18b0973df7e02ab..c5a72ab50824eae0afaf4a5bf8a159290b227210 100644 (file)
@@ -21,13 +21,11 @@ package org.sonar.core.persistence;
 
 import org.apache.ibatis.session.SqlSession;
 import org.junit.Test;
+import org.sonar.core.cluster.ClusterAction;
 import org.sonar.core.cluster.WorkQueue;
 
 import static org.mockito.Matchers.anyBoolean;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.*;
 
 public class BatchSessionTest {
   @Test
@@ -46,6 +44,28 @@ public class BatchSessionTest {
     verify(mybatisSession).commit();
   }
 
+  @Test
+  public void shouldCommitWhenReachingBatchSizeWithoutCommits() {
+    SqlSession mybatisSession = mock(SqlSession.class);
+    WorkQueue queue = mock(WorkQueue.class);
+    BatchSession session = new BatchSession(queue, mybatisSession, 10);
+
+    ClusterAction action = new ClusterAction() {
+      @Override
+      public Object call() throws Exception {
+        return null;
+      }
+    };
+
+    for (int i = 0; i < 9; i++) {
+      session.enqueue(action);
+      verify(mybatisSession, never()).commit();
+      verify(mybatisSession, never()).commit(anyBoolean());
+    }
+    session.enqueue(action);
+    verify(mybatisSession).commit();
+  }
+
   @Test
     public void shouldResetCounterAfterCommit() {
       SqlSession mybatisSession = mock(SqlSession.class);