GabrielBrascher commented on a change in pull request #4268:
URL: https://github.com/apache/cloudstack/pull/4268#discussion_r471026277
##########
File path: framework/db/src/test/java/com/cloud/utils/db/GenericDaoBaseTest.java
##########
@@ -20,132 +20,166 @@
import java.sql.SQLException;
import org.junit.Assert;
+import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mockito;
-import org.mockito.runners.MockitoJUnitRunner;
+import org.mockito.junit.MockitoJUnitRunner;
Review comment:
Previous MockitoJUnitRunner got Deprecated; changed to a non-deprecated
one.
##########
File path: framework/db/src/test/java/com/cloud/utils/db/GenericDaoBaseTest.java
##########
@@ -20,132 +20,166 @@
import java.sql.SQLException;
import org.junit.Assert;
+import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mockito;
-import org.mockito.runners.MockitoJUnitRunner;
+import org.mockito.junit.MockitoJUnitRunner;
+
+import javax.persistence.EntityExistsException;
@RunWith(MockitoJUnitRunner.class)
public class GenericDaoBaseTest {
@Mock
ResultSet resultSet;
+ @Mock
+ SQLException mockedSQLException;
- @Test
- public void getObjectBoolean() throws SQLException {
+ private static final String INTEGRITY_CONSTRAINT_VIOLATION = "23000";
+ private static final int DUPLICATE_ENTRY_ERRO_CODE = 1062;
+
+ @Before
+ public void prepareTests() throws SQLException {
Mockito.when(resultSet.getObject(1)).thenReturn(false);
Mockito.when(resultSet.getBoolean(1)).thenReturn(false);
+ Mockito.when(resultSet.getObject(1)).thenReturn((short) 1);
Review comment:
Despite all tests pass, the Process finished with exit code 255 due to
unnecessary stubbings.
I fixed this issue by extracting all into a `@Before` method and tests are
looking good.
The output of tests before this PR:
```
Process finished with exit code 255
org.mockito.exceptions.misusing.UnnecessaryStubbingException:
Unnecessary stubbings detected in test class: GenericDaoBaseTest
Clean & maintainable test code requires zero unnecessary code.
Following stubbings are unnecessary (click to navigate to relevant line of
code):
1. -> at
com.cloud.utils.db.GenericDaoBaseTest.getObjectPrimitiveByte(GenericDaoBaseTest.java:144)
2. -> at
com.cloud.utils.db.GenericDaoBaseTest.getObjectPrimitiveLong(GenericDaoBaseTest.java:117)
3. -> at
com.cloud.utils.db.GenericDaoBaseTest.getObjectPrimitiveInt(GenericDaoBaseTest.java:126)
4. -> at
com.cloud.utils.db.GenericDaoBaseTest.getObjectPrimitiveDouble(GenericDaoBaseTest.java:90)
5. -> at
com.cloud.utils.db.GenericDaoBaseTest.getObjectPrimitiveFloat(GenericDaoBaseTest.java:81)
6. -> at
com.cloud.utils.db.GenericDaoBaseTest.getObjectPrimitiveShort(GenericDaoBaseTest.java:54)
7. -> at
com.cloud.utils.db.GenericDaoBaseTest.getObjectPrimitiveBoolean(GenericDaoBaseTest.java:45)
Please remove unnecessary stubbings or use 'lenient' strictness. More info:
javadoc for UnnecessaryStubbingException class.
at org.mockito.internal.runners.StrictRunner.run(StrictRunner.java:49)
at org.mockito.junit.MockitoJUnitRunner.run(MockitoJUnitRunner.java:163)
at
org.mockito.runners.MockitoJUnitRunner.run(MockitoJUnitRunner.java:54)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at
com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at
com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:220)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:53)
```
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]