Yevgeny Zaspitsky has uploaded a new change for review.

Change subject: engine: fix mocking in QueriesCommandBaseTest
......................................................................

engine: fix mocking in QueriesCommandBaseTest

Add proper mocking for QueriesCommandBase usage of SessionDataContainer.
That fixes NPEs in the test.

Change-Id: I1378780f6ef666000e837a135fbafecc82f661cd
Signed-off-by: Yevgeny Zaspitsky <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/QueriesCommandBase.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/QueriesCommandBaseTest.java
2 files changed, 27 insertions(+), 13 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/03/39603/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/QueriesCommandBase.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/QueriesCommandBase.java
index d341439..03886bb 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/QueriesCommandBase.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/QueriesCommandBase.java
@@ -65,8 +65,12 @@
     }
 
     protected DbUser initUser() {
-        return 
SessionDataContainer.getInstance().getUser(engineContext.getSessionId(),
+        return getSessionDataContainer().getUser(engineContext.getSessionId(),
                 parameters.getRefresh());
+    }
+
+    SessionDataContainer getSessionDataContainer() {
+        return SessionDataContainer.getInstance();
     }
 
     @Override
@@ -193,7 +197,7 @@
         if (engineContext.getSessionId() == null) {
             throw new RuntimeException("No sessionId found for query " + 
getClass().getName());
         }
-        return 
SessionDataContainer.getInstance().getEngineSessionSeqId(engineContext.getSessionId());
+        return 
getSessionDataContainer().getEngineSessionSeqId(engineContext.getSessionId());
     }
 
     protected DbFacade getDbFacade() {
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/QueriesCommandBaseTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/QueriesCommandBaseTest.java
index 7b1ae98..8b17d80 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/QueriesCommandBaseTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/QueriesCommandBaseTest.java
@@ -10,6 +10,9 @@
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
 import org.ovirt.engine.core.bll.aaa.SessionDataContainer;
 import org.ovirt.engine.core.common.businessentities.aaa.DbUser;
 import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
@@ -20,8 +23,15 @@
 import org.slf4j.LoggerFactory;
 
 /** A test case for the {@link QueriesCommandBase} class. */
+@RunWith(MockitoJUnitRunner.class)
 public class QueriesCommandBaseTest {
     private static final Logger log = 
LoggerFactory.getLogger(QueriesCommandBaseTest.class);
+
+    @Mock
+    private SessionDataContainer mockSessionDataContainer;
+
+    @Mock
+    private DbUser mockDbUser;
 
     /* Getters and Setters tests */
 
@@ -86,10 +96,9 @@
                         Guid guid = mock(Guid.class);
 
                         // Set up the user id env.
-                        DbUser user = mock(DbUser.class);
-                        when(user.getId()).thenReturn(guid);
-                        when(user.isAdmin()).thenReturn(isUserAdmin);
-                        SessionDataContainer.getInstance().setUser(sessionId, 
user);
+                        when(mockDbUser.getId()).thenReturn(guid);
+                        when(mockDbUser.isAdmin()).thenReturn(isUserAdmin);
+                        when(mockSessionDataContainer.getUser(sessionId, 
false)).thenReturn(mockDbUser);
 
                         // Mock-Set the query as admin/user
                         ThereIsNoSuchQuery query = new 
ThereIsNoSuchQuery(params);
@@ -102,8 +111,6 @@
                                 "Query should succeed is: ",
                                 shouldBeAbleToRunQuery,
                                 query.getQueryReturnValue().getSucceeded());
-
-                        
SessionDataContainer.getInstance().removeSessionOnLogout(sessionId);
                     }
                 }
             }
@@ -112,14 +119,12 @@
 
     @Test
     public void testGetUserID() {
-        DbUser user = mock(DbUser.class);
-        when(user.getId()).thenReturn(Guid.EVERYONE);
+        when(mockDbUser.getId()).thenReturn(Guid.EVERYONE);
         String session = UUID.randomUUID().toString();
-        SessionDataContainer.getInstance().setUser(session, user);
+        when(mockSessionDataContainer.getUser(session, 
false)).thenReturn(mockDbUser);
         VdcQueryParametersBase params = new VdcQueryParametersBase(session);
         params.setRefresh(false);
         ThereIsNoSuchQuery query = new ThereIsNoSuchQuery(params);
-
 
         assertEquals("wrong guid", Guid.EVERYONE, query.getUserID());
     }
@@ -140,7 +145,7 @@
     }
 
     /** A stub class that will cause the {@link VdcQueryType#Unknown} to be 
used */
-    private static class ThereIsNoSuchQuery extends 
QueriesCommandBase<VdcQueryParametersBase> {
+    private class ThereIsNoSuchQuery extends 
QueriesCommandBase<VdcQueryParametersBase> {
 
         public ThereIsNoSuchQuery(VdcQueryParametersBase parameters) {
             super(parameters);
@@ -150,5 +155,10 @@
         protected void executeQueryCommand() {
             // Stub method, do nothing
         }
+
+        @Override
+        SessionDataContainer getSessionDataContainer() {
+            return mockSessionDataContainer;
+        }
     }
 }


-- 
To view, visit https://gerrit.ovirt.org/39603
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1378780f6ef666000e837a135fbafecc82f661cd
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Yevgeny Zaspitsky <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to