From: Simon Brandhof Date: Fri, 26 Jan 2018 17:40:31 +0000 (+0100) Subject: Remove unused and conflicting dependency on securemock in unit tests X-Git-Tag: 7.5~1767 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=ff49002afd726123d6ed894c5a151cef2c250ffb;p=sonarqube.git Remove unused and conflicting dependency on securemock in unit tests securemock is a fork of an old version of mockito. By removing it some tests must be fixed to correctly support the latest version of mockito: - signature of ArgumentMatcher implementations (Object -> T). That's the reason why they have been fixed and replaced by lambda - any(Class) supports null values in securemock but not in mockito. Replacing calls by any() fixes the issue. --- diff --git a/server/sonar-server/pom.xml b/server/sonar-server/pom.xml index 855a287c03e..416becba405 100644 --- a/server/sonar-server/pom.xml +++ b/server/sonar-server/pom.xml @@ -176,6 +176,10 @@ com.carrotsearch.randomizedtesting randomizedtesting-runner + + org.elasticsearch + securemock + diff --git a/server/sonar-server/src/test/java/org/sonar/server/app/TomcatConnectorsTest.java b/server/sonar-server/src/test/java/org/sonar/server/app/TomcatConnectorsTest.java index 5ce12ccd3df..c89a70364ad 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/app/TomcatConnectorsTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/app/TomcatConnectorsTest.java @@ -23,10 +23,8 @@ import com.google.common.collect.ImmutableMap; import java.net.InetAddress; import java.util.Map; import java.util.Properties; -import org.apache.catalina.connector.Connector; import org.apache.catalina.startup.Tomcat; import org.junit.Test; -import org.mockito.ArgumentMatcher; import org.mockito.Mockito; import org.sonar.process.Props; @@ -94,13 +92,7 @@ public class TomcatConnectorsTest { TomcatConnectors.configure(tomcat, new Props(p)); - verify(tomcat.getService()).addConnector(argThat(new ArgumentMatcher() { - @Override - public boolean matches(Object o) { - Connector c = (Connector) o; - return c.getScheme().equals("http") && c.getPort() == 9000 && ((InetAddress) c.getProperty("address")).getHostAddress().equals("0.0.0.0"); - } - })); + verify(tomcat.getService()).addConnector(argThat(c -> c.getScheme().equals("http") && c.getPort() == 9000 && ((InetAddress) c.getProperty("address")).getHostAddress().equals("0.0.0.0"))); } @Test @@ -111,13 +103,8 @@ public class TomcatConnectorsTest { TomcatConnectors.configure(tomcat, new Props(p)); - verify(tomcat.getService()).addConnector(argThat(new ArgumentMatcher() { - @Override - public boolean matches(Object o) { - Connector c = (Connector) o; - return c.getScheme().equals("http") && c.getPort() == 9000 && ((InetAddress) c.getProperty("address")).getHostAddress().equals("1.2.3.4"); - } - })); + verify(tomcat.getService()) + .addConnector(argThat(c -> c.getScheme().equals("http") && c.getPort() == 9000 && ((InetAddress) c.getProperty("address")).getHostAddress().equals("1.2.3.4"))); } @Test @@ -133,36 +120,26 @@ public class TomcatConnectorsTest { Props props = new Props(properties); TomcatConnectors.configure(tomcat, props); - verify(tomcat.getService()).addConnector(argThat(new ArgumentMatcher() { - @Override - public boolean matches(Object o) { - Connector c = (Connector) o; - return c.getMaxPostSize() == -1; - } - })); + verify(tomcat.getService()).addConnector(argThat(c -> c.getMaxPostSize() == -1)); } - private void verifyHttpConnector(int expectedPort, Map expectedProps) { - verify(tomcat.getService()).addConnector(argThat(new ArgumentMatcher() { - @Override - public boolean matches(Object o) { - Connector c = (Connector) o; - if (!c.getScheme().equals("http")) { - return false; - } - if (!c.getProtocol().equals(TomcatConnectors.HTTP_PROTOCOL)) { - return false; - } - if (c.getPort() != expectedPort) { + private void verifyHttpConnector(int expectedPort, Map expectedProps) { + verify(tomcat.getService()).addConnector(argThat(c -> { + if (!c.getScheme().equals("http")) { + return false; + } + if (!c.getProtocol().equals(TomcatConnectors.HTTP_PROTOCOL)) { + return false; + } + if (c.getPort() != expectedPort) { + return false; + } + for (Map.Entry expectedProp : expectedProps.entrySet()) { + if (!expectedProp.getValue().equals(c.getProperty(expectedProp.getKey()))) { return false; } - for (Map.Entry expectedProp : expectedProps.entrySet()) { - if (!expectedProp.getValue().equals(c.getProperty(expectedProp.getKey()))) { - return false; - } - } - return true; } + return true; })); } } diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/dbcleaner/ProjectCleanerTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/dbcleaner/ProjectCleanerTest.java index 9a46cec0cc8..d7f1e1af6d3 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/dbcleaner/ProjectCleanerTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/dbcleaner/ProjectCleanerTest.java @@ -22,25 +22,20 @@ package org.sonar.server.computation.dbcleaner; import org.junit.Before; import org.junit.Test; import org.sonar.api.CoreProperties; -import org.sonar.api.config.Configuration; import org.sonar.api.config.PropertyDefinitions; import org.sonar.api.config.internal.MapSettings; -import org.sonar.api.utils.log.Logger; import org.sonar.core.config.PurgeConstants; import org.sonar.core.config.PurgeProperties; import org.sonar.db.DbSession; import org.sonar.db.purge.IdUuidPair; -import org.sonar.db.purge.PurgeConfiguration; import org.sonar.db.purge.PurgeDao; import org.sonar.db.purge.PurgeListener; import org.sonar.db.purge.PurgeProfiler; import org.sonar.db.purge.period.DefaultPeriodCleaner; import static java.util.Collections.emptyList; +import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyLong; -import static org.mockito.Matchers.anyString; -import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; @@ -65,7 +60,7 @@ public class ProjectCleanerTest { underTest.purge(mock(DbSession.class), mock(IdUuidPair.class), settings.asConfig(), emptyList()); - verify(profiler, never()).dump(anyLong(), any(Logger.class)); + verify(profiler, never()).dump(anyLong(), any()); } @Test @@ -74,7 +69,7 @@ public class ProjectCleanerTest { underTest.purge(mock(DbSession.class), mock(IdUuidPair.class), settings.asConfig(), emptyList()); - verify(profiler).dump(anyLong(), any(Logger.class)); + verify(profiler).dump(anyLong(), any()); } @Test @@ -83,7 +78,7 @@ public class ProjectCleanerTest { underTest.purge(mock(DbSession.class), mock(IdUuidPair.class), settings.asConfig(), emptyList()); - verify(periodCleaner).clean(any(DbSession.class), anyString(), any(Configuration.class)); - verify(dao).purge(any(DbSession.class), any(PurgeConfiguration.class), any(PurgeListener.class), any(PurgeProfiler.class)); + verify(periodCleaner).clean(any(), any(), any()); + verify(dao).purge(any(), any(), any(), any()); } } diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/queue/ReportSubmitterTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/queue/ReportSubmitterTest.java index 01b7372f0f1..b4ea206381a 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/queue/ReportSubmitterTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/queue/ReportSubmitterTest.java @@ -23,8 +23,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.io.IOUtils; -import org.hamcrest.Description; -import org.hamcrest.TypeSafeMatcher; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -59,8 +57,8 @@ import static java.lang.String.format; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.tuple; import static org.junit.Assert.fail; +import static org.mockito.ArgumentMatchers.isNull; import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.argThat; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; @@ -111,8 +109,8 @@ public class ReportSubmitterTest { mockSuccessfulPrepareSubmitCall(); ComponentDto project = newPrivateProjectDto(db.getDefaultOrganization(), PROJECT_UUID).setDbKey(PROJECT_KEY); - when(componentUpdater.create(any(DbSession.class), any(NewComponent.class), eq(null))).thenReturn(project); - when(permissionTemplateService.wouldUserHaveScanPermissionWithDefaultTemplate(any(DbSession.class), eq(defaultOrganizationUuid), anyInt(), eq(PROJECT_KEY), + when(componentUpdater.create(any(), any(), any())).thenReturn(project); + when(permissionTemplateService.wouldUserHaveScanPermissionWithDefaultTemplate(any(), eq(defaultOrganizationUuid), any(), eq(PROJECT_KEY), eq(Qualifiers.PROJECT))) .thenReturn(true); @@ -144,18 +142,8 @@ public class ReportSubmitterTest { verifyReportIsPersisted(TASK_UUID); verifyZeroInteractions(permissionTemplateService); verifyZeroInteractions(favoriteUpdater); - verify(queue).submit(argThat(new TypeSafeMatcher() { - @Override - protected boolean matchesSafely(CeTaskSubmit submit) { - return submit.getType().equals(CeTaskTypes.REPORT) && submit.getComponentUuid().equals(project.uuid()) && - submit.getUuid().equals(TASK_UUID); - } - - @Override - public void describeTo(Description description) { - - } - })); + verify(queue).submit(argThat(submit -> + submit.getType().equals(CeTaskTypes.REPORT) && submit.getComponentUuid().equals(project.uuid()) && submit.getUuid().equals(TASK_UUID))); } @Test @@ -167,27 +155,17 @@ public class ReportSubmitterTest { mockSuccessfulPrepareSubmitCall(); ComponentDto createdProject = newPrivateProjectDto(organization, PROJECT_UUID).setDbKey(PROJECT_KEY); - when(componentUpdater.create(any(DbSession.class), any(NewComponent.class), eq(null))).thenReturn(createdProject); + when(componentUpdater.create(any(), any(), isNull())).thenReturn(createdProject); when( - permissionTemplateService.wouldUserHaveScanPermissionWithDefaultTemplate(any(DbSession.class), eq(organization.getUuid()), anyInt(), eq(PROJECT_KEY), eq(Qualifiers.PROJECT))) + permissionTemplateService.wouldUserHaveScanPermissionWithDefaultTemplate(any(), eq(organization.getUuid()), any(), eq(PROJECT_KEY), eq(Qualifiers.PROJECT))) .thenReturn(true); - when(permissionTemplateService.hasDefaultTemplateWithPermissionOnProjectCreator(any(DbSession.class), eq(organization.getUuid()), any(ComponentDto.class))).thenReturn(true); + when(permissionTemplateService.hasDefaultTemplateWithPermissionOnProjectCreator(any(), eq(organization.getUuid()), any())).thenReturn(true); underTest.submit(organization.getKey(), PROJECT_KEY, null, PROJECT_NAME, IOUtils.toInputStream("{binary}")); verifyReportIsPersisted(TASK_UUID); - verify(queue).submit(argThat(new TypeSafeMatcher() { - @Override - protected boolean matchesSafely(CeTaskSubmit submit) { - return submit.getType().equals(CeTaskTypes.REPORT) && submit.getComponentUuid().equals(PROJECT_UUID) && - submit.getUuid().equals(TASK_UUID); - } - - @Override - public void describeTo(Description description) { - - } - })); + verify(queue).submit(argThat(submit -> + submit.getType().equals(CeTaskTypes.REPORT) && submit.getComponentUuid().equals(PROJECT_UUID) && submit.getUuid().equals(TASK_UUID))); } @Test @@ -198,11 +176,11 @@ public class ReportSubmitterTest { mockSuccessfulPrepareSubmitCall(); ComponentDto createdProject = newPrivateProjectDto(db.getDefaultOrganization(), PROJECT_UUID).setDbKey(PROJECT_KEY); - when(componentUpdater.create(any(DbSession.class), any(NewComponent.class), eq(null))).thenReturn(createdProject); - when(permissionTemplateService.wouldUserHaveScanPermissionWithDefaultTemplate(any(DbSession.class), eq(defaultOrganizationUuid), anyInt(), + when(componentUpdater.create(any(), any(), isNull())).thenReturn(createdProject); + when(permissionTemplateService.wouldUserHaveScanPermissionWithDefaultTemplate(any(), eq(defaultOrganizationUuid), any(), eq(PROJECT_KEY), eq(Qualifiers.PROJECT))) .thenReturn(true); - when(permissionTemplateService.hasDefaultTemplateWithPermissionOnProjectCreator(any(DbSession.class), eq(defaultOrganizationUuid), any(ComponentDto.class))).thenReturn(false); + when(permissionTemplateService.hasDefaultTemplateWithPermissionOnProjectCreator(any(), eq(defaultOrganizationUuid), any())).thenReturn(false); underTest.submit(defaultOrganizationKey, PROJECT_KEY, null, PROJECT_NAME, IOUtils.toInputStream("{binary}")); @@ -217,8 +195,8 @@ public class ReportSubmitterTest { mockSuccessfulPrepareSubmitCall(); ComponentDto project = newPrivateProjectDto(db.getDefaultOrganization(), PROJECT_UUID).setDbKey(PROJECT_KEY); - when(componentUpdater.create(any(DbSession.class), any(NewComponent.class), eq(null))).thenReturn(project); - when(permissionTemplateService.wouldUserHaveScanPermissionWithDefaultTemplate(any(DbSession.class), eq(defaultOrganizationUuid), anyInt(), + when(componentUpdater.create(any(), any(), any())).thenReturn(project); + when(permissionTemplateService.wouldUserHaveScanPermissionWithDefaultTemplate(any(), eq(defaultOrganizationUuid), any(), eq(PROJECT_KEY), eq(Qualifiers.PROJECT))) .thenReturn(true); diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/qualitygate/QualityGateServiceImplTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/qualitygate/QualityGateServiceImplTest.java index 6df7c8237f4..ec2c1e8f2e6 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/qualitygate/QualityGateServiceImplTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/qualitygate/QualityGateServiceImplTest.java @@ -28,7 +28,6 @@ import org.junit.Before; import org.junit.Test; import org.sonar.api.measures.CoreMetrics; import org.sonar.db.DbClient; -import org.sonar.db.DbSession; import org.sonar.db.qualitygate.QualityGateConditionDao; import org.sonar.db.qualitygate.QualityGateConditionDto; import org.sonar.db.qualitygate.QualityGateDao; @@ -77,8 +76,8 @@ public class QualityGateServiceImplTest { @Test public void findById_returns_QualityGate_with_empty_set_of_conditions_when_there_is_none_in_DB() { - when(qualityGateDao.selectById(any(DbSession.class), eq(SOME_ID))).thenReturn(QUALITY_GATE_DTO); - when(qualityGateConditionDao.selectForQualityGate(any(DbSession.class), eq(SOME_ID))).thenReturn(Collections.emptyList()); + when(qualityGateDao.selectById(any(), eq(SOME_ID))).thenReturn(QUALITY_GATE_DTO); + when(qualityGateConditionDao.selectForQualityGate(any(), eq(SOME_ID))).thenReturn(Collections.emptyList()); Optional res = underTest.findById(SOME_ID); @@ -90,8 +89,8 @@ public class QualityGateServiceImplTest { @Test public void findById_returns_conditions_when_there_is_some_in_DB() { - when(qualityGateDao.selectById(any(DbSession.class), eq(SOME_ID))).thenReturn(QUALITY_GATE_DTO); - when(qualityGateConditionDao.selectForQualityGate(any(DbSession.class), eq(SOME_ID))).thenReturn(ImmutableList.of(CONDITION_1, CONDITION_2)); + when(qualityGateDao.selectById(any(), eq(SOME_ID))).thenReturn(QUALITY_GATE_DTO); + when(qualityGateConditionDao.selectForQualityGate(any(), eq(SOME_ID))).thenReturn(ImmutableList.of(CONDITION_1, CONDITION_2)); // metrics are always supposed to be there when(metricRepository.getOptionalById(METRIC_ID_1)).thenReturn(Optional.of(METRIC_1)); when(metricRepository.getOptionalById(METRIC_ID_2)).thenReturn(Optional.of(METRIC_2)); @@ -108,8 +107,8 @@ public class QualityGateServiceImplTest { @Test public void findById_ignores_conditions_on_missing_metrics() { - when(qualityGateDao.selectById(any(DbSession.class), eq(SOME_ID))).thenReturn(QUALITY_GATE_DTO); - when(qualityGateConditionDao.selectForQualityGate(any(DbSession.class), eq(SOME_ID))).thenReturn(ImmutableList.of(CONDITION_1, CONDITION_2)); + when(qualityGateDao.selectById(any(), eq(SOME_ID))).thenReturn(QUALITY_GATE_DTO); + when(qualityGateConditionDao.selectForQualityGate(any(), eq(SOME_ID))).thenReturn(ImmutableList.of(CONDITION_1, CONDITION_2)); // metrics are always supposed to be there when(metricRepository.getOptionalById(METRIC_ID_1)).thenReturn(Optional.empty()); when(metricRepository.getOptionalById(METRIC_ID_2)).thenReturn(Optional.of(METRIC_2)); diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/BuildComponentTreeStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/BuildComponentTreeStepTest.java index 00446e046e0..87164b0c17a 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/BuildComponentTreeStepTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/BuildComponentTreeStepTest.java @@ -207,7 +207,7 @@ public class BuildComponentTreeStepTest { when(branch.getName()).thenReturn("origin/feature"); when(branch.isMain()).thenReturn(false); when(branch.isLegacyFeature()).thenReturn(false); - when(branch.generateKey(any(ScannerReport.Component.class), any(ScannerReport.Component.class))).thenReturn("generated"); + when(branch.generateKey(any(), any())).thenReturn("generated"); analysisMetadataHolder.setRootComponentRef(ROOT_REF) .setAnalysisDate(ANALYSIS_DATE) .setProject(new Project("U1", REPORT_PROJECT_KEY, REPORT_PROJECT_KEY)) diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/PurgeDatastoresStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/PurgeDatastoresStepTest.java index ee4cdbebd29..ea5fb6e7dc5 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/PurgeDatastoresStepTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/PurgeDatastoresStepTest.java @@ -29,10 +29,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Mockito; -import org.sonar.api.config.Configuration; import org.sonar.api.config.internal.MapSettings; import org.sonar.db.DbClient; -import org.sonar.db.DbSession; import org.sonar.db.purge.IdUuidPair; import org.sonar.server.computation.dbcleaner.ProjectCleaner; import org.sonar.server.computation.task.projectanalysis.component.Component; @@ -48,7 +46,6 @@ import org.sonar.server.util.WrapInSingleElementArray; import static java.util.Arrays.asList; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyList; import static org.mockito.Mockito.RETURNS_DEEP_STUBS; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; @@ -140,7 +137,7 @@ public class PurgeDatastoresStepTest extends BaseStepTest { underTest.execute(); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(IdUuidPair.class); - verify(projectCleaner).purge(any(DbSession.class), argumentCaptor.capture(), any(Configuration.class), anyList()); + verify(projectCleaner).purge(any(), argumentCaptor.capture(), any(), any()); assertThat(argumentCaptor.getValue().getId()).isEqualTo(PROJECT_ID); assertThat(argumentCaptor.getValue().getUuid()).isEqualTo(PROJECT_UUID); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/SendIssueNotificationsStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/SendIssueNotificationsStepTest.java index df5504a054a..08e78d0a156 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/SendIssueNotificationsStepTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/SendIssueNotificationsStepTest.java @@ -60,8 +60,7 @@ import org.sonar.server.notification.NotificationService; import org.sonar.server.util.cache.DiskCache; import static org.apache.commons.lang.RandomStringUtils.randomAlphanumeric; -import static org.assertj.core.api.Java6Assertions.assertThat; -import static org.mockito.Matchers.anyString; +import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.any; import static org.mockito.Mockito.mock; @@ -139,14 +138,14 @@ public class SendIssueNotificationsStepTest extends BaseStepTest { new DefaultIssue().setType(randomRuleType).setEffort(ISSUE_DURATION) .setCreationDate(new Date(ANALYSE_DATE))) .close(); - when(notificationService.hasProjectSubscribersForTypes(PROJECT.getUuid(), SendIssueNotificationsStep.NOTIF_TYPES)).thenReturn(true); + when(notificationService.hasProjectSubscribersForTypes(eq(PROJECT.getUuid()), any())).thenReturn(true); underTest.execute(); verify(notificationService).deliver(newIssuesNotificationMock); verify(newIssuesNotificationMock).setProject(PROJECT.getPublicKey(), PROJECT.getName(), null); verify(newIssuesNotificationMock).setAnalysisDate(new Date(ANALYSE_DATE)); - verify(newIssuesNotificationMock).setStatistics(eq(PROJECT.getName()), any(NewIssuesStatistics.Stats.class)); + verify(newIssuesNotificationMock).setStatistics(eq(PROJECT.getName()), any()); verify(newIssuesNotificationMock).setDebt(ISSUE_DURATION); } @@ -232,7 +231,7 @@ public class SendIssueNotificationsStepTest extends BaseStepTest { new DefaultIssue().setType(randomRuleType).setEffort(ISSUE_DURATION).setAssignee(ISSUE_ASSIGNEE) .setCreationDate(new Date(ANALYSE_DATE))) .close(); - when(notificationService.hasProjectSubscribersForTypes(PROJECT.getUuid(), SendIssueNotificationsStep.NOTIF_TYPES)).thenReturn(true); + when(notificationService.hasProjectSubscribersForTypes(eq(PROJECT.getUuid()), any())).thenReturn(true); underTest.execute(); @@ -425,22 +424,22 @@ public class SendIssueNotificationsStepTest extends BaseStepTest { private NewIssuesNotification createNewIssuesNotificationMock() { NewIssuesNotification notification = mock(NewIssuesNotification.class); - when(notification.setProject(anyString(), anyString(), anyString())).thenReturn(notification); - when(notification.setProjectVersion(anyString())).thenReturn(notification); - when(notification.setAnalysisDate(any(Date.class))).thenReturn(notification); - when(notification.setStatistics(anyString(), any(NewIssuesStatistics.Stats.class))).thenReturn(notification); - when(notification.setDebt(any(Duration.class))).thenReturn(notification); + when(notification.setProject(any(), any(), any())).thenReturn(notification); + when(notification.setProjectVersion(any())).thenReturn(notification); + when(notification.setAnalysisDate(any())).thenReturn(notification); + when(notification.setStatistics(any(), any())).thenReturn(notification); + when(notification.setDebt(any())).thenReturn(notification); return notification; } private MyNewIssuesNotification createMyNewIssuesNotificationMock() { MyNewIssuesNotification notification = mock(MyNewIssuesNotification.class); - when(notification.setAssignee(anyString())).thenReturn(notification); - when(notification.setProject(anyString(), anyString(), anyString())).thenReturn(notification); - when(notification.setProjectVersion(anyString())).thenReturn(notification); - when(notification.setAnalysisDate(any(Date.class))).thenReturn(notification); - when(notification.setStatistics(anyString(), any(NewIssuesStatistics.Stats.class))).thenReturn(notification); - when(notification.setDebt(any(Duration.class))).thenReturn(notification); + when(notification.setAssignee(any())).thenReturn(notification); + when(notification.setProject(any(), any(), any())).thenReturn(notification); + when(notification.setProjectVersion(any())).thenReturn(notification); + when(notification.setAnalysisDate(any())).thenReturn(notification); + when(notification.setStatistics(any(), any())).thenReturn(notification); + when(notification.setDebt(any())).thenReturn(notification); return notification; } diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/CommentActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/CommentActionTest.java index b2ed456b871..c8db81dc575 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/issue/CommentActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/issue/CommentActionTest.java @@ -25,7 +25,6 @@ import org.junit.Before; import org.junit.Test; import org.sonar.api.issue.Issue; import org.sonar.core.issue.DefaultIssue; -import org.sonar.core.issue.IssueChangeContext; import org.sonar.server.tester.AnonymousMockUserSession; import static com.google.common.collect.Maps.newHashMap; @@ -60,7 +59,7 @@ public class CommentActionTest { when(context.issue()).thenReturn(issue); action.execute(properties, context); - verify(issueUpdater).addComment(eq(issue), eq(comment), any(IssueChangeContext.class)); + verify(issueUpdater).addComment(eq(issue), eq(comment), any()); } @Test diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/notification/ChangesOnMyIssueNotificationDispatcherTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/notification/ChangesOnMyIssueNotificationDispatcherTest.java index c06ff4cc0e1..4a74a0817fc 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/issue/notification/ChangesOnMyIssueNotificationDispatcherTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/issue/notification/ChangesOnMyIssueNotificationDispatcherTest.java @@ -21,11 +21,7 @@ package org.sonar.server.issue.notification; import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; -import org.junit.Before; import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.runners.MockitoJUnitRunner; import org.sonar.api.notifications.Notification; import org.sonar.api.notifications.NotificationChannel; import org.sonar.api.web.UserRole; @@ -35,37 +31,25 @@ import org.sonar.server.notification.NotificationManager; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.any; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; -@RunWith(MockitoJUnitRunner.class) public class ChangesOnMyIssueNotificationDispatcherTest { - @Mock - NotificationManager notifications; + private NotificationManager notifications = mock(NotificationManager.class); + private NotificationDispatcher.Context context = mock(NotificationDispatcher.Context.class); + private NotificationChannel emailChannel = mock(NotificationChannel.class); + private NotificationChannel twitterChannel = mock(NotificationChannel.class); - @Mock - NotificationDispatcher.Context context; - - @Mock - NotificationChannel emailChannel; - - @Mock - NotificationChannel twitterChannel; - - ChangesOnMyIssueNotificationDispatcher dispatcher; - - @Before - public void setUp() { - dispatcher = new ChangesOnMyIssueNotificationDispatcher(notifications); - } + private ChangesOnMyIssueNotificationDispatcher underTest = new ChangesOnMyIssueNotificationDispatcher(notifications); @Test public void test_metadata() { NotificationDispatcherMetadata metadata = ChangesOnMyIssueNotificationDispatcher.newMetadata(); - assertThat(metadata.getDispatcherKey()).isEqualTo(dispatcher.getKey()); + assertThat(metadata.getDispatcherKey()).isEqualTo(underTest.getKey()); assertThat(metadata.getProperty(NotificationDispatcherMetadata.GLOBAL_NOTIFICATION)).isEqualTo("true"); assertThat(metadata.getProperty(NotificationDispatcherMetadata.PER_PROJECT_NOTIFICATION)).isEqualTo("true"); } @@ -73,7 +57,7 @@ public class ChangesOnMyIssueNotificationDispatcherTest { @Test public void should_not_dispatch_if_other_notification_type() { Notification notification = new Notification("other-notif"); - dispatcher.performDispatch(notification, context); + underTest.performDispatch(notification, context); verify(context, never()).addUser(any(String.class), any(NotificationChannel.class)); } @@ -84,14 +68,14 @@ public class ChangesOnMyIssueNotificationDispatcherTest { recipients.put("simon", emailChannel); recipients.put("freddy", twitterChannel); recipients.put("godin", twitterChannel); - when(notifications.findSubscribedRecipientsForDispatcher(dispatcher, "struts", + when(notifications.findSubscribedRecipientsForDispatcher(underTest, "struts", new NotificationManager.SubscriberPermissionsOnProject(UserRole.USER))).thenReturn(recipients); Notification notification = new IssueChangeNotification() .setFieldValue("projectKey", "struts") .setFieldValue("changeAuthor", "olivier") .setFieldValue("assignee", "freddy"); - dispatcher.performDispatch(notification, context); + underTest.performDispatch(notification, context); verify(context).addUser("freddy", twitterChannel); verify(context, never()).addUser("godin", twitterChannel); @@ -104,10 +88,10 @@ public class ChangesOnMyIssueNotificationDispatcherTest { recipients.put("simon", emailChannel); recipients.put("freddy", twitterChannel); recipients.put("godin", twitterChannel); - when(notifications.findSubscribedRecipientsForDispatcher(dispatcher, "uuid1", new NotificationManager.SubscriberPermissionsOnProject(UserRole.USER))).thenReturn(recipients); + when(notifications.findSubscribedRecipientsForDispatcher(underTest, "uuid1", new NotificationManager.SubscriberPermissionsOnProject(UserRole.USER))).thenReturn(recipients); // change author is the assignee - dispatcher.performDispatch( + underTest.performDispatch( new IssueChangeNotification() .setFieldValue("projectKey", "struts") .setFieldValue("projectUuid", "uuid1") @@ -116,7 +100,7 @@ public class ChangesOnMyIssueNotificationDispatcherTest { context); // no change author - dispatcher.performDispatch(new IssueChangeNotification().setFieldValue("projectKey", "struts") + underTest.performDispatch(new IssueChangeNotification().setFieldValue("projectKey", "struts") .setFieldValue("new.resolution", "FIXED"), context); verifyNoMoreInteractions(context); diff --git a/server/sonar-server/src/test/java/org/sonar/server/platform/SettingsChangeNotifierTest.java b/server/sonar-server/src/test/java/org/sonar/server/platform/SettingsChangeNotifierTest.java index eedf2edf0a4..bd1d64468a0 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/platform/SettingsChangeNotifierTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/platform/SettingsChangeNotifierTest.java @@ -20,7 +20,6 @@ package org.sonar.server.platform; import org.junit.Test; -import org.mockito.ArgumentMatcher; import org.sonar.api.config.GlobalPropertyChangeHandler; import static org.assertj.core.api.Assertions.assertThat; @@ -36,13 +35,7 @@ public class SettingsChangeNotifierTest { notifier.onGlobalPropertyChange("foo", "bar"); - verify(handler).onChange(argThat(new ArgumentMatcher() { - @Override - public boolean matches(Object o) { - GlobalPropertyChangeHandler.PropertyChange change = (GlobalPropertyChangeHandler.PropertyChange) o; - return change.getKey().equals("foo") && change.getNewValue().equals("bar"); - } - })); + verify(handler).onChange(argThat(change -> change.getKey().equals("foo") && change.getNewValue().equals("bar"))); } @Test diff --git a/server/sonar-server/src/test/java/org/sonar/server/platform/web/RootFilterTest.java b/server/sonar-server/src/test/java/org/sonar/server/platform/web/RootFilterTest.java index f78cfb7a3ec..0d2f08e24e4 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/platform/web/RootFilterTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/platform/web/RootFilterTest.java @@ -45,62 +45,60 @@ public class RootFilterTest { @Rule public ExpectedException expectedException = ExpectedException.none(); - private RootFilter filter; - private FilterChain chain; + private FilterChain chain = mock(FilterChain.class); + private RootFilter underTest; @Before - public void initialize() throws Exception { + public void initialize() { FilterConfig filterConfig = mock(FilterConfig.class); ServletContext context = mock(ServletContext.class); when(context.getContextPath()).thenReturn("/context"); when(filterConfig.getServletContext()).thenReturn(context); - chain = mock(FilterChain.class); - - filter = new RootFilter(); - filter.init(filterConfig); + underTest = new RootFilter(); + underTest.init(filterConfig); } @Test - public void throwable_in_dofilter_is_caught_and_500_error_returned_if_response_is_not_committed() throws Exception { + public void throwable_in_doFilter_is_caught_and_500_error_returned_if_response_is_not_committed() throws Exception { doThrow(new RuntimeException()).when(chain).doFilter(any(ServletRequest.class), any(ServletResponse.class)); HttpServletResponse response = mockHttpResponse(false); - filter.doFilter(request("POST", "/context/service/call", "param=value"), response, chain); + underTest.doFilter(request("POST", "/context/service/call", "param=value"), response, chain); verify(response).sendError(500); } @Test - public void throwable_in_dofilter_is_caught_but_no_500_response_is_sent_if_response_already_committed() throws Exception { + public void throwable_in_doFilter_is_caught_but_no_500_response_is_sent_if_response_already_committed() throws Exception { doThrow(new RuntimeException()).when(chain).doFilter(any(ServletRequest.class), any(ServletResponse.class)); HttpServletResponse response = mockHttpResponse(true); - filter.doFilter(request("POST", "/context/service/call", "param=value"), response, chain); + underTest.doFilter(request("POST", "/context/service/call", "param=value"), response, chain); verify(response, never()).sendError(500); } @Test public void request_used_in_chain_do_filter_is_a_servlet_wrapper_when_static_resource() throws Exception { - filter.doFilter(request("GET", "/context/static/image.png", null), null, chain); + underTest.doFilter(request("GET", "/context/static/image.png", null), mock(HttpServletResponse.class), chain); ArgumentCaptor requestArgumentCaptor = ArgumentCaptor.forClass(ServletRequest.class); - verify(chain).doFilter(requestArgumentCaptor.capture(), any(ServletResponse.class)); + verify(chain).doFilter(requestArgumentCaptor.capture(), any(HttpServletResponse.class)); assertThat(requestArgumentCaptor.getValue()).isInstanceOf(RootFilter.ServletRequestWrapper.class); } @Test public void request_used_in_chain_do_filter_is_a_servlet_wrapper_when_service_call() throws Exception { - filter.doFilter(request("POST", "/context/service/call", "param=value"), null, chain); + underTest.doFilter(request("POST", "/context/service/call", "param=value"), mock(HttpServletResponse.class), chain); ArgumentCaptor requestArgumentCaptor = ArgumentCaptor.forClass(ServletRequest.class); - verify(chain).doFilter(requestArgumentCaptor.capture(), any(ServletResponse.class)); + verify(chain).doFilter(requestArgumentCaptor.capture(), any(HttpServletResponse.class)); assertThat(requestArgumentCaptor.getValue()).isInstanceOf(RootFilter.ServletRequestWrapper.class); } @Test public void fail_to_get_session_from_request() throws Exception { - filter.doFilter(request("GET", "/context/static/image.png", null), null, chain); + underTest.doFilter(request("GET", "/context/static/image.png", null), mock(HttpServletResponse.class), chain); ArgumentCaptor requestArgumentCaptor = ArgumentCaptor.forClass(ServletRequest.class); verify(chain).doFilter(requestArgumentCaptor.capture(), any(ServletResponse.class)); @@ -110,7 +108,7 @@ public class RootFilterTest { @Test public void fail_to_get_session_with_create_from_request() throws Exception { - filter.doFilter(request("GET", "/context/static/image.png", null), null, chain); + underTest.doFilter(request("GET", "/context/static/image.png", null), mock(HttpServletResponse.class), chain); ArgumentCaptor requestArgumentCaptor = ArgumentCaptor.forClass(ServletRequest.class); verify(chain).doFilter(requestArgumentCaptor.capture(), any(ServletResponse.class)); @@ -126,9 +124,9 @@ public class RootFilterTest { return request; } - private HttpServletResponse mockHttpResponse(boolean commited) { + private static HttpServletResponse mockHttpResponse(boolean committed) { HttpServletResponse response = mock(HttpServletResponse.class); - when(response.isCommitted()).thenReturn(commited); + when(response.isCommitted()).thenReturn(committed); return response; } } diff --git a/server/sonar-server/src/test/java/org/sonar/server/plugins/PluginDownloaderTest.java b/server/sonar-server/src/test/java/org/sonar/server/plugins/PluginDownloaderTest.java index 6640fa2917f..87a83c25187 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/plugins/PluginDownloaderTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/plugins/PluginDownloaderTest.java @@ -63,11 +63,11 @@ public class PluginDownloaderTest { public TemporaryFolder testFolder = new TemporaryFolder(); @Rule public ExpectedException expectedException = ExpectedException.none(); - File downloadDir; - UpdateCenterMatrixFactory updateCenterMatrixFactory; - UpdateCenter updateCenter; - HttpDownloader httpDownloader; - PluginDownloader pluginDownloader; + private File downloadDir; + private UpdateCenterMatrixFactory updateCenterMatrixFactory; + private UpdateCenter updateCenter; + private HttpDownloader httpDownloader; + private PluginDownloader pluginDownloader; @Before public void before() throws Exception { @@ -306,15 +306,15 @@ public class PluginDownloaderTest { assertThat(new File(downloadDir, "testdep-1.0.jar")).exists(); } - class HasFileName extends ArgumentMatcher { + class HasFileName implements ArgumentMatcher { private final String name; HasFileName(String name) { this.name = name; } - public boolean matches(Object obj) { - File file = (File) obj; + @Override + public boolean matches(File file) { return file.getName().equals(name); } } diff --git a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/ActivateRulesActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/ActivateRulesActionTest.java index 3fd9c8f1b20..e8fcbeabede 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/ActivateRulesActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/ActivateRulesActionTest.java @@ -25,7 +25,6 @@ import org.junit.Test; import org.junit.rules.ExpectedException; import org.sonar.api.server.ws.WebService; import org.sonar.db.DbClient; -import org.sonar.db.DbSession; import org.sonar.db.DbTester; import org.sonar.db.organization.OrganizationDto; import org.sonar.db.qualityprofile.QProfileDto; @@ -36,7 +35,6 @@ import org.sonar.server.exceptions.ForbiddenException; import org.sonar.server.exceptions.UnauthorizedException; import org.sonar.server.organization.TestDefaultOrganizationProvider; import org.sonar.server.qualityprofile.RuleActivator; -import org.sonar.server.rule.index.RuleQuery; import org.sonar.server.rule.ws.RuleQueryFactory; import org.sonar.server.tester.UserSessionRule; import org.sonar.server.ws.TestRequest; @@ -45,7 +43,6 @@ import org.sonar.server.ws.WsActionTester; import static org.apache.commons.lang.RandomStringUtils.randomAlphanumeric; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.RETURNS_DEEP_STUBS; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; @@ -123,7 +120,7 @@ public class ActivateRulesActionTest { .setParam(PARAM_TARGET_KEY, qualityProfile.getKee()) .execute(); - verify(ruleActivator).bulkActivateAndCommit(any(DbSession.class), any(RuleQuery.class), any(QProfileDto.class), anyString()); + verify(ruleActivator).bulkActivateAndCommit(any(), any(), any(), any()); } @Test @@ -141,7 +138,7 @@ public class ActivateRulesActionTest { .setParam(PARAM_TARGET_KEY, qualityProfile.getKee()) .execute(); - verify(ruleActivator).bulkActivateAndCommit(any(DbSession.class), any(RuleQuery.class), any(QProfileDto.class), anyString()); + verify(ruleActivator).bulkActivateAndCommit(any(), any(), any(), any()); } @Test diff --git a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/DeactivateRulesActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/DeactivateRulesActionTest.java index bec5d17b22f..ed62cc2cac0 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/DeactivateRulesActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/DeactivateRulesActionTest.java @@ -25,7 +25,6 @@ import org.junit.Test; import org.junit.rules.ExpectedException; import org.sonar.api.server.ws.WebService; import org.sonar.db.DbClient; -import org.sonar.db.DbSession; import org.sonar.db.DbTester; import org.sonar.db.organization.OrganizationDto; import org.sonar.db.qualityprofile.QProfileDto; @@ -36,7 +35,6 @@ import org.sonar.server.exceptions.ForbiddenException; import org.sonar.server.exceptions.UnauthorizedException; import org.sonar.server.organization.TestDefaultOrganizationProvider; import org.sonar.server.qualityprofile.RuleActivator; -import org.sonar.server.rule.index.RuleQuery; import org.sonar.server.rule.ws.RuleQueryFactory; import org.sonar.server.tester.UserSessionRule; import org.sonar.server.ws.TestRequest; @@ -119,7 +117,7 @@ public class DeactivateRulesActionTest { .setParam(PARAM_TARGET_KEY, qualityProfile.getKee()) .execute(); - verify(ruleActivator).bulkDeactivateAndCommit(any(DbSession.class), any(RuleQuery.class), any(QProfileDto.class)); + verify(ruleActivator).bulkDeactivateAndCommit(any(), any(), any()); } @Test @@ -137,7 +135,7 @@ public class DeactivateRulesActionTest { .setParam(PARAM_TARGET_KEY, qualityProfile.getKee()) .execute(); - verify(ruleActivator).bulkDeactivateAndCommit(any(DbSession.class), any(RuleQuery.class), any(QProfileDto.class)); + verify(ruleActivator).bulkDeactivateAndCommit(any(), any(), any()); } @Test diff --git a/server/sonar-server/src/test/java/org/sonar/server/telemetry/TelemetryDaemonTest.java b/server/sonar-server/src/test/java/org/sonar/server/telemetry/TelemetryDaemonTest.java index 1e8b1720f84..7ce8a8c6203 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/telemetry/TelemetryDaemonTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/telemetry/TelemetryDaemonTest.java @@ -58,6 +58,7 @@ import static java.util.Collections.emptySet; import static org.apache.commons.lang.RandomStringUtils.randomAlphanumeric; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.after; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.spy; @@ -199,7 +200,7 @@ public class TelemetryDaemonTest { internalProperties.write("telemetry.lastPing", String.valueOf(sixDaysAgo)); settings.setProperty("sonar.telemetry.frequencyInSeconds", "1"); underTest.start(); - verify(client, timeout(2_000).never()).upload(anyString()); + verify(client, after(2_000).never()).upload(anyString()); internalProperties.write("telemetry.lastPing", String.valueOf(sevenDaysAgo)); verify(client, timeout(2_000).atLeastOnce()).upload(anyString()); @@ -228,7 +229,7 @@ public class TelemetryDaemonTest { internalProperties.write("telemetry.lastPing", String.valueOf(sixDaysAgo)); underTest.start(); - verify(client, timeout(2_000).never()).upload(anyString()); + verify(client, after(2_000).never()).upload(anyString()); } @Test @@ -253,7 +254,7 @@ public class TelemetryDaemonTest { underTest.start(); underTest.start(); - verify(client, timeout(2_000).never()).upload(anyString()); + verify(client, after(2_000).never()).upload(anyString()); verify(client, timeout(2_000).times(1)).optOut(anyString()); assertThat(logger.logs(LoggerLevel.INFO)).contains("Sharing of SonarQube statistics is disabled."); }