Browse Source

Improve code quality

tags/9.3.0.51899
Duarte Meneses 2 years ago
parent
commit
3f9445c259
100 changed files with 305 additions and 369 deletions
  1. 0
    2
      plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/OneQuickFixPerLineSensor.java
  2. 0
    6
      plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/rule/OneQuickFixPerLineSensorTest.java
  3. 1
    1
      server/sonar-alm-client/src/test/java/org/sonar/alm/client/bitbucket/bitbucketcloud/BitbucketCloudRestClientTest.java
  4. 1
    3
      server/sonar-alm-client/src/test/java/org/sonar/alm/client/bitbucketserver/BitbucketServerRestClientTest.java
  5. 4
    4
      server/sonar-alm-client/src/test/java/org/sonar/alm/client/gitlab/GitlabHttpClientTest.java
  6. 0
    2
      server/sonar-auth-bitbucket/src/main/java/org/sonar/auth/bitbucket/BitbucketSettings.java
  7. 0
    2
      server/sonar-auth-bitbucket/src/main/java/org/sonar/auth/bitbucket/UserIdentityFactory.java
  8. 1
    1
      server/sonar-auth-gitlab/src/test/java/org/sonar/auth/gitlab/GsonGroupTest.java
  9. 5
    4
      server/sonar-auth-ldap/src/test/java/org/sonar/auth/ldap/LdapSearchTest.java
  10. 8
    8
      server/sonar-auth-ldap/src/test/java/org/sonar/auth/ldap/LdapSettingsManagerTest.java
  11. 2
    2
      server/sonar-auth-ldap/src/test/java/org/sonar/auth/ldap/LdapUserMappingTest.java
  12. 1
    1
      server/sonar-auth-ldap/src/test/java/org/sonar/auth/ldap/LdapUsersProviderTest.java
  13. 2
    2
      server/sonar-auth-saml/src/test/java/org/sonar/auth/saml/SamlSettingsTest.java
  14. 4
    3
      server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/MeasureComputersHolderImpl.java
  15. 1
    2
      server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/qualitygate/EvaluationResultTextConverterImpl.java
  16. 1
    1
      server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/source/linereader/SymbolsLineReader.java
  17. 1
    2
      server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistAnalysisPropertiesStep.java
  18. 1
    3
      server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistLiveMeasuresStep.java
  19. 1
    2
      server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistProjectLinksStep.java
  20. 8
    9
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/analysis/AnalysisImplTest.java
  21. 2
    2
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/analysis/AnalysisMetadataHolderImplTest.java
  22. 8
    7
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/analysis/ScannerPluginTest.java
  23. 9
    9
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/api/measurecomputer/ComponentImplTest.java
  24. 2
    2
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/api/measurecomputer/MeasureComputerContextImplTest.java
  25. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/api/measurecomputer/MeasureComputerDefinitionImplTest.java
  26. 2
    2
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/api/measurecomputer/MeasureImplTest.java
  27. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/api/posttask/CeTaskImplTest.java
  28. 4
    4
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/api/posttask/ConditionImplTest.java
  29. 2
    2
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/api/posttask/ProjectImplTest.java
  30. 2
    2
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/api/posttask/QualityGateImplTest.java
  31. 3
    10
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/component/CallRecorderPathAwareVisitor.java
  32. 3
    3
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/component/ComponentImplTest.java
  33. 2
    2
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/component/ComponentTreeBuilderTest.java
  34. 2
    2
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/component/FileAttributesTest.java
  35. 4
    15
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/container/ProjectAnalysisTaskContainerPopulatorTest.java
  36. 2
    2
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/duplication/CrossProjectDuplicateTest.java
  37. 2
    14
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/duplication/DuplicationRepositoryRule.java
  38. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/duplication/DuplicationTest.java
  39. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/duplication/InProjectDuplicateTest.java
  40. 2
    2
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/duplication/InnerDuplicateTest.java
  41. 3
    3
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/duplication/TextBlockTest.java
  42. 4
    3
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/event/EventTest.java
  43. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/filemove/FileMoveDetectionStepTest.java
  44. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/filemove/MatchTest.java
  45. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/formula/counter/LongValueTest.java
  46. 2
    2
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/formula/coverage/CoverageUtilsTest.java
  47. 2
    2
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/issue/DebtCalculatorTest.java
  48. 7
    7
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/issue/NewAdHocRuleTest.java
  49. 3
    3
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/issue/TrackerRawInputFactoryTest.java
  50. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/issue/filter/IssuePatternTest.java
  51. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/language/HandleUnanalyzedLanguagesStepTest.java
  52. 3
    3
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/language/LanguageRepositoryImplTest.java
  53. 14
    14
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/measure/BatchMeasureToMeasureTest.java
  54. 11
    11
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/measure/LiveMeasureDtoToMeasureTest.java
  55. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/measure/MapBasedRawMeasureRepositoryTest.java
  56. 16
    16
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/measure/MeasureDtoToMeasureTest.java
  57. 2
    2
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/measure/MeasureRepositoryImplTest.java
  58. 3
    3
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/measure/MeasureTest.java
  59. 2
    2
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/measure/QualityGateStatusTest.java
  60. 7
    7
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/period/PeriodTest.java
  61. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/qualitygate/ConditionEvaluatorTest.java
  62. 2
    2
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/qualitygate/ConditionStatusTest.java
  63. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/qualitymodel/NewMaintainabilityMeasuresVisitorTest.java
  64. 2
    2
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/qualitymodel/NewReliabilityAndSecurityRatingMeasuresVisitorTest.java
  65. 2
    2
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/qualitymodel/NewSecurityReviewMeasuresVisitorTest.java
  66. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/qualitymodel/ReliabilityAndSecurityRatingMeasuresVisitorTest.java
  67. 2
    2
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/qualityprofile/ActiveRulesHolderImplTest.java
  68. 11
    11
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/scm/ChangesetTest.java
  69. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/scm/ScmInfoImplTest.java
  70. 2
    2
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/source/LastCommitVisitorTest.java
  71. 13
    13
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/source/PersistFileSourcesStepTest.java
  72. 2
    2
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/source/ReportIteratorTest.java
  73. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/source/SignificantCodeRepositoryTest.java
  74. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/source/linereader/CoverageLineReaderTest.java
  75. 2
    2
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ExecuteVisitorsStepTest.java
  76. 4
    4
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStepTest.java
  77. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistAdHocRulesStepTest.java
  78. 7
    6
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistCrossProjectDuplicationIndexStepTest.java
  79. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistEventsStepTest.java
  80. 2
    2
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistLiveMeasuresStepTest.java
  81. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistMeasuresStepTest.java
  82. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistProjectLinksStepTest.java
  83. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportPersistAnalysisStepTest.java
  84. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsPersistAnalysisStepTest.java
  85. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectexport/ProjectExportComputationStepsTest.java
  86. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectexport/analysis/ExportAnalysesStepTest.java
  87. 1
    1
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectexport/steps/ExportEventsStepTest.java
  88. 4
    18
      server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectexport/steps/ExportMetricsStepTest.java
  89. 0
    10
      server/sonar-ce-task-projectanalysis/src/testFixtures/java/org/sonar/ce/task/projectanalysis/measure/MeasureAssert.java
  90. 1
    1
      server/sonar-ce-task-projectanalysis/src/testFixtures/java/org/sonar/ce/task/projectanalysis/measure/MeasureRepositoryRule.java
  91. 18
    15
      server/sonar-ce-task/src/test/java/org/sonar/ce/task/CeTaskComponentTest.java
  92. 10
    8
      server/sonar-ce-task/src/test/java/org/sonar/ce/task/CeTaskTest.java
  93. 3
    3
      server/sonar-ce-task/src/test/java/org/sonar/ce/task/container/TaskContainerImplTest.java
  94. 1
    1
      server/sonar-ce-task/src/test/java/org/sonar/ce/task/log/CeTaskMessagesMessageTest.java
  95. 1
    1
      server/sonar-ce/src/test/java/org/sonar/ce/cleaning/CeCleaningSchedulerImplTest.java
  96. 4
    4
      server/sonar-ce/src/test/java/org/sonar/ce/configuration/CeConfigurationImplTest.java
  97. 1
    1
      server/sonar-ce/src/test/java/org/sonar/ce/monitoring/CEQueueStatusImplConcurrentTest.java
  98. 3
    3
      server/sonar-ce/src/test/java/org/sonar/ce/monitoring/CommonCEQueueStatusImplTest.java
  99. 11
    11
      server/sonar-ce/src/test/java/org/sonar/ce/queue/InternalCeQueueImplTest.java
  100. 0
    0
      server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/CeProcessingSchedulerImplTest.java

+ 0
- 2
plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/OneQuickFixPerLineSensor.java View File

import org.sonar.api.batch.fs.FileSystem; import org.sonar.api.batch.fs.FileSystem;
import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.fs.InputFile;
import org.sonar.api.batch.fs.InputFile.Type; import org.sonar.api.batch.fs.InputFile.Type;
import org.sonar.api.batch.rule.Severity;
import org.sonar.api.batch.sensor.Sensor; import org.sonar.api.batch.sensor.Sensor;
import org.sonar.api.batch.sensor.SensorContext; import org.sonar.api.batch.sensor.SensorContext;
import org.sonar.api.batch.sensor.SensorDescriptor; import org.sonar.api.batch.sensor.SensorDescriptor;
import org.sonar.api.batch.sensor.issue.NewIssue; import org.sonar.api.batch.sensor.issue.NewIssue;
import org.sonar.api.rule.RuleKey; import org.sonar.api.rule.RuleKey;
import org.sonar.api.utils.Version;
import org.sonar.xoo.Xoo; import org.sonar.xoo.Xoo;
import org.sonar.xoo.Xoo2; import org.sonar.xoo.Xoo2;



+ 0
- 6
plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/rule/OneQuickFixPerLineSensorTest.java View File

import org.junit.Rule; import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.rules.TemporaryFolder; import org.junit.rules.TemporaryFolder;
import org.sonar.api.SonarEdition;
import org.sonar.api.SonarQubeSide;
import org.sonar.api.batch.fs.internal.DefaultInputFile; import org.sonar.api.batch.fs.internal.DefaultInputFile;
import org.sonar.api.batch.fs.internal.TestInputFileBuilder; import org.sonar.api.batch.fs.internal.TestInputFileBuilder;
import org.sonar.api.batch.rule.Severity;
import org.sonar.api.batch.sensor.internal.DefaultSensorDescriptor; import org.sonar.api.batch.sensor.internal.DefaultSensorDescriptor;
import org.sonar.api.batch.sensor.internal.SensorContextTester; import org.sonar.api.batch.sensor.internal.SensorContextTester;
import org.sonar.api.batch.sensor.issue.Issue; import org.sonar.api.batch.sensor.issue.Issue;
import org.sonar.api.config.internal.MapSettings;
import org.sonar.api.internal.SonarRuntimeImpl;
import org.sonar.api.utils.Version;
import org.sonar.xoo.Xoo; import org.sonar.xoo.Xoo;


import java.io.IOException; import java.io.IOException;

+ 1
- 1
server/sonar-alm-client/src/test/java/org/sonar/alm/client/bitbucket/bitbucketcloud/BitbucketCloudRestClientTest.java View File



RepositoryList repositoryList = underTest.searchRepos("user:apppwd", "", null, 1, 100); RepositoryList repositoryList = underTest.searchRepos("user:apppwd", "", null, 1, 100);
assertThat(repositoryList.getNext()).isNull(); assertThat(repositoryList.getNext()).isNull();
assertThat(repositoryList.getPage()).isEqualTo(1);
assertThat(repositoryList.getPage()).isOne();
assertThat(repositoryList.getPagelen()).isEqualTo(100); assertThat(repositoryList.getPagelen()).isEqualTo(100);
assertThat(repositoryList.getValues()) assertThat(repositoryList.getValues())
.hasSize(1) .hasSize(1)

+ 1
- 3
server/sonar-alm-client/src/test/java/org/sonar/alm/client/bitbucketserver/BitbucketServerRestClientTest.java View File

.setBody("this is not a json payload")); .setBody("this is not a json payload"));


String serverUrl = server.url("/").toString(); String serverUrl = server.url("/").toString();
assertThatThrownBy(() -> {
underTest.validateUrl(serverUrl);
})
assertThatThrownBy(() -> underTest.validateUrl(serverUrl))
.isInstanceOf(IllegalArgumentException.class) .isInstanceOf(IllegalArgumentException.class)
.hasMessage("Unable to contact Bitbucket server, got an unexpected response"); .hasMessage("Unable to contact Bitbucket server, got an unexpected response");
} }

+ 4
- 4
server/sonar-alm-client/src/test/java/org/sonar/alm/client/gitlab/GitlabHttpClientTest.java View File



ProjectList projectList = underTest.searchProjects(gitlabUrl, "pat", "example", 1, 10); ProjectList projectList = underTest.searchProjects(gitlabUrl, "pat", "example", 1, 10);


assertThat(projectList.getPageNumber()).isEqualTo(1);
assertThat(projectList.getPageNumber()).isOne();
assertThat(projectList.getPageSize()).isEqualTo(10); assertThat(projectList.getPageSize()).isEqualTo(10);
assertThat(projectList.getTotal()).isEqualTo(3); assertThat(projectList.getTotal()).isEqualTo(3);




ProjectList projectList = underTest.searchProjects(gitlabUrl, "pat", "example", 1, 10); ProjectList projectList = underTest.searchProjects(gitlabUrl, "pat", "example", 1, 10);


assertThat(projectList.getPageNumber()).isEqualTo(1);
assertThat(projectList.getPageNumber()).isOne();
assertThat(projectList.getPageSize()).isEqualTo(10); assertThat(projectList.getPageSize()).isEqualTo(10);
assertThat(projectList.getTotal()).isNull(); assertThat(projectList.getTotal()).isNull();




ProjectList projectList = underTest.searchProjects(gitlabUrl, "pat", "example", 1, 10); ProjectList projectList = underTest.searchProjects(gitlabUrl, "pat", "example", 1, 10);


assertThat(projectList.getPageNumber()).isEqualTo(1);
assertThat(projectList.getPageSize()).isEqualTo(1);
assertThat(projectList.getPageNumber()).isOne();
assertThat(projectList.getPageSize()).isOne();
assertThat(projectList.getTotal()).isEqualTo(2); assertThat(projectList.getTotal()).isEqualTo(2);


assertThat(projectList.getProjects()).hasSize(1); assertThat(projectList.getProjects()).hasSize(1);

+ 0
- 2
server/sonar-auth-bitbucket/src/main/java/org/sonar/auth/bitbucket/BitbucketSettings.java View File

import org.sonar.api.config.PropertyDefinition; import org.sonar.api.config.PropertyDefinition;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;


import static java.lang.String.format;

@ServerSide @ServerSide
public class BitbucketSettings { public class BitbucketSettings {



+ 0
- 2
server/sonar-auth-bitbucket/src/main/java/org/sonar/auth/bitbucket/UserIdentityFactory.java View File

import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;
import org.sonar.api.server.authentication.UserIdentity; import org.sonar.api.server.authentication.UserIdentity;


import static java.lang.String.format;

@ServerSide @ServerSide
public class UserIdentityFactory { public class UserIdentityFactory {



+ 1
- 1
server/sonar-auth-gitlab/src/test/java/org/sonar/auth/gitlab/GsonGroupTest.java View File

"}]"); "}]");


assertThat(groups).isNotNull(); assertThat(groups).isNotNull();
assertThat(groups.size()).isEqualTo(1);
assertThat(groups.size()).isOne();
assertThat(groups.get(0).getFullPath()).isEqualTo("my-awesome-group/my-project"); assertThat(groups.get(0).getFullPath()).isEqualTo("my-awesome-group/my-project");
} }
} }

+ 5
- 4
server/sonar-auth-ldap/src/test/java/org/sonar/auth/ldap/LdapSearchTest.java View File

assertThat(search.toString()).isEqualTo("LdapSearch{baseDn=dc=example,dc=org, scope=subtree, request=(objectClass={0}), parameters=[inetOrgPerson], attributes=[objectClass]}"); assertThat(search.toString()).isEqualTo("LdapSearch{baseDn=dc=example,dc=org, scope=subtree, request=(objectClass={0}), parameters=[inetOrgPerson], attributes=[objectClass]}");
assertThat(enumerationToArrayList(search.find()).size()).isEqualTo(3); assertThat(enumerationToArrayList(search.find()).size()).isEqualTo(3);


assertThatThrownBy(() -> search.findUnique())
assertThatThrownBy(search::findUnique)
.isInstanceOf(NamingException.class) .isInstanceOf(NamingException.class)
.hasMessage("Non unique result for " + search.toString()); .hasMessage("Non unique result for " + search.toString());

} }


@Test @Test
assertThat(search.getRequest()).isEqualTo("(objectClass={0})"); assertThat(search.getRequest()).isEqualTo("(objectClass={0})");
assertThat(search.getParameters()).isEqualTo(new String[] {"inetOrgPerson"}); assertThat(search.getParameters()).isEqualTo(new String[] {"inetOrgPerson"});
assertThat(search.getReturningAttributes()).isEqualTo(new String[] {"cn"}); assertThat(search.getReturningAttributes()).isEqualTo(new String[] {"cn"});
assertThat(search.toString()).isEqualTo("LdapSearch{baseDn=dc=example,dc=org, scope=onelevel, request=(objectClass={0}), parameters=[inetOrgPerson], attributes=[cn]}");
assertThat(search).hasToString("LdapSearch{baseDn=dc=example,dc=org, scope=onelevel, request=(objectClass={0}), parameters=[inetOrgPerson], attributes=[cn]}");
assertThat(enumerationToArrayList(search.find()).size()).isZero(); assertThat(enumerationToArrayList(search.find()).size()).isZero();
assertThat(search.findUnique()).isNull(); assertThat(search.findUnique()).isNull();
} }
assertThat(search.getRequest()).isEqualTo("(objectClass={0})"); assertThat(search.getRequest()).isEqualTo("(objectClass={0})");
assertThat(search.getParameters()).isEqualTo(new String[] {"uidObject"}); assertThat(search.getParameters()).isEqualTo(new String[] {"uidObject"});
assertThat(search.getReturningAttributes()).isEqualTo(new String[] {"uid"}); assertThat(search.getReturningAttributes()).isEqualTo(new String[] {"uid"});
assertThat(search.toString()).isEqualTo(
assertThat(search).hasToString(
"LdapSearch{baseDn=cn=bind,ou=users,dc=example,dc=org, scope=object, request=(objectClass={0}), parameters=[uidObject], attributes=[uid]}"); "LdapSearch{baseDn=cn=bind,ou=users,dc=example,dc=org, scope=object, request=(objectClass={0}), parameters=[uidObject], attributes=[uid]}");
assertThat(enumerationToArrayList(search.find()).size()).isEqualTo(1);
assertThat(enumerationToArrayList(search.find())).hasSize(1);
assertThat(search.findUnique()).isNotNull(); assertThat(search.findUnique()).isNotNull();
} }



+ 8
- 8
server/sonar-auth-ldap/src/test/java/org/sonar/auth/ldap/LdapSettingsManagerTest.java View File

public void testContextFactoriesWithSingleLdap() { public void testContextFactoriesWithSingleLdap() {
LdapSettingsManager settingsManager = new LdapSettingsManager( LdapSettingsManager settingsManager = new LdapSettingsManager(
generateSingleLdapSettingsWithUserAndGroupMapping().asConfig(), new LdapAutodiscovery()); generateSingleLdapSettingsWithUserAndGroupMapping().asConfig(), new LdapAutodiscovery());
assertThat(settingsManager.getContextFactories().size()).isEqualTo(1);
assertThat(settingsManager.getContextFactories()).hasSize(1);
} }


/** /**
public void testContextFactoriesWithMultipleLdap() { public void testContextFactoriesWithMultipleLdap() {
LdapSettingsManager settingsManager = new LdapSettingsManager( LdapSettingsManager settingsManager = new LdapSettingsManager(
generateMultipleLdapSettingsWithUserAndGroupMapping().asConfig(), new LdapAutodiscovery()); generateMultipleLdapSettingsWithUserAndGroupMapping().asConfig(), new LdapAutodiscovery());
assertThat(settingsManager.getContextFactories().size()).isEqualTo(2);
assertThat(settingsManager.getContextFactories()).hasSize(2);
// We do it twice to make sure the settings keep the same. // We do it twice to make sure the settings keep the same.
assertThat(settingsManager.getContextFactories().size()).isEqualTo(2);
assertThat(settingsManager.getContextFactories()).hasSize(2);
} }


@Test @Test
when(ldapAutodiscovery.getLdapServers("example.org")).thenReturn(Arrays.asList(ldap1, ldap2)); when(ldapAutodiscovery.getLdapServers("example.org")).thenReturn(Arrays.asList(ldap1, ldap2));
LdapSettingsManager settingsManager = new LdapSettingsManager( LdapSettingsManager settingsManager = new LdapSettingsManager(
generateAutodiscoverSettings().asConfig(), ldapAutodiscovery); generateAutodiscoverSettings().asConfig(), ldapAutodiscovery);
assertThat(settingsManager.getContextFactories().size()).isEqualTo(2);
assertThat(settingsManager.getContextFactories()).hasSize(2);
} }


@Test @Test
public void testUserMappings() { public void testUserMappings() {
LdapSettingsManager settingsManager = new LdapSettingsManager( LdapSettingsManager settingsManager = new LdapSettingsManager(
generateMultipleLdapSettingsWithUserAndGroupMapping().asConfig(), new LdapAutodiscovery()); generateMultipleLdapSettingsWithUserAndGroupMapping().asConfig(), new LdapAutodiscovery());
assertThat(settingsManager.getUserMappings().size()).isEqualTo(2);
assertThat(settingsManager.getUserMappings()).hasSize(2);
// We do it twice to make sure the settings keep the same. // We do it twice to make sure the settings keep the same.
assertThat(settingsManager.getUserMappings().size()).isEqualTo(2);
assertThat(settingsManager.getUserMappings()).hasSize(2);
} }


/** /**
public void testGroupMappings() { public void testGroupMappings() {
LdapSettingsManager settingsManager = new LdapSettingsManager( LdapSettingsManager settingsManager = new LdapSettingsManager(
generateMultipleLdapSettingsWithUserAndGroupMapping().asConfig(), new LdapAutodiscovery()); generateMultipleLdapSettingsWithUserAndGroupMapping().asConfig(), new LdapAutodiscovery());
assertThat(settingsManager.getGroupMappings().size()).isEqualTo(2);
assertThat(settingsManager.getGroupMappings()).hasSize(2);
// We do it twice to make sure the settings keep the same. // We do it twice to make sure the settings keep the same.
assertThat(settingsManager.getGroupMappings().size()).isEqualTo(2);
assertThat(settingsManager.getGroupMappings()).hasSize(2);
} }


/** /**

+ 2
- 2
server/sonar-auth-ldap/src/test/java/org/sonar/auth/ldap/LdapUserMappingTest.java View File

assertThat(userMapping.getRealNameAttribute()).isEqualTo("cn"); assertThat(userMapping.getRealNameAttribute()).isEqualTo("cn");
assertThat(userMapping.getEmailAttribute()).isEqualTo("mail"); assertThat(userMapping.getEmailAttribute()).isEqualTo("mail");


assertThat(userMapping.toString()).isEqualTo("LdapUserMapping{" +
assertThat(userMapping).hasToString("LdapUserMapping{" +
"baseDn=null," + "baseDn=null," +
" request=(&(objectClass=inetOrgPerson)(uid={0}))," + " request=(&(objectClass=inetOrgPerson)(uid={0}))," +
" realNameAttribute=cn," + " realNameAttribute=cn," +
assertThat(search.getParameters()).isEqualTo(new String[] {"tester"}); assertThat(search.getParameters()).isEqualTo(new String[] {"tester"});
assertThat(search.getReturningAttributes()).isNull(); assertThat(search.getReturningAttributes()).isNull();


assertThat(userMapping.toString()).isEqualTo("LdapUserMapping{" +
assertThat(userMapping).hasToString("LdapUserMapping{" +
"baseDn=cn=users," + "baseDn=cn=users," +
" request=(&(objectClass=user)(sAMAccountName={0}))," + " request=(&(objectClass=user)(sAMAccountName={0}))," +
" realNameAttribute=cn," + " realNameAttribute=cn," +

+ 1
- 1
server/sonar-auth-ldap/src/test/java/org/sonar/auth/ldap/LdapUsersProviderTest.java View File



details = usersProvider.getUserDetails("without_email"); details = usersProvider.getUserDetails("without_email");
assertThat(details.getName()).isEqualTo("Without Email"); assertThat(details.getName()).isEqualTo("Without Email");
assertThat(details.getEmail()).isEqualTo("");
assertThat(details.getEmail()).isEmpty();


details = usersProvider.getUserDetails("notfound"); details = usersProvider.getUserDetails("notfound");
assertThat(details).isNull(); assertThat(details).isNull();

+ 2
- 2
server/sonar-auth-saml/src/test/java/org/sonar/auth/saml/SamlSettingsTest.java View File

public void return_user_email_attribute() { public void return_user_email_attribute() {
settings.setProperty("sonar.auth.saml.user.email", "userEmail"); settings.setProperty("sonar.auth.saml.user.email", "userEmail");


assertThat(underTest.getUserEmail().get()).isEqualTo("userEmail");
assertThat(underTest.getUserEmail()).contains("userEmail");
} }


@Test @Test
public void return_group_name_attribute() { public void return_group_name_attribute() {
settings.setProperty("sonar.auth.saml.group.name", "groupName"); settings.setProperty("sonar.auth.saml.group.name", "groupName");


assertThat(underTest.getGroupName().get()).isEqualTo("groupName");
assertThat(underTest.getGroupName()).contains("groupName");
} }


@Test @Test

+ 4
- 3
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/MeasureComputersHolderImpl.java View File

*/ */
package org.sonar.ce.task.projectanalysis.measure; package org.sonar.ce.task.projectanalysis.measure;


import com.google.common.base.Predicates;
import java.util.Objects;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
import javax.annotation.CheckForNull; import javax.annotation.CheckForNull;
import org.sonar.ce.task.projectanalysis.api.measurecomputer.MeasureComputerWrapper; import org.sonar.ce.task.projectanalysis.api.measurecomputer.MeasureComputerWrapper;


import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Preconditions.checkState;
import static com.google.common.collect.FluentIterable.from;
import static java.util.Objects.requireNonNull; import static java.util.Objects.requireNonNull;


public class MeasureComputersHolderImpl implements MutableMeasureComputersHolder { public class MeasureComputersHolderImpl implements MutableMeasureComputersHolder {
public void setMeasureComputers(Iterable<MeasureComputerWrapper> measureComputers) { public void setMeasureComputers(Iterable<MeasureComputerWrapper> measureComputers) {
requireNonNull(measureComputers, "Measure computers cannot be null"); requireNonNull(measureComputers, "Measure computers cannot be null");
checkState(this.measureComputers == null, "Measure computers have already been initialized"); checkState(this.measureComputers == null, "Measure computers have already been initialized");
this.measureComputers = from(measureComputers).filter(Predicates.notNull()).toList();
this.measureComputers = StreamSupport.stream(measureComputers.spliterator(), false).filter(Objects::nonNull).collect(Collectors.toList());
} }
} }

+ 1
- 2
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/qualitygate/EvaluationResultTextConverterImpl.java View File

*/ */
package org.sonar.ce.task.projectanalysis.qualitygate; package org.sonar.ce.task.projectanalysis.qualitygate;


import com.google.common.collect.ImmutableMap;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import javax.annotation.CheckForNull; import javax.annotation.CheckForNull;
import static java.util.Objects.requireNonNull; import static java.util.Objects.requireNonNull;


public final class EvaluationResultTextConverterImpl implements EvaluationResultTextConverter { public final class EvaluationResultTextConverterImpl implements EvaluationResultTextConverter {
private static final Map<Condition.Operator, String> OPERATOR_LABELS = ImmutableMap.of(
private static final Map<Condition.Operator, String> OPERATOR_LABELS = Map.of(
Condition.Operator.GREATER_THAN, ">", Condition.Operator.GREATER_THAN, ">",
Condition.Operator.LESS_THAN, "<"); Condition.Operator.LESS_THAN, "<");



+ 1
- 1
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/source/linereader/SymbolsLineReader.java View File



public class SymbolsLineReader implements LineReader { public class SymbolsLineReader implements LineReader {


private static final Logger LOG = Loggers.get(HighlightingLineReader.class);
private static final Logger LOG = Loggers.get(SymbolsLineReader.class);


private final Component file; private final Component file;
private final RangeOffsetConverter rangeOffsetConverter; private final RangeOffsetConverter rangeOffsetConverter;

+ 1
- 2
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistAnalysisPropertiesStep.java View File

*/ */
package org.sonar.ce.task.projectanalysis.step; package org.sonar.ce.task.projectanalysis.step;


import com.google.common.collect.ImmutableSet;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
public class PersistAnalysisPropertiesStep implements ComputationStep { public class PersistAnalysisPropertiesStep implements ComputationStep {


private static final String SONAR_PULL_REQUEST = "sonar.pullrequest."; private static final String SONAR_PULL_REQUEST = "sonar.pullrequest.";
private static final Set<String> ANALYSIS_PROPERTIES_TO_PERSIST = ImmutableSet.of(SONAR_ANALYSIS_DETECTEDSCM, SONAR_ANALYSIS_DETECTEDCI);
private static final Set<String> ANALYSIS_PROPERTIES_TO_PERSIST = Set.of(SONAR_ANALYSIS_DETECTEDSCM, SONAR_ANALYSIS_DETECTEDCI);


private final DbClient dbClient; private final DbClient dbClient;
private final AnalysisMetadataHolder analysisMetadataHolder; private final AnalysisMetadataHolder analysisMetadataHolder;

+ 1
- 3
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistLiveMeasuresStep.java View File

/** /**
* List of metrics that should not be persisted on file measure. * List of metrics that should not be persisted on file measure.
*/ */
private static final Set<String> NOT_TO_PERSIST_ON_FILE_METRIC_KEYS = unmodifiableSet(new HashSet<>(asList(
FILE_COMPLEXITY_DISTRIBUTION_KEY,
FUNCTION_COMPLEXITY_DISTRIBUTION_KEY)));
private static final Set<String> NOT_TO_PERSIST_ON_FILE_METRIC_KEYS = Set.of(FILE_COMPLEXITY_DISTRIBUTION_KEY, FUNCTION_COMPLEXITY_DISTRIBUTION_KEY);


private final DbClient dbClient; private final DbClient dbClient;
private final MetricRepository metricRepository; private final MetricRepository metricRepository;

+ 1
- 2
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistProjectLinksStep.java View File

*/ */
package org.sonar.ce.task.projectanalysis.step; package org.sonar.ce.task.projectanalysis.step;


import com.google.common.collect.ImmutableMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkArgument;


public class PersistProjectLinksStep implements ComputationStep { public class PersistProjectLinksStep implements ComputationStep {
private static final Map<ComponentLinkType, String> typesConverter = ImmutableMap.of(
private static final Map<ComponentLinkType, String> typesConverter = Map.of(
ComponentLinkType.HOME, ProjectLinkDto.TYPE_HOME_PAGE, ComponentLinkType.HOME, ProjectLinkDto.TYPE_HOME_PAGE,
ComponentLinkType.SCM, ProjectLinkDto.TYPE_SOURCES, ComponentLinkType.SCM, ProjectLinkDto.TYPE_SOURCES,
ComponentLinkType.CI, ProjectLinkDto.TYPE_CI, ComponentLinkType.CI, ProjectLinkDto.TYPE_CI,

+ 8
- 9
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/analysis/AnalysisImplTest.java View File



public class AnalysisImplTest { public class AnalysisImplTest {



private static final long ID = 10; private static final long ID = 10;
private static final String UUID = "uuid "; private static final String UUID = "uuid ";
private static final long CREATED_AT = 123456789L; private static final long CREATED_AT = 123456789L;
.setUuid(UUID) .setUuid(UUID)
.setCreatedAt(CREATED_AT) .setCreatedAt(CREATED_AT)
.build().toString()) .build().toString())
.isEqualTo("Analysis{uuid='uuid ', createdAt=123456789}");
.isEqualTo("Analysis{uuid='uuid ', createdAt=123456789}");
} }


@Test @Test
.setCreatedAt(CREATED_AT) .setCreatedAt(CREATED_AT)
.build(); .build();


assertThat(analysis).isEqualTo(analysis);
assertThat(analysis).isEqualTo(sameAnalysis);
assertThat(analysis).isNotEqualTo(otherAnalysis);
assertThat(analysis).isNotEqualTo(null);
assertThat(analysis.hashCode()).isEqualTo(analysis.hashCode());
assertThat(analysis.hashCode()).isEqualTo(sameAnalysis.hashCode());
assertThat(analysis)
.isEqualTo(analysis)
.isEqualTo(sameAnalysis)
.isNotEqualTo(otherAnalysis)
.isNotNull()
.hasSameHashCodeAs(analysis.hashCode())
.hasSameHashCodeAs(sameAnalysis.hashCode());
assertThat(analysis.hashCode()).isNotEqualTo(otherAnalysis.hashCode()); assertThat(analysis.hashCode()).isNotEqualTo(otherAnalysis.hashCode());
} }
} }

+ 2
- 2
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/analysis/AnalysisMetadataHolderImplTest.java View File



underTest.setCrossProjectDuplicationEnabled(true); underTest.setCrossProjectDuplicationEnabled(true);


assertThat(underTest.isCrossProjectDuplicationEnabled()).isEqualTo(true);
assertThat(underTest.isCrossProjectDuplicationEnabled()).isTrue();
} }


@Test @Test


underTest.setCrossProjectDuplicationEnabled(false); underTest.setCrossProjectDuplicationEnabled(false);


assertThat(underTest.isCrossProjectDuplicationEnabled()).isEqualTo(false);
assertThat(underTest.isCrossProjectDuplicationEnabled()).isFalse();
} }


@Test @Test

+ 8
- 7
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/analysis/ScannerPluginTest.java View File

public void verify_toString() { public void verify_toString() {
ScannerPlugin plugin = new ScannerPlugin("key", "base", 12345L); ScannerPlugin plugin = new ScannerPlugin("key", "base", 12345L);


assertThat(plugin.toString()).isEqualTo("ScannerPlugin{key='key', basePluginKey='base', updatedAt='12345'}");
assertThat(plugin).hasToString("ScannerPlugin{key='key', basePluginKey='base', updatedAt='12345'}");
} }


@Test @Test
public void equals_is_based_on_key_only() { public void equals_is_based_on_key_only() {
ScannerPlugin plugin = new ScannerPlugin("key", "base", 12345L); ScannerPlugin plugin = new ScannerPlugin("key", "base", 12345L);


assertThat(plugin).isEqualTo(plugin);
assertThat(plugin).isEqualTo(new ScannerPlugin("key", null, 45678L));
assertThat(plugin).isNotEqualTo(new ScannerPlugin("key2", "base", 12345L));
assertThat(plugin).isNotEqualTo(null);
assertThat(plugin).isNotEqualTo("toto");
assertThat(plugin)
.isEqualTo(plugin)
.isEqualTo(new ScannerPlugin("key", null, 45678L))
.isNotEqualTo(new ScannerPlugin("key2", "base", 12345L))
.isNotNull()
.isNotEqualTo("toto");
} }


@Test @Test
public void hashcode_is_based_on_key_only() { public void hashcode_is_based_on_key_only() {
ScannerPlugin plugin = new ScannerPlugin("key", "base", 12345L); ScannerPlugin plugin = new ScannerPlugin("key", "base", 12345L);


assertThat(plugin.hashCode()).isEqualTo("key".hashCode());
assertThat(plugin).hasSameHashCodeAs("key");
} }
} }

+ 9
- 9
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/api/measurecomputer/ComponentImplTest.java View File

ComponentImpl sameComponent = new ComponentImpl("Project1", Component.Type.PROJECT, null); ComponentImpl sameComponent = new ComponentImpl("Project1", Component.Type.PROJECT, null);
ComponentImpl anotherComponent = new ComponentImpl("Project2", Component.Type.PROJECT, null); ComponentImpl anotherComponent = new ComponentImpl("Project2", Component.Type.PROJECT, null);


assertThat(component).isEqualTo(component);
assertThat(component).isEqualTo(sameComponent);
assertThat(component).isNotEqualTo(anotherComponent);
assertThat(component).isNotEqualTo(null);
assertThat(component.hashCode()).isEqualTo(component.hashCode());
assertThat(component.hashCode()).isEqualTo(sameComponent.hashCode());
assertThat(component)
.isEqualTo(component)
.isEqualTo(sameComponent)
.isNotEqualTo(anotherComponent)
.isNotNull()
.hasSameHashCodeAs(component)
.hasSameHashCodeAs(sameComponent);
assertThat(component.hashCode()).isNotEqualTo(anotherComponent.hashCode()); assertThat(component.hashCode()).isNotEqualTo(anotherComponent.hashCode());
} }


@Test @Test
public void test_to_string() { public void test_to_string() {
assertThat(new ComponentImpl("File", Component.Type.FILE, new ComponentImpl.FileAttributesImpl("xoo", true)).toString())
.isEqualTo("ComponentImpl{key=File, type='FILE', fileAttributes=FileAttributesImpl{languageKey='xoo', unitTest=true}}");
assertThat(new ComponentImpl("File", Component.Type.FILE, new ComponentImpl.FileAttributesImpl("xoo", true)))
.hasToString("ComponentImpl{key=File, type='FILE', fileAttributes=FileAttributesImpl{languageKey='xoo', unitTest=true}}");
} }
} }

+ 2
- 2
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/api/measurecomputer/MeasureComputerContextImplTest.java View File

.setSeverity("MAJOR") .setSeverity("MAJOR")
.setStatus("CLOSED") .setStatus("CLOSED")
.setResolution("FIXED") .setResolution("FIXED")
.setEffort(Duration.create(10l));
.setEffort(Duration.create(10L));


MeasureComputerContextImpl underTest = newContext(PROJECT_REF, Arrays.asList(issue)); MeasureComputerContextImpl underTest = newContext(PROJECT_REF, Arrays.asList(issue));


assertThat(result.severity()).isEqualTo("MAJOR"); assertThat(result.severity()).isEqualTo("MAJOR");
assertThat(result.status()).isEqualTo("CLOSED"); assertThat(result.status()).isEqualTo("CLOSED");
assertThat(result.resolution()).isEqualTo("FIXED"); assertThat(result.resolution()).isEqualTo("FIXED");
assertThat(result.effort()).isEqualTo(Duration.create(10l));
assertThat(result.effort()).isEqualTo(Duration.create(10L));
} }


private MeasureComputerContextImpl newContext(int componentRef) { private MeasureComputerContextImpl newContext(int componentRef) {

+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/api/measurecomputer/MeasureComputerDefinitionImplTest.java View File

assertThat(computer).isEqualTo(computer) assertThat(computer).isEqualTo(computer)
.isEqualTo(sameComputer) .isEqualTo(sameComputer)
.isNotEqualTo(anotherComputer) .isNotEqualTo(anotherComputer)
.isNotEqualTo(null);
.isNotNull();


assertThat(computer) assertThat(computer)
.hasSameHashCodeAs(computer) .hasSameHashCodeAs(computer)

+ 2
- 2
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/api/measurecomputer/MeasureImplTest.java View File

@Test @Test
public void get_int_value() { public void get_int_value() {
MeasureImpl measure = new MeasureImpl(Measure.newMeasureBuilder().create(1)); MeasureImpl measure = new MeasureImpl(Measure.newMeasureBuilder().create(1));
assertThat(measure.getIntValue()).isEqualTo(1);
assertThat(measure.getIntValue()).isOne();
} }


@Test @Test
@Test @Test
public void get_long_value() { public void get_long_value() {
MeasureImpl measure = new MeasureImpl(Measure.newMeasureBuilder().create(1L)); MeasureImpl measure = new MeasureImpl(Measure.newMeasureBuilder().create(1L));
assertThat(measure.getLongValue()).isEqualTo(1L);
assertThat(measure.getLongValue()).isOne();
} }


@Test @Test

+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/api/posttask/CeTaskImplTest.java View File



@Test @Test
public void verify_toString() { public void verify_toString() {
assertThat(new CeTaskImpl(SOME_ID, CeTask.Status.SUCCESS).toString()).isEqualTo("CeTaskImpl{id='some id', status=SUCCESS}");
assertThat(new CeTaskImpl(SOME_ID, CeTask.Status.SUCCESS)).hasToString("CeTaskImpl{id='some id', status=SUCCESS}");
} }
} }

+ 4
- 4
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/api/posttask/ConditionImplTest.java View File



@Test @Test
public void toString_ConditionImpl_of_type_different_from_NO_VALUE() { public void toString_ConditionImpl_of_type_different_from_NO_VALUE() {
assertThat(builder.build().toString())
.isEqualTo(
assertThat(builder.build())
.hasToString(
"ConditionImpl{status=OK, metricKey='metricKey', operator=GREATER_THAN, errorThreshold='error threshold', value='value'}"); "ConditionImpl{status=OK, metricKey='metricKey', operator=GREATER_THAN, errorThreshold='error threshold', value='value'}");
} }


builder.setStatus(QualityGate.EvaluationStatus.NO_VALUE) builder.setStatus(QualityGate.EvaluationStatus.NO_VALUE)
.setValue(null); .setValue(null);


assertThat(builder.build().toString())
.isEqualTo(
assertThat(builder.build())
.hasToString(
"ConditionImpl{status=NO_VALUE, metricKey='metricKey', operator=GREATER_THAN, errorThreshold='error threshold', value='null'}"); "ConditionImpl{status=NO_VALUE, metricKey='metricKey', operator=GREATER_THAN, errorThreshold='error threshold', value='null'}");
} }



+ 2
- 2
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/api/posttask/ProjectImplTest.java View File



@Test @Test
public void verify_toString() { public void verify_toString() {
assertThat(new ProjectImpl(SOME_UUID, SOME_KEY, SOME_NAME).toString())
.isEqualTo("ProjectImpl{uuid='some uuid', key='some key', name='some name'}");
assertThat(new ProjectImpl(SOME_UUID, SOME_KEY, SOME_NAME))
.hasToString("ProjectImpl{uuid='some uuid', key='some key', name='some name'}");


} }
} }

+ 2
- 2
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/api/posttask/QualityGateImplTest.java View File

public void verify_toString() { public void verify_toString() {
when(condition.toString()).thenReturn("{Condition}"); when(condition.toString()).thenReturn("{Condition}");


assertThat(underTest.toString())
.isEqualTo("QualityGateImpl{id='some id', name='some name', status=OK, conditions=[{Condition}]}");
assertThat(underTest)
.hasToString("QualityGateImpl{id='some id', name='some name', status=OK, conditions=[{Condition}]}");
} }
} }

+ 3
- 10
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/component/CallRecorderPathAwareVisitor.java View File

*/ */
package org.sonar.ce.task.projectanalysis.component; package org.sonar.ce.task.projectanalysis.component;


import com.google.common.base.Function;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.NoSuchElementException; import java.util.NoSuchElementException;
import javax.annotation.Nonnull;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;


import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.collect.FluentIterable.from;


class CallRecorderPathAwareVisitor extends PathAwareVisitorAdapter<Integer> { class CallRecorderPathAwareVisitor extends PathAwareVisitorAdapter<Integer> {
final List<PathAwareCallRecord> callsRecords = new ArrayList<>(); final List<PathAwareCallRecord> callsRecords = new ArrayList<>();
} }


private static List<Integer> toValueList(Path<Integer> path) { private static List<Integer> toValueList(Path<Integer> path) {
return from(path.getCurrentPath()).transform(new Function<PathElement<Integer>, Integer>() {
@Nonnull
@Override
public Integer apply(@Nonnull PathElement<Integer> input) {
return input.getElement();
}
}).toList();
return StreamSupport.stream(path.getCurrentPath().spliterator(), false).map(PathElement::getElement).collect(Collectors.toList());
} }


private static Integer getParent(Path<Integer> path) { private static Integer getParent(Path<Integer> path) {

+ 3
- 3
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/component/ComponentImplTest.java View File

public void hashCode_is_hashcode_of_uuid() { public void hashCode_is_hashcode_of_uuid() {
ComponentImpl.Builder builder = buildSimpleComponent(FILE, "1").setUuid(UUID); ComponentImpl.Builder builder = buildSimpleComponent(FILE, "1").setUuid(UUID);


assertThat(builder.build().hashCode()).isEqualTo(builder.build().hashCode());
assertThat(builder.build().hashCode()).isEqualTo(buildSimpleComponent(FILE, "2").setUuid(UUID).build().hashCode());
assertThat(builder.build().hashCode()).isEqualTo(UUID.hashCode());
assertThat(builder.build()).hasSameHashCodeAs(builder.build().hashCode());
assertThat(builder.build()).hasSameHashCodeAs(buildSimpleComponent(FILE, "2").setUuid(UUID).build().hashCode());
assertThat(builder.build()).hasSameHashCodeAs(UUID.hashCode());
} }


private static ComponentImpl.Builder buildSimpleComponent(Component.Type type, String dbKey) { private static ComponentImpl.Builder buildSimpleComponent(Component.Type type, String dbKey) {

+ 2
- 2
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/component/ComponentTreeBuilderTest.java View File

Component root = call(project); Component root = call(project);
Component dir = root.getChildren().iterator().next(); Component dir = root.getChildren().iterator().next();
Component file = dir.getChildren().iterator().next(); Component file = dir.getChildren().iterator().next();
assertThat(file.getFileAttributes().getLines()).isEqualTo(1);
assertThat(file.getFileAttributes().getLines()).isOne();
assertThat(file.getFileAttributes().getLanguageKey()).isNull(); assertThat(file.getFileAttributes().getLanguageKey()).isNull();
assertThat(file.getFileAttributes().isUnitTest()).isFalse(); assertThat(file.getFileAttributes().isUnitTest()).isFalse();
} }
Component root = call(project); Component root = call(project);
Component dir = root.getChildren().iterator().next(); Component dir = root.getChildren().iterator().next();
Component file = dir.getChildren().iterator().next(); Component file = dir.getChildren().iterator().next();
assertThat(file.getFileAttributes().getLines()).isEqualTo(1);
assertThat(file.getFileAttributes().getLines()).isOne();
assertThat(file.getFileAttributes().getLanguageKey()).isEqualTo("js"); assertThat(file.getFileAttributes().getLanguageKey()).isEqualTo("js");
assertThat(file.getFileAttributes().isUnitTest()).isTrue(); assertThat(file.getFileAttributes().isUnitTest()).isTrue();
} }

+ 2
- 2
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/component/FileAttributesTest.java View File



@Test @Test
public void test_toString() { public void test_toString() {
assertThat(new FileAttributes(true, "java", 10).toString()).isEqualTo("FileAttributes{languageKey='java', unitTest=true, lines=10}");
assertThat(new FileAttributes(false, null, 1).toString()).isEqualTo("FileAttributes{languageKey='null', unitTest=false, lines=1}");
assertThat(new FileAttributes(true, "java", 10)).hasToString("FileAttributes{languageKey='java', unitTest=true, lines=10}");
assertThat(new FileAttributes(false, null, 1)).hasToString("FileAttributes{languageKey='null', unitTest=false, lines=1}");
} }
} }

+ 4
- 15
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/container/ProjectAnalysisTaskContainerPopulatorTest.java View File

package org.sonar.ce.task.projectanalysis.container; package org.sonar.ce.task.projectanalysis.container;


import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import java.lang.reflect.Modifier; import java.lang.reflect.Modifier;
import java.util.ArrayList; import java.util.ArrayList;
import org.sonar.core.platform.ComponentContainer; import org.sonar.core.platform.ComponentContainer;
import org.sonar.core.util.stream.MoreCollectors; import org.sonar.core.util.stream.MoreCollectors;


import static com.google.common.collect.FluentIterable.from;
import static com.google.common.collect.Sets.difference; import static com.google.common.collect.Sets.difference;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;


@Override @Override
public <T> List<T> getComponentsByType(final Class<T> type) { public <T> List<T> getComponentsByType(final Class<T> type) {
return from(added)
.filter(new Predicate<Object>() {
@Override
public boolean apply(@Nonnull Object input) {
return input.getClass().getSimpleName().contains(type.getSimpleName());
}
}).transform(new Function<Object, T>() {
@Override
@Nonnull
public T apply(@Nonnull Object input) {
return (T) input;
}
}).toList();
return added.stream()
.filter(input -> input.getClass().getSimpleName().contains(type.getSimpleName()))
.map(input -> (T) input)
.collect(Collectors.toList());
} }
} }



+ 2
- 2
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/duplication/CrossProjectDuplicateTest.java View File

@Test @Test
public void hashcode_depends_on_file_and_TextBlock() { public void hashcode_depends_on_file_and_TextBlock() {
TextBlock textBlock = new TextBlock(1, 2); TextBlock textBlock = new TextBlock(1, 2);
assertThat(new CrossProjectDuplicate(FILE_KEY_1, textBlock).hashCode()).isEqualTo(new CrossProjectDuplicate(FILE_KEY_1, textBlock).hashCode());
assertThat(new CrossProjectDuplicate(FILE_KEY_1, textBlock)).hasSameHashCodeAs(new CrossProjectDuplicate(FILE_KEY_1, textBlock));


assertThat(new CrossProjectDuplicate(FILE_KEY_1, textBlock).hashCode()).isNotEqualTo(new CrossProjectDuplicate(FILE_KEY_2, textBlock).hashCode()); assertThat(new CrossProjectDuplicate(FILE_KEY_1, textBlock).hashCode()).isNotEqualTo(new CrossProjectDuplicate(FILE_KEY_2, textBlock).hashCode());
assertThat(new CrossProjectDuplicate(FILE_KEY_1, textBlock).hashCode()).isNotEqualTo(new CrossProjectDuplicate(FILE_KEY_2, new TextBlock(1, 1)).hashCode()); assertThat(new CrossProjectDuplicate(FILE_KEY_1, textBlock).hashCode()).isNotEqualTo(new CrossProjectDuplicate(FILE_KEY_2, new TextBlock(1, 1)).hashCode());


@Test @Test
public void verify_toString() { public void verify_toString() {
assertThat(new CrossProjectDuplicate(FILE_KEY_1, new TextBlock(1, 2)).toString()).isEqualTo("CrossProjectDuplicate{fileKey='file key 1', textBlock=TextBlock{start=1, end=2}}");
assertThat(new CrossProjectDuplicate(FILE_KEY_1, new TextBlock(1, 2))).hasToString("CrossProjectDuplicate{fileKey='file key 1', textBlock=TextBlock{start=1, end=2}}");
} }


} }

+ 2
- 14
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/duplication/DuplicationRepositoryRule.java View File

*/ */
package org.sonar.ce.task.projectanalysis.duplication; package org.sonar.ce.task.projectanalysis.duplication;


import com.google.common.base.Function;
import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.stream.Collectors;
import javax.annotation.CheckForNull; import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
import org.junit.rules.ExternalResource; import org.junit.rules.ExternalResource;
import org.sonar.ce.task.projectanalysis.component.Component; import org.sonar.ce.task.projectanalysis.component.Component;
import org.sonar.ce.task.projectanalysis.component.ComponentProvider; import org.sonar.ce.task.projectanalysis.component.ComponentProvider;
import org.sonar.ce.task.projectanalysis.component.TreeRootHolderRule; import org.sonar.ce.task.projectanalysis.component.TreeRootHolderRule;


import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.collect.FluentIterable.from;
import static java.util.Objects.requireNonNull; import static java.util.Objects.requireNonNull;


public class DuplicationRepositoryRule extends ExternalResource implements DuplicationRepository { public class DuplicationRepositoryRule extends ExternalResource implements DuplicationRepository {
component, component,
new Duplication( new Duplication(
original, original,
from(Arrays.asList(duplicates)).transform(TextBlockToInnerDuplicate.INSTANCE).toList()));
Arrays.stream(duplicates).map(InnerDuplicate::new).collect(Collectors.toList())));


return this; return this;
} }
requireNonNull(this.componentProvider, "Methods with component reference can not be used unless a TreeRootHolder has been provided when instantiating the rule"); requireNonNull(this.componentProvider, "Methods with component reference can not be used unless a TreeRootHolder has been provided when instantiating the rule");
this.componentProvider.ensureInitialized(); this.componentProvider.ensureInitialized();
} }

private enum TextBlockToInnerDuplicate implements Function<TextBlock, Duplicate> {
INSTANCE;

@Override
@Nonnull
public Duplicate apply(@Nonnull TextBlock input) {
return new InnerDuplicate(input);
}
}
} }

+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/duplication/DuplicationTest.java View File

public void hashcode_is_based_on_original_only() { public void hashcode_is_based_on_original_only() {
Duplication duplication = new Duplication(SOME_ORIGINAL_TEXTBLOCK, Arrays.asList(new InnerDuplicate(TEXT_BLOCK_1))); Duplication duplication = new Duplication(SOME_ORIGINAL_TEXTBLOCK, Arrays.asList(new InnerDuplicate(TEXT_BLOCK_1)));


assertThat(duplication.hashCode()).isEqualTo(new Duplication(SOME_ORIGINAL_TEXTBLOCK, Arrays.asList(new InnerDuplicate(TEXT_BLOCK_1))).hashCode());
assertThat(duplication).hasSameHashCodeAs(new Duplication(SOME_ORIGINAL_TEXTBLOCK, Arrays.asList(new InnerDuplicate(TEXT_BLOCK_1))));
assertThat(duplication.hashCode()).isNotEqualTo(new Duplication(SOME_ORIGINAL_TEXTBLOCK, Arrays.asList(new InnerDuplicate(TEXT_BLOCK_2))).hashCode()); assertThat(duplication.hashCode()).isNotEqualTo(new Duplication(SOME_ORIGINAL_TEXTBLOCK, Arrays.asList(new InnerDuplicate(TEXT_BLOCK_2))).hashCode());
assertThat(duplication.hashCode()).isNotEqualTo(new Duplication(TEXT_BLOCK_1, Arrays.asList(new InnerDuplicate(SOME_ORIGINAL_TEXTBLOCK))).hashCode()); assertThat(duplication.hashCode()).isNotEqualTo(new Duplication(TEXT_BLOCK_1, Arrays.asList(new InnerDuplicate(SOME_ORIGINAL_TEXTBLOCK))).hashCode());
} }

+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/duplication/InProjectDuplicateTest.java View File

@Test @Test
public void hashcode_depends_on_file_and_TextBlock() { public void hashcode_depends_on_file_and_TextBlock() {
TextBlock textBlock = new TextBlock(1, 2); TextBlock textBlock = new TextBlock(1, 2);
assertThat(new InProjectDuplicate(FILE_1, textBlock).hashCode()).isEqualTo(new InProjectDuplicate(FILE_1, textBlock).hashCode());
assertThat(new InProjectDuplicate(FILE_1, textBlock)).hasSameHashCodeAs(new InProjectDuplicate(FILE_1, textBlock));


assertThat(new InProjectDuplicate(FILE_1, textBlock).hashCode()).isNotEqualTo(new InProjectDuplicate(FILE_2, textBlock).hashCode()); assertThat(new InProjectDuplicate(FILE_1, textBlock).hashCode()).isNotEqualTo(new InProjectDuplicate(FILE_2, textBlock).hashCode());
assertThat(new InProjectDuplicate(FILE_1, textBlock).hashCode()).isNotEqualTo(new InProjectDuplicate(FILE_2, new TextBlock(1, 1)).hashCode()); assertThat(new InProjectDuplicate(FILE_1, textBlock).hashCode()).isNotEqualTo(new InProjectDuplicate(FILE_2, new TextBlock(1, 1)).hashCode());

+ 2
- 2
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/duplication/InnerDuplicateTest.java View File

@Test @Test
public void hashcode_is_TextBlock_hashcode() { public void hashcode_is_TextBlock_hashcode() {
TextBlock textBlock = new TextBlock(1, 2); TextBlock textBlock = new TextBlock(1, 2);
assertThat(new InnerDuplicate(textBlock).hashCode()).isEqualTo(textBlock.hashCode());
assertThat(new InnerDuplicate(textBlock)).hasSameHashCodeAs(textBlock);
} }


@Test @Test
public void verify_toString() { public void verify_toString() {
assertThat(new InnerDuplicate(new TextBlock(1, 2)).toString()).isEqualTo("InnerDuplicate{textBlock=TextBlock{start=1, end=2}}");
assertThat(new InnerDuplicate(new TextBlock(1, 2))).hasToString("InnerDuplicate{textBlock=TextBlock{start=1, end=2}}");
} }
} }

+ 3
- 3
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/duplication/TextBlockTest.java View File



@Test @Test
public void hashcode_is_based__on_start_and_end() { public void hashcode_is_based__on_start_and_end() {
assertThat(new TextBlock(15, 15).hashCode()).isEqualTo(new TextBlock(15, 15).hashCode());
assertThat(new TextBlock(15, 300).hashCode()).isEqualTo(new TextBlock(15, 300).hashCode());
assertThat(new TextBlock(15, 15)).hasSameHashCodeAs(new TextBlock(15, 15));
assertThat(new TextBlock(15, 300)).hasSameHashCodeAs(new TextBlock(15, 300));
assertThat(new TextBlock(15, 300).hashCode()).isNotEqualTo(new TextBlock(15, 15).hashCode()); assertThat(new TextBlock(15, 300).hashCode()).isNotEqualTo(new TextBlock(15, 15).hashCode());
} }




@Test @Test
public void verify_toString() { public void verify_toString() {
assertThat(new TextBlock(13, 400).toString()).isEqualTo("TextBlock{start=13, end=400}");
assertThat(new TextBlock(13, 400)).hasToString("TextBlock{start=13, end=400}");


} }
} }

+ 4
- 3
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/event/EventTest.java View File

@Test @Test
public void same_name_and_category_make_equal_events() { public void same_name_and_category_make_equal_events() {
Event source = Event.createAlert(SOME_NAME, null, null); Event source = Event.createAlert(SOME_NAME, null, null);
assertThat(source).isEqualTo(Event.createAlert(SOME_NAME, null, null));
assertThat(source).isEqualTo(source);
assertThat(source).isNotEqualTo(null);
assertThat(source)
.isEqualTo(Event.createAlert(SOME_NAME, null, null))
.isEqualTo(source)
.isNotNull();
} }
} }

+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/filemove/FileMoveDetectionStepTest.java View File



assertThat(movedFilesRepository.getComponentsWithOriginal()).isEmpty(); assertThat(movedFilesRepository.getComponentsWithOriginal()).isEmpty();
assertThat(scoreMatrixDumper.scoreMatrix.getMaxScore()) assertThat(scoreMatrixDumper.scoreMatrix.getMaxScore())
.isGreaterThan(0)
.isPositive()
.isLessThan(MIN_REQUIRED_SCORE); .isLessThan(MIN_REQUIRED_SCORE);
assertThat(addedFileRepository.getComponents()).contains(file2); assertThat(addedFileRepository.getComponents()).contains(file2);
verifyStatistics(context, 1, 1, 1, 0); verifyStatistics(context, 1, 1, 1, 0);

+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/filemove/MatchTest.java View File



@Test @Test
public void toString_prints_both_properties() { public void toString_prints_both_properties() {
assertThat(underTest.toString()).isEqualTo("{key=>reportKey}");
assertThat(underTest).hasToString("{key=>reportKey}");
} }
} }

+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/formula/counter/LongValueTest.java View File



private static void verifyUnsetVariationValue(LongValue variationValue) { private static void verifyUnsetVariationValue(LongValue variationValue) {
assertThat(variationValue.isSet()).isFalse(); assertThat(variationValue.isSet()).isFalse();
assertThat(variationValue.getValue()).isEqualTo(0L);
assertThat(variationValue.getValue()).isZero();
} }


private static void verifySetVariationValue(LongValue variationValue, long expected) { private static void verifySetVariationValue(LongValue variationValue, long expected) {

+ 2
- 2
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/formula/coverage/CoverageUtilsTest.java View File



@Test @Test
public void getLongMeasureValue_returns_0_if_measure_does_not_exist() { public void getLongMeasureValue_returns_0_if_measure_does_not_exist() {
assertThat(getLongMeasureValue(fileAggregateContext, SOME_METRIC_KEY)).isEqualTo(0L);
assertThat(getLongMeasureValue(fileAggregateContext, SOME_METRIC_KEY)).isZero();
} }


@Test @Test
public void getLongMeasureValue_returns_0_if_measure_is_NO_VALUE() { public void getLongMeasureValue_returns_0_if_measure_is_NO_VALUE() {
fileAggregateContext.put(SOME_METRIC_KEY, newMeasureBuilder().createNoValue()); fileAggregateContext.put(SOME_METRIC_KEY, newMeasureBuilder().createNoValue());


assertThat(getLongMeasureValue(fileAggregateContext, SOME_METRIC_KEY)).isEqualTo(0L);
assertThat(getLongMeasureValue(fileAggregateContext, SOME_METRIC_KEY)).isZero();
} }


@Test @Test

+ 2
- 2
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/issue/DebtCalculatorTest.java View File

public void copy_effort_for_external_issues() { public void copy_effort_for_external_issues() {
issue.setGap(null); issue.setGap(null);
issue.setIsFromExternalRuleEngine(true); issue.setIsFromExternalRuleEngine(true);
issue.setEffort(Duration.create(20l));
issue.setEffort(Duration.create(20L));
rule.setFunction(null); rule.setFunction(null);


assertThat(underTest.calculate(issue).toMinutes()).isEqualTo(20l);
assertThat(underTest.calculate(issue).toMinutes()).isEqualTo(20L);
} }


@Test @Test

+ 7
- 7
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/issue/NewAdHocRuleTest.java View File

NewAdHocRule adHocRule2 = new NewAdHocRule(ScannerReport.ExternalIssue.newBuilder().setEngineId("eslint").setRuleId("no-cond-assign").build()); NewAdHocRule adHocRule2 = new NewAdHocRule(ScannerReport.ExternalIssue.newBuilder().setEngineId("eslint").setRuleId("no-cond-assign").build());
NewAdHocRule anotherAdHocRule = new NewAdHocRule(ScannerReport.ExternalIssue.newBuilder().setEngineId("eslint").setRuleId("another").build()); NewAdHocRule anotherAdHocRule = new NewAdHocRule(ScannerReport.ExternalIssue.newBuilder().setEngineId("eslint").setRuleId("another").build());


assertThat(adHocRule1).isEqualTo(adHocRule1);
assertThat(adHocRule1).isEqualTo(adHocRule2);
assertThat(adHocRule1).isNotEqualTo(null);
assertThat(adHocRule1).isNotEqualTo(anotherAdHocRule);
assertThat(adHocRule1.hashCode()).isEqualTo(adHocRule1.hashCode());
assertThat(adHocRule1.hashCode()).isEqualTo(adHocRule2.hashCode());
assertThat(adHocRule1)
.isEqualTo(adHocRule1)
.isEqualTo(adHocRule2)
.isNotNull()
.isNotEqualTo(anotherAdHocRule)
.hasSameHashCodeAs(adHocRule1)
.hasSameHashCodeAs(adHocRule2);
assertThat(adHocRule1.hashCode()).isNotEqualTo(anotherAdHocRule.hashCode()); assertThat(adHocRule1.hashCode()).isNotEqualTo(anotherAdHocRule.hashCode());
} }
} }

+ 3
- 3
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/issue/TrackerRawInputFactoryTest.java View File

.setEngineId("eslint") .setEngineId("eslint")
.setRuleId("S001") .setRuleId("S001")
.setSeverity(Constants.Severity.BLOCKER) .setSeverity(Constants.Severity.BLOCKER)
.setEffort(20l)
.setEffort(20L)
.setType(issueType) .setType(issueType)
.build(); .build();
reportReader.putExternalIssues(FILE.getReportAttributes().getRef(), asList(reportIssue)); reportReader.putExternalIssues(FILE.getReportAttributes().getRef(), asList(reportIssue));
assertThat(issue.ruleKey()).isEqualTo(RuleKey.of("external_eslint", "S001")); assertThat(issue.ruleKey()).isEqualTo(RuleKey.of("external_eslint", "S001"));
assertThat(issue.severity()).isEqualTo(Severity.BLOCKER); assertThat(issue.severity()).isEqualTo(Severity.BLOCKER);
assertThat(issue.line()).isEqualTo(2); assertThat(issue.line()).isEqualTo(2);
assertThat(issue.effort()).isEqualTo(Duration.create(20l));
assertThat(issue.effort()).isEqualTo(Duration.create(20L));
assertThat(issue.message()).isEqualTo("the message"); assertThat(issue.message()).isEqualTo("the message");
assertThat(issue.type()).isEqualTo(expectedRuleType); assertThat(issue.type()).isEqualTo(expectedRuleType);


assertThat(issue.ruleKey()).isEqualTo(RuleKey.of("external_eslint", "S001")); assertThat(issue.ruleKey()).isEqualTo(RuleKey.of("external_eslint", "S001"));
assertThat(issue.severity()).isEqualTo(Severity.BLOCKER); assertThat(issue.severity()).isEqualTo(Severity.BLOCKER);
assertThat(issue.line()).isEqualTo(2); assertThat(issue.line()).isEqualTo(2);
assertThat(issue.effort()).isEqualTo(Duration.create(0l));
assertThat(issue.effort()).isEqualTo(Duration.create(0L));
assertThat(issue.message()).isEqualTo("the message"); assertThat(issue.message()).isEqualTo("the message");
assertThat(issue.type()).isEqualTo(expectedRuleType); assertThat(issue.type()).isEqualTo(expectedRuleType);



+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/issue/filter/IssuePatternTest.java View File

public void test_to_string() { public void test_to_string() {
IssuePattern pattern = new IssuePattern("*", "checkstyle:*"); IssuePattern pattern = new IssuePattern("*", "checkstyle:*");


assertThat(pattern.toString()).isEqualTo(
assertThat(pattern).hasToString(
"IssuePattern{componentPattern=*, rulePattern=checkstyle:*}"); "IssuePattern{componentPattern=*, rulePattern=checkstyle:*}");
} }
} }

+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/language/HandleUnanalyzedLanguagesStepTest.java View File

"1 unanalyzed C++ file was detected in this project during the last analysis. C++ cannot be analyzed with your current SonarQube edition. Please" + "1 unanalyzed C++ file was detected in this project during the last analysis. C++ cannot be analyzed with your current SonarQube edition. Please" +
" consider <a target=\"_blank\" href=\"https://www.sonarqube.org/trial-request/developer-edition/?referrer=sonarqube-cpp\">upgrading to Developer" + " consider <a target=\"_blank\" href=\"https://www.sonarqube.org/trial-request/developer-edition/?referrer=sonarqube-cpp\">upgrading to Developer" +
" Edition</a> to find Bugs, Code Smells, Vulnerabilities and Security Hotspots in this file."); " Edition</a> to find Bugs, Code Smells, Vulnerabilities and Security Hotspots in this file.");
assertThat(measureRepository.getAddedRawMeasure(PROJECT_REF, UNANALYZED_CPP_KEY).get().getIntValue()).isEqualTo(1);
assertThat(measureRepository.getAddedRawMeasure(PROJECT_REF, UNANALYZED_CPP_KEY).get().getIntValue()).isOne();
assertThat(measureRepository.getAddedRawMeasure(PROJECT_REF, UNANALYZED_C_KEY)).isEmpty(); assertThat(measureRepository.getAddedRawMeasure(PROJECT_REF, UNANALYZED_C_KEY)).isEmpty();
} }



+ 3
- 3
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/language/LanguageRepositoryImplTest.java View File



@Test @Test
public void find_on_empty_LanguageRepository_returns_absent() { public void find_on_empty_LanguageRepository_returns_absent() {
assertThat(new LanguageRepositoryImpl().find(ANY_KEY).isPresent()).isFalse();
assertThat(new LanguageRepositoryImpl().find(ANY_KEY)).isEmpty();
} }


@Test @Test
public void find_by_key_returns_the_same_object() { public void find_by_key_returns_the_same_object() {
LanguageRepositoryImpl languageRepository = new LanguageRepositoryImpl(SOME_LANGUAGE); LanguageRepositoryImpl languageRepository = new LanguageRepositoryImpl(SOME_LANGUAGE);
Optional<Language> language = languageRepository.find(SOME_LANGUAGE_KEY); Optional<Language> language = languageRepository.find(SOME_LANGUAGE_KEY);
assertThat(language.isPresent()).isTrue();
assertThat(language).isPresent();
assertThat(language.get()).isSameAs(SOME_LANGUAGE); assertThat(language.get()).isSameAs(SOME_LANGUAGE);
} }


public void find_by_other_key_returns_absent() { public void find_by_other_key_returns_absent() {
LanguageRepositoryImpl languageRepository = new LanguageRepositoryImpl(SOME_LANGUAGE); LanguageRepositoryImpl languageRepository = new LanguageRepositoryImpl(SOME_LANGUAGE);
Optional<Language> language = languageRepository.find(ANY_KEY); Optional<Language> language = languageRepository.find(ANY_KEY);
assertThat(language.isPresent()).isFalse();
assertThat(language).isEmpty();
} }


private static Language createLanguage(final String key, final String nameSuffix) { private static Language createLanguage(final String key, final String nameSuffix) {

+ 14
- 14
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/measure/BatchMeasureToMeasureTest.java View File

public void toMeasure_returns_no_value_if_dto_has_no_value_for_Int_Metric() { public void toMeasure_returns_no_value_if_dto_has_no_value_for_Int_Metric() {
Optional<Measure> measure = underTest.toMeasure(EMPTY_BATCH_MEASURE, SOME_INT_METRIC); Optional<Measure> measure = underTest.toMeasure(EMPTY_BATCH_MEASURE, SOME_INT_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE);
} }




Optional<Measure> measure = underTest.toMeasure(batchMeasure, SOME_INT_METRIC); Optional<Measure> measure = underTest.toMeasure(batchMeasure, SOME_INT_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.INT); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.INT);
assertThat(measure.get().getIntValue()).isEqualTo(10); assertThat(measure.get().getIntValue()).isEqualTo(10);
assertThat(measure.get().getData()).isEqualTo(SOME_DATA); assertThat(measure.get().getData()).isEqualTo(SOME_DATA);
public void toMeasure_returns_no_value_if_dto_has_no_value_for_Long_Metric() { public void toMeasure_returns_no_value_if_dto_has_no_value_for_Long_Metric() {
Optional<Measure> measure = underTest.toMeasure(EMPTY_BATCH_MEASURE, SOME_LONG_METRIC); Optional<Measure> measure = underTest.toMeasure(EMPTY_BATCH_MEASURE, SOME_LONG_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE);
} }


@Test @Test
public void toMeasure_returns_long_part_of_value_in_dto_for_Long_Metric() { public void toMeasure_returns_long_part_of_value_in_dto_for_Long_Metric() {
Optional<Measure> measure = underTest.toMeasure(ScannerReport.Measure.newBuilder().setLongValue(LongValue.newBuilder().setValue(15l)).build(), SOME_LONG_METRIC);
Optional<Measure> measure = underTest.toMeasure(ScannerReport.Measure.newBuilder().setLongValue(LongValue.newBuilder().setValue(15L)).build(), SOME_LONG_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.LONG); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.LONG);
assertThat(measure.get().getLongValue()).isEqualTo(15); assertThat(measure.get().getLongValue()).isEqualTo(15);
} }
@Test @Test
public void toMeasure_maps_data_and_alert_properties_in_dto_for_Long_Metric() { public void toMeasure_maps_data_and_alert_properties_in_dto_for_Long_Metric() {
ScannerReport.Measure batchMeasure = ScannerReport.Measure.newBuilder() ScannerReport.Measure batchMeasure = ScannerReport.Measure.newBuilder()
.setLongValue(LongValue.newBuilder().setValue(10l).setData(SOME_DATA))
.setLongValue(LongValue.newBuilder().setValue(10L).setData(SOME_DATA))
.build(); .build();


Optional<Measure> measure = underTest.toMeasure(batchMeasure, SOME_LONG_METRIC); Optional<Measure> measure = underTest.toMeasure(batchMeasure, SOME_LONG_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.LONG); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.LONG);
assertThat(measure.get().getLongValue()).isEqualTo(10); assertThat(measure.get().getLongValue()).isEqualTo(10);
assertThat(measure.get().getData()).isEqualTo(SOME_DATA); assertThat(measure.get().getData()).isEqualTo(SOME_DATA);
public void toMeasure_returns_no_value_if_dto_has_no_value_for_Double_Metric() { public void toMeasure_returns_no_value_if_dto_has_no_value_for_Double_Metric() {
Optional<Measure> measure = underTest.toMeasure(EMPTY_BATCH_MEASURE, SOME_DOUBLE_METRIC); Optional<Measure> measure = underTest.toMeasure(EMPTY_BATCH_MEASURE, SOME_DOUBLE_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE);
} }




Optional<Measure> measure = underTest.toMeasure(batchMeasure, SOME_DOUBLE_METRIC); Optional<Measure> measure = underTest.toMeasure(batchMeasure, SOME_DOUBLE_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.DOUBLE); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.DOUBLE);
assertThat(measure.get().getDoubleValue()).isEqualTo(10.6395d); assertThat(measure.get().getDoubleValue()).isEqualTo(10.6395d);
assertThat(measure.get().getData()).isEqualTo(SOME_DATA); assertThat(measure.get().getData()).isEqualTo(SOME_DATA);
public void toMeasure_returns_no_value_if_dto_has_no_value_for_Boolean_metric() { public void toMeasure_returns_no_value_if_dto_has_no_value_for_Boolean_metric() {
Optional<Measure> measure = underTest.toMeasure(EMPTY_BATCH_MEASURE, SOME_BOOLEAN_METRIC); Optional<Measure> measure = underTest.toMeasure(EMPTY_BATCH_MEASURE, SOME_BOOLEAN_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE);
} }


private void verify_toMeasure_returns_false_value_if_dto_has_invalid_value_for_Boolean_metric(boolean expected) { private void verify_toMeasure_returns_false_value_if_dto_has_invalid_value_for_Boolean_metric(boolean expected) {
Optional<Measure> measure = underTest.toMeasure(ScannerReport.Measure.newBuilder().setBooleanValue(BoolValue.newBuilder().setValue(expected)).build(), SOME_BOOLEAN_METRIC); Optional<Measure> measure = underTest.toMeasure(ScannerReport.Measure.newBuilder().setBooleanValue(BoolValue.newBuilder().setValue(expected)).build(), SOME_BOOLEAN_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.BOOLEAN); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.BOOLEAN);
assertThat(measure.get().getBooleanValue()).isEqualTo(expected); assertThat(measure.get().getBooleanValue()).isEqualTo(expected);
} }


Optional<Measure> measure = underTest.toMeasure(batchMeasure, SOME_BOOLEAN_METRIC); Optional<Measure> measure = underTest.toMeasure(batchMeasure, SOME_BOOLEAN_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.BOOLEAN); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.BOOLEAN);
assertThat(measure.get().getBooleanValue()).isTrue(); assertThat(measure.get().getBooleanValue()).isTrue();
assertThat(measure.get().getData()).isEqualTo(SOME_DATA); assertThat(measure.get().getData()).isEqualTo(SOME_DATA);
public void toMeasure_returns_no_value_if_dto_has_no_value_for_String_Metric() { public void toMeasure_returns_no_value_if_dto_has_no_value_for_String_Metric() {
Optional<Measure> measure = underTest.toMeasure(EMPTY_BATCH_MEASURE, SOME_STRING_METRIC); Optional<Measure> measure = underTest.toMeasure(EMPTY_BATCH_MEASURE, SOME_STRING_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE);
} }




Optional<Measure> measure = underTest.toMeasure(batchMeasure, SOME_STRING_METRIC); Optional<Measure> measure = underTest.toMeasure(batchMeasure, SOME_STRING_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.STRING); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.STRING);
assertThat(measure.get().getStringValue()).isEqualTo(SOME_DATA); assertThat(measure.get().getStringValue()).isEqualTo(SOME_DATA);
assertThat(measure.get().getData()).isEqualTo(SOME_DATA); assertThat(measure.get().getData()).isEqualTo(SOME_DATA);

+ 11
- 11
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/measure/LiveMeasureDtoToMeasureTest.java View File

public void toMeasure_returns_no_value_if_dto_has_no_value_for_Int_Metric() { public void toMeasure_returns_no_value_if_dto_has_no_value_for_Int_Metric() {
Optional<Measure> measure = underTest.toMeasure(EMPTY_MEASURE_DTO, SOME_INT_METRIC); Optional<Measure> measure = underTest.toMeasure(EMPTY_MEASURE_DTO, SOME_INT_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE);
} }


public void toMeasure_returns_int_part_of_value_in_dto_for_Int_Metric() { public void toMeasure_returns_int_part_of_value_in_dto_for_Int_Metric() {
Optional<Measure> measure = underTest.toMeasure(new LiveMeasureDto().setValue(1.5d), SOME_INT_METRIC); Optional<Measure> measure = underTest.toMeasure(new LiveMeasureDto().setValue(1.5d), SOME_INT_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.INT); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.INT);
assertThat(measure.get().getIntValue()).isEqualTo(1);
assertThat(measure.get().getIntValue()).isOne();
} }


@Test @Test
public void toMeasure_returns_no_value_if_dto_has_no_value_for_Long_Metric() { public void toMeasure_returns_no_value_if_dto_has_no_value_for_Long_Metric() {
Optional<Measure> measure = underTest.toMeasure(EMPTY_MEASURE_DTO, SOME_LONG_METRIC); Optional<Measure> measure = underTest.toMeasure(EMPTY_MEASURE_DTO, SOME_LONG_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE);
} }


public void toMeasure_returns_long_part_of_value_in_dto_for_Long_Metric() { public void toMeasure_returns_long_part_of_value_in_dto_for_Long_Metric() {
Optional<Measure> measure = underTest.toMeasure(new LiveMeasureDto().setValue(1.5d), SOME_LONG_METRIC); Optional<Measure> measure = underTest.toMeasure(new LiveMeasureDto().setValue(1.5d), SOME_LONG_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.LONG); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.LONG);
assertThat(measure.get().getLongValue()).isEqualTo(1);
assertThat(measure.get().getLongValue()).isOne();
} }


@Test @Test
public void toMeasure_returns_no_value_if_dto_has_no_value_for_Double_Metric() { public void toMeasure_returns_no_value_if_dto_has_no_value_for_Double_Metric() {
Optional<Measure> measure = underTest.toMeasure(EMPTY_MEASURE_DTO, SOME_DOUBLE_METRIC); Optional<Measure> measure = underTest.toMeasure(EMPTY_MEASURE_DTO, SOME_DOUBLE_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE);
} }


public void toMeasure_returns_no_value_if_dto_has_no_value_for_Boolean_metric() { public void toMeasure_returns_no_value_if_dto_has_no_value_for_Boolean_metric() {
Optional<Measure> measure = underTest.toMeasure(EMPTY_MEASURE_DTO, SOME_BOOLEAN_METRIC); Optional<Measure> measure = underTest.toMeasure(EMPTY_MEASURE_DTO, SOME_BOOLEAN_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE);
} }


public void toMeasure_returns_false_value_if_dto_has_invalid_value_for_Boolean_metric() { public void toMeasure_returns_false_value_if_dto_has_invalid_value_for_Boolean_metric() {
Optional<Measure> measure = underTest.toMeasure(new LiveMeasureDto().setValue(1.987d), SOME_BOOLEAN_METRIC); Optional<Measure> measure = underTest.toMeasure(new LiveMeasureDto().setValue(1.987d), SOME_BOOLEAN_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.BOOLEAN); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.BOOLEAN);
assertThat(measure.get().getBooleanValue()).isFalse(); assertThat(measure.get().getBooleanValue()).isFalse();
} }
public void toMeasure_returns_no_value_if_dto_has_no_value_for_String_Metric() { public void toMeasure_returns_no_value_if_dto_has_no_value_for_String_Metric() {
Optional<Measure> measure = underTest.toMeasure(EMPTY_MEASURE_DTO, SOME_STRING_METRIC); Optional<Measure> measure = underTest.toMeasure(EMPTY_MEASURE_DTO, SOME_STRING_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE);
} }


@Test @Test
@UseDataProvider("all_types_LiveMeasureDtos") @UseDataProvider("all_types_LiveMeasureDtos")
public void toMeasure_creates_MeasureVariation_and_maps_the_right_one(LiveMeasureDto builder, Metric metric) { public void toMeasure_creates_MeasureVariation_and_maps_the_right_one(LiveMeasureDto builder, Metric metric) {
assertThat(underTest.toMeasure(builder.setVariation(1d), metric).get().getVariation()).isEqualTo(1);
assertThat(underTest.toMeasure(builder.setVariation(1d), metric).get().getVariation()).isOne();
} }


@Test @Test

+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/measure/MapBasedRawMeasureRepositoryTest.java View File



private static final List<Measure> MEASURES = ImmutableList.of( private static final List<Measure> MEASURES = ImmutableList.of(
Measure.newMeasureBuilder().create(1), Measure.newMeasureBuilder().create(1),
Measure.newMeasureBuilder().create(1l),
Measure.newMeasureBuilder().create(1L),
Measure.newMeasureBuilder().create(1d, 1), Measure.newMeasureBuilder().create(1d, 1),
Measure.newMeasureBuilder().create(true), Measure.newMeasureBuilder().create(true),
Measure.newMeasureBuilder().create(false), Measure.newMeasureBuilder().create(false),

+ 16
- 16
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/measure/MeasureDtoToMeasureTest.java View File

public void toMeasure_returns_no_value_if_dto_has_no_value_for_Int_Metric() { public void toMeasure_returns_no_value_if_dto_has_no_value_for_Int_Metric() {
Optional<Measure> measure = underTest.toMeasure(EMPTY_MEASURE_DTO, SOME_INT_METRIC); Optional<Measure> measure = underTest.toMeasure(EMPTY_MEASURE_DTO, SOME_INT_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE);
} }


public void toMeasure_returns_int_part_of_value_in_dto_for_Int_Metric() { public void toMeasure_returns_int_part_of_value_in_dto_for_Int_Metric() {
Optional<Measure> measure = underTest.toMeasure(new MeasureDto().setValue(1.5d), SOME_INT_METRIC); Optional<Measure> measure = underTest.toMeasure(new MeasureDto().setValue(1.5d), SOME_INT_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.INT); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.INT);
assertThat(measure.get().getIntValue()).isEqualTo(1);
assertThat(measure.get().getIntValue()).isOne();
} }


@Test @Test


Optional<Measure> measure = underTest.toMeasure(measureDto, SOME_INT_METRIC); Optional<Measure> measure = underTest.toMeasure(measureDto, SOME_INT_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.INT); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.INT);
assertThat(measure.get().getIntValue()).isEqualTo(10); assertThat(measure.get().getIntValue()).isEqualTo(10);
assertThat(measure.get().getData()).isEqualTo(SOME_DATA); assertThat(measure.get().getData()).isEqualTo(SOME_DATA);
public void toMeasure_returns_no_value_if_dto_has_no_value_for_Long_Metric() { public void toMeasure_returns_no_value_if_dto_has_no_value_for_Long_Metric() {
Optional<Measure> measure = underTest.toMeasure(EMPTY_MEASURE_DTO, SOME_LONG_METRIC); Optional<Measure> measure = underTest.toMeasure(EMPTY_MEASURE_DTO, SOME_LONG_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE);
} }


public void toMeasure_returns_long_part_of_value_in_dto_for_Long_Metric() { public void toMeasure_returns_long_part_of_value_in_dto_for_Long_Metric() {
Optional<Measure> measure = underTest.toMeasure(new MeasureDto().setValue(1.5d), SOME_LONG_METRIC); Optional<Measure> measure = underTest.toMeasure(new MeasureDto().setValue(1.5d), SOME_LONG_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.LONG); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.LONG);
assertThat(measure.get().getLongValue()).isEqualTo(1);
assertThat(measure.get().getLongValue()).isOne();
} }


@Test @Test


Optional<Measure> measure = underTest.toMeasure(measureDto, SOME_LONG_METRIC); Optional<Measure> measure = underTest.toMeasure(measureDto, SOME_LONG_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.LONG); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.LONG);
assertThat(measure.get().getLongValue()).isEqualTo(10); assertThat(measure.get().getLongValue()).isEqualTo(10);
assertThat(measure.get().getData()).isEqualTo(SOME_DATA); assertThat(measure.get().getData()).isEqualTo(SOME_DATA);
public void toMeasure_returns_no_value_if_dto_has_no_value_for_Double_Metric() { public void toMeasure_returns_no_value_if_dto_has_no_value_for_Double_Metric() {
Optional<Measure> measure = underTest.toMeasure(EMPTY_MEASURE_DTO, SOME_DOUBLE_METRIC); Optional<Measure> measure = underTest.toMeasure(EMPTY_MEASURE_DTO, SOME_DOUBLE_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE);
} }




Optional<Measure> measure = underTest.toMeasure(measureDto, SOME_DOUBLE_METRIC); Optional<Measure> measure = underTest.toMeasure(measureDto, SOME_DOUBLE_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.DOUBLE); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.DOUBLE);
assertThat(measure.get().getDoubleValue()).isEqualTo(10.6395d); assertThat(measure.get().getDoubleValue()).isEqualTo(10.6395d);
assertThat(measure.get().getData()).isEqualTo(SOME_DATA); assertThat(measure.get().getData()).isEqualTo(SOME_DATA);
public void toMeasure_returns_no_value_if_dto_has_no_value_for_Boolean_metric() { public void toMeasure_returns_no_value_if_dto_has_no_value_for_Boolean_metric() {
Optional<Measure> measure = underTest.toMeasure(EMPTY_MEASURE_DTO, SOME_BOOLEAN_METRIC); Optional<Measure> measure = underTest.toMeasure(EMPTY_MEASURE_DTO, SOME_BOOLEAN_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE);
} }


public void toMeasure_returns_false_value_if_dto_has_invalid_value_for_Boolean_metric() { public void toMeasure_returns_false_value_if_dto_has_invalid_value_for_Boolean_metric() {
Optional<Measure> measure = underTest.toMeasure(new MeasureDto().setValue(1.987d), SOME_BOOLEAN_METRIC); Optional<Measure> measure = underTest.toMeasure(new MeasureDto().setValue(1.987d), SOME_BOOLEAN_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.BOOLEAN); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.BOOLEAN);
assertThat(measure.get().getBooleanValue()).isFalse(); assertThat(measure.get().getBooleanValue()).isFalse();
} }


Optional<Measure> measure = underTest.toMeasure(measureDto, SOME_BOOLEAN_METRIC); Optional<Measure> measure = underTest.toMeasure(measureDto, SOME_BOOLEAN_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.BOOLEAN); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.BOOLEAN);
assertThat(measure.get().getBooleanValue()).isTrue(); assertThat(measure.get().getBooleanValue()).isTrue();
assertThat(measure.get().getData()).isEqualTo(SOME_DATA); assertThat(measure.get().getData()).isEqualTo(SOME_DATA);
public void toMeasure_returns_no_value_if_dto_has_no_value_for_String_Metric() { public void toMeasure_returns_no_value_if_dto_has_no_value_for_String_Metric() {
Optional<Measure> measure = underTest.toMeasure(EMPTY_MEASURE_DTO, SOME_STRING_METRIC); Optional<Measure> measure = underTest.toMeasure(EMPTY_MEASURE_DTO, SOME_STRING_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.NO_VALUE);
} }




Optional<Measure> measure = underTest.toMeasure(measureDto, SOME_STRING_METRIC); Optional<Measure> measure = underTest.toMeasure(measureDto, SOME_STRING_METRIC);


assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.STRING); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.STRING);
assertThat(measure.get().getStringValue()).isEqualTo(SOME_DATA); assertThat(measure.get().getStringValue()).isEqualTo(SOME_DATA);
assertThat(measure.get().getData()).isEqualTo(SOME_DATA); assertThat(measure.get().getData()).isEqualTo(SOME_DATA);
@Test @Test
@UseDataProvider("all_types_MeasureDtos") @UseDataProvider("all_types_MeasureDtos")
public void toMeasure_creates_MeasureVariation_and_maps_the_right_one(MeasureDto builder, Metric metric) { public void toMeasure_creates_MeasureVariation_and_maps_the_right_one(MeasureDto builder, Metric metric) {
assertThat(underTest.toMeasure(builder.setVariation(1d), metric).get().getVariation()).isEqualTo(1);
assertThat(underTest.toMeasure(builder.setVariation(1d), metric).get().getVariation()).isOne();
} }


@Test @Test

+ 2
- 2
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/measure/MeasureRepositoryImplTest.java View File



private static final List<Measure> MEASURES = ImmutableList.of( private static final List<Measure> MEASURES = ImmutableList.of(
Measure.newMeasureBuilder().create(1), Measure.newMeasureBuilder().create(1),
Measure.newMeasureBuilder().create(1l),
Measure.newMeasureBuilder().create(1L),
Measure.newMeasureBuilder().create(1d, 1), Measure.newMeasureBuilder().create(1d, 1),
Measure.newMeasureBuilder().create(true), Measure.newMeasureBuilder().create(true),
Measure.newMeasureBuilder().create(false), Measure.newMeasureBuilder().create(false),
} }


private Measure getSomeMeasureByValueType(final Metric.MetricType metricType) { private Measure getSomeMeasureByValueType(final Metric.MetricType metricType) {
return from(MEASURES).filter(input -> input.getValueType() == metricType.getValueType()).first().get();
return MEASURES.stream().filter(input -> input.getValueType() == metricType.getValueType()).findFirst().get();
} }


@Test @Test

+ 3
- 3
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/measure/MeasureTest.java View File

public class MeasureTest { public class MeasureTest {


private static final Measure INT_MEASURE = newMeasureBuilder().create(1); private static final Measure INT_MEASURE = newMeasureBuilder().create(1);
private static final Measure LONG_MEASURE = newMeasureBuilder().create(1l);
private static final Measure LONG_MEASURE = newMeasureBuilder().create(1L);
private static final Measure DOUBLE_MEASURE = newMeasureBuilder().create(1d, 1); private static final Measure DOUBLE_MEASURE = newMeasureBuilder().create(1d, 1);
private static final Measure STRING_MEASURE = newMeasureBuilder().create("some_sT ring"); private static final Measure STRING_MEASURE = newMeasureBuilder().create("some_sT ring");
private static final Measure TRUE_MEASURE = newMeasureBuilder().create(true); private static final Measure TRUE_MEASURE = newMeasureBuilder().create(true);


@Test @Test
public void getIntValue_returns_value_for_INT_value_type() { public void getIntValue_returns_value_for_INT_value_type() {
assertThat(INT_MEASURE.getIntValue()).isEqualTo(1);
assertThat(INT_MEASURE.getIntValue()).isOne();
} }


@Test @Test


@Test @Test
public void getLongValue_returns_value_for_LONG_value_type() { public void getLongValue_returns_value_for_LONG_value_type() {
assertThat(LONG_MEASURE.getLongValue()).isEqualTo(1);
assertThat(LONG_MEASURE.getLongValue()).isOne();
} }


@Test @Test

+ 2
- 2
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/measure/QualityGateStatusTest.java View File

assertThat(status).isEqualTo(new QualityGateStatus(level, null)); assertThat(status).isEqualTo(new QualityGateStatus(level, null));
assertThat(status).isNotEqualTo(new QualityGateStatus(level, "bar")); assertThat(status).isNotEqualTo(new QualityGateStatus(level, "bar"));
assertThat(status).isNotEqualTo(new QualityGateStatus(level, "")); assertThat(status).isNotEqualTo(new QualityGateStatus(level, ""));
assertThat(status).isNotEqualTo(null);
assertThat(status).isNotNull();
} }
} }


@Test @Test
public void verify_toString() { public void verify_toString() {
assertThat(new QualityGateStatus(Measure.Level.OK, "foo").toString()).isEqualTo("QualityGateStatus{status=OK, text=foo}");
assertThat(new QualityGateStatus(Measure.Level.OK, "foo")).hasToString("QualityGateStatus{status=OK, text=foo}");
} }
} }

+ 7
- 7
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/period/PeriodTest.java View File

public void equals_is_done_on_all_fields() { public void equals_is_done_on_all_fields() {
Period period = new Period(NewCodePeriodType.NUMBER_OF_DAYS.name(), "2.3", 1420034400000L); Period period = new Period(NewCodePeriodType.NUMBER_OF_DAYS.name(), "2.3", 1420034400000L);


assertThat(period).isEqualTo(new Period(NewCodePeriodType.NUMBER_OF_DAYS.name(), "2.3", 1420034400000L));
assertThat(period).isNotEqualTo(null);
assertThat(period).isNotEqualTo("sdsd");
assertThat(period).isNotEqualTo(new Period(NewCodePeriodType.PREVIOUS_VERSION.name(), "2.3", 1420034400000L));
assertThat(period).isNotEqualTo(new Period(NewCodePeriodType.NUMBER_OF_DAYS.name(), "2.4", 1420034400000L));
assertThat(period).isNotEqualTo(new Period(NewCodePeriodType.NUMBER_OF_DAYS.name(), "2.3", 1420034410000L));
assertThat(period)
.isEqualTo(new Period(NewCodePeriodType.NUMBER_OF_DAYS.name(), "2.3", 1420034400000L))
.isNotNull()
.isNotEqualTo("sdsd")
.isNotEqualTo(new Period(NewCodePeriodType.PREVIOUS_VERSION.name(), "2.3", 1420034400000L))
.isNotEqualTo(new Period(NewCodePeriodType.NUMBER_OF_DAYS.name(), "2.4", 1420034400000L))
.isNotEqualTo(new Period(NewCodePeriodType.NUMBER_OF_DAYS.name(), "2.3", 1420034410000L));


} }
} }

+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/qualitygate/ConditionEvaluatorTest.java View File

@Test @Test
public void getLevel_throws_IEA_if_error_threshold_is_not_parsable_long() { public void getLevel_throws_IEA_if_error_threshold_is_not_parsable_long() {
Metric metric = createMetric(WORK_DUR); Metric metric = createMetric(WORK_DUR);
Measure measure = newMeasureBuilder().create(60l, null);
Measure measure = newMeasureBuilder().create(60L, null);


assertThatThrownBy(() -> underTest.evaluate(createCondition(metric, LESS_THAN, "polop"), measure)) assertThatThrownBy(() -> underTest.evaluate(createCondition(metric, LESS_THAN, "polop"), measure))
.isInstanceOf(IllegalArgumentException.class) .isInstanceOf(IllegalArgumentException.class)

+ 2
- 2
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/qualitygate/ConditionStatusTest.java View File



@Test @Test
public void verify_toString() { public void verify_toString() {
assertThat(ConditionStatus.create(OK, SOME_VALUE).toString()).isEqualTo("ConditionStatus{status=OK, value='value'}");
assertThat(ConditionStatus.NO_VALUE_STATUS.toString()).isEqualTo("ConditionStatus{status=NO_VALUE, value='null'}");
assertThat(ConditionStatus.create(OK, SOME_VALUE)).hasToString("ConditionStatus{status=OK, value='value'}");
assertThat(ConditionStatus.NO_VALUE_STATUS).hasToString("ConditionStatus{status=NO_VALUE, value='null'}");
} }


@Test @Test

+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/qualitymodel/NewMaintainabilityMeasuresVisitorTest.java View File

private static final double[] RATING_GRID = new double[] {0.1, 0.2, 0.5, 1}; private static final double[] RATING_GRID = new double[] {0.1, 0.2, 0.5, 1};


private static final String LANGUAGE_1_KEY = "language 1 key"; private static final String LANGUAGE_1_KEY = "language 1 key";
private static final long LANGUAGE_1_DEV_COST = 30l;
private static final long LANGUAGE_1_DEV_COST = 30L;
private static final int ROOT_REF = 1; private static final int ROOT_REF = 1;
private static final int LANGUAGE_1_FILE_REF = 11111; private static final int LANGUAGE_1_FILE_REF = 11111;
private static final Offset<Double> VARIATION_COMPARISON_OFFSET = Offset.offset(0.01); private static final Offset<Double> VARIATION_COMPARISON_OFFSET = Offset.offset(0.01);

+ 2
- 2
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/qualitymodel/NewReliabilityAndSecurityRatingMeasuresVisitorTest.java View File



public class NewReliabilityAndSecurityRatingMeasuresVisitorTest { public class NewReliabilityAndSecurityRatingMeasuresVisitorTest {


private static final long LEAK_PERIOD_SNAPSHOT_IN_MILLISEC = 12323l;
private static final Date DEFAULT_ISSUE_CREATION_DATE = new Date(1000l);
private static final long LEAK_PERIOD_SNAPSHOT_IN_MILLISEC = 12323L;
private static final Date DEFAULT_ISSUE_CREATION_DATE = new Date(1000L);
private static final Date BEFORE_LEAK_PERIOD_DATE = new Date(LEAK_PERIOD_SNAPSHOT_IN_MILLISEC - 5000L); private static final Date BEFORE_LEAK_PERIOD_DATE = new Date(LEAK_PERIOD_SNAPSHOT_IN_MILLISEC - 5000L);
private static final Date AFTER_LEAK_PERIOD_DATE = new Date(LEAK_PERIOD_SNAPSHOT_IN_MILLISEC + 5000L); private static final Date AFTER_LEAK_PERIOD_DATE = new Date(LEAK_PERIOD_SNAPSHOT_IN_MILLISEC + 5000L);



+ 2
- 2
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/qualitymodel/NewSecurityReviewMeasuresVisitorTest.java View File



private static final Offset<Double> VARIATION_COMPARISON_OFFSET = Offset.offset(0.01); private static final Offset<Double> VARIATION_COMPARISON_OFFSET = Offset.offset(0.01);


private static final long LEAK_PERIOD_SNAPSHOT_IN_MILLISEC = 12323l;
private static final Date DEFAULT_CREATION_DATE = new Date(1000l);
private static final long LEAK_PERIOD_SNAPSHOT_IN_MILLISEC = 12323L;
private static final Date DEFAULT_CREATION_DATE = new Date(1000L);
private static final Date BEFORE_LEAK_PERIOD_DATE = new Date(LEAK_PERIOD_SNAPSHOT_IN_MILLISEC - 5000L); private static final Date BEFORE_LEAK_PERIOD_DATE = new Date(LEAK_PERIOD_SNAPSHOT_IN_MILLISEC - 5000L);
private static final Date AFTER_LEAK_PERIOD_DATE = new Date(LEAK_PERIOD_SNAPSHOT_IN_MILLISEC + 5000L); private static final Date AFTER_LEAK_PERIOD_DATE = new Date(LEAK_PERIOD_SNAPSHOT_IN_MILLISEC + 5000L);



+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/qualitymodel/ReliabilityAndSecurityRatingMeasuresVisitorTest.java View File

.setKey(Uuids.create()) .setKey(Uuids.create())
.setSeverity(severity) .setSeverity(severity)
.setType(type) .setType(type)
.setCreationDate(new Date(1000l));
.setCreationDate(new Date(1000L));
} }


} }

+ 2
- 2
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/qualityprofile/ActiveRulesHolderImplTest.java View File

public void get_inactive_rule() { public void get_inactive_rule() {
underTest.set(Collections.emptyList()); underTest.set(Collections.emptyList());
Optional<ActiveRule> activeRule = underTest.get(RULE_KEY); Optional<ActiveRule> activeRule = underTest.get(RULE_KEY);
assertThat(activeRule.isPresent()).isFalse();
assertThat(activeRule).isEmpty();
} }


@Test @Test
underTest.set(asList(new ActiveRule(RULE_KEY, Severity.BLOCKER, Collections.emptyMap(), SOME_DATE, PLUGIN_KEY, QP_KEY))); underTest.set(asList(new ActiveRule(RULE_KEY, Severity.BLOCKER, Collections.emptyMap(), SOME_DATE, PLUGIN_KEY, QP_KEY)));


Optional<ActiveRule> activeRule = underTest.get(RULE_KEY); Optional<ActiveRule> activeRule = underTest.get(RULE_KEY);
assertThat(activeRule.isPresent()).isTrue();
assertThat(activeRule).isPresent();
assertThat(activeRule.get().getRuleKey()).isEqualTo(RULE_KEY); assertThat(activeRule.get().getRuleKey()).isEqualTo(RULE_KEY);
assertThat(activeRule.get().getSeverity()).isEqualTo(Severity.BLOCKER); assertThat(activeRule.get().getSeverity()).isEqualTo(Severity.BLOCKER);
} }

+ 11
- 11
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/scm/ChangesetTest.java View File



public class ChangesetTest { public class ChangesetTest {



@Test @Test
public void create_changeset() { public void create_changeset() {
Changeset underTest = Changeset.newChangesetBuilder() Changeset underTest = Changeset.newChangesetBuilder()
.setRevision("rev-1") .setRevision("rev-1")
.build(); .build();


assertThat(underTest.toString()).isEqualTo("Changeset{revision='rev-1', author='john', date=123456789}");
assertThat(underTest).hasToString("Changeset{revision='rev-1', author='john', date=123456789}");
} }


@Test @Test
.setRevision("rev-2") .setRevision("rev-2")
.build(); .build();


assertThat(changeset).isEqualTo(changeset);
assertThat(changeset).isEqualTo(sameChangeset);
assertThat(changeset).isNotEqualTo(anotherChangesetWithSameRevision);
assertThat(changeset).isNotEqualTo(anotherChangeset);

assertThat(changeset.hashCode()).isEqualTo(changeset.hashCode());
assertThat(changeset.hashCode()).isEqualTo(sameChangeset.hashCode());
assertThat(changeset.hashCode()).isNotEqualTo(anotherChangesetWithSameRevision.hashCode());
assertThat(changeset.hashCode()).isNotEqualTo(anotherChangeset.hashCode());
assertThat(changeset)
.isEqualTo(changeset)
.isEqualTo(sameChangeset)
.isNotEqualTo(anotherChangesetWithSameRevision)
.isNotEqualTo(anotherChangeset)
.hasSameHashCodeAs(changeset)
.hasSameHashCodeAs(sameChangeset);
assertThat(changeset.hashCode())
.isNotEqualTo(anotherChangesetWithSameRevision.hashCode())
.isNotEqualTo(anotherChangeset.hashCode());
} }
} }

+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/scm/ScmInfoImplTest.java View File

public void test_to_string() { public void test_to_string() {
ScmInfo scmInfo = createScmInfoWithTwoChangestOnFourLines(); ScmInfo scmInfo = createScmInfoWithTwoChangestOnFourLines();


assertThat(scmInfo.toString()).isEqualTo("ScmInfoImpl{" +
assertThat(scmInfo).hasToString("ScmInfoImpl{" +
"latestChangeset=Changeset{revision='rev-2', author='henry', date=1234567810}, " + "latestChangeset=Changeset{revision='rev-2', author='henry', date=1234567810}, " +
"lineChangesets={" + "lineChangesets={" +
"1=Changeset{revision='rev-1', author='john', date=123456789}, " + "1=Changeset{revision='rev-1', author='john', date=123456789}, " +

+ 2
- 2
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/source/LastCommitVisitorTest.java View File

underTest.visit(file); underTest.visit(file);


Optional<Measure> measure = measureRepository.getAddedRawMeasure(FILE_1_REF, LAST_COMMIT_DATE_KEY); Optional<Measure> measure = measureRepository.getAddedRawMeasure(FILE_1_REF, LAST_COMMIT_DATE_KEY);
assertThat(measure.isPresent()).isFalse();
assertThat(measure).isEmpty();
} }


private void assertDate(int componentRef, long expectedDate) { private void assertDate(int componentRef, long expectedDate) {
Optional<Measure> measure = measureRepository.getAddedRawMeasure(componentRef, LAST_COMMIT_DATE_KEY); Optional<Measure> measure = measureRepository.getAddedRawMeasure(componentRef, LAST_COMMIT_DATE_KEY);
assertThat(measure.isPresent()).isTrue();
assertThat(measure).isPresent();
assertThat(measure.get().getLongValue()).isEqualTo(expectedDate); assertThat(measure.get().getLongValue()).isEqualTo(expectedDate);
} }



+ 13
- 13
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/source/PersistFileSourcesStepTest.java View File



underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());


assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
assertThat(dbTester.countRowsOfTable("file_sources")).isOne();
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectByFileUuid(session, FILE1_UUID); FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectByFileUuid(session, FILE1_UUID);
assertThat(fileSourceDto.getProjectUuid()).isEqualTo(PROJECT_UUID); assertThat(fileSourceDto.getProjectUuid()).isEqualTo(PROJECT_UUID);
assertThat(fileSourceDto.getFileUuid()).isEqualTo(FILE1_UUID); assertThat(fileSourceDto.getFileUuid()).isEqualTo(FILE1_UUID);


DbFileSources.Data data = fileSourceDto.getSourceData(); DbFileSources.Data data = fileSourceDto.getSourceData();
assertThat(data.getLinesCount()).isEqualTo(2); assertThat(data.getLinesCount()).isEqualTo(2);
assertThat(data.getLines(0).getLine()).isEqualTo(1);
assertThat(data.getLines(0).getLine()).isOne();
assertThat(data.getLines(0).getSource()).isEqualTo("line1"); assertThat(data.getLines(0).getSource()).isEqualTo("line1");
assertThat(data.getLines(1).getLine()).isEqualTo(2); assertThat(data.getLines(1).getLine()).isEqualTo(2);
assertThat(data.getLines(1).getSource()).isEqualTo("line2"); assertThat(data.getLines(1).getSource()).isEqualTo("line2");


underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());


assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
assertThat(dbTester.countRowsOfTable("file_sources")).isOne();
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectByFileUuid(session, FILE1_UUID); FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectByFileUuid(session, FILE1_UUID);
assertThat(fileSourceDto.getLineHashes()).containsExactly("137f72c3708c6bd0de00a0e5a69c699b", "e6251bcf1a7dc3ba5e7933e325bbe605"); assertThat(fileSourceDto.getLineHashes()).containsExactly("137f72c3708c6bd0de00a0e5a69c699b", "e6251bcf1a7dc3ba5e7933e325bbe605");
assertThat(fileSourceDto.getSrcHash()).isEqualTo("ee5a58024a155466b43bc559d953e018"); assertThat(fileSourceDto.getSrcHash()).isEqualTo("ee5a58024a155466b43bc559d953e018");


underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());


assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
assertThat(dbTester.countRowsOfTable("file_sources")).isOne();
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectByFileUuid(session, FILE1_UUID); FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectByFileUuid(session, FILE1_UUID);
assertThat(fileSourceDto.getSourceData()).isEqualTo(dbData); assertThat(fileSourceDto.getSourceData()).isEqualTo(dbData);
verify(fileSourceDataWarnings).commitWarnings(); verify(fileSourceDataWarnings).commitWarnings();


underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());


assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
assertThat(dbTester.countRowsOfTable("file_sources")).isOne();
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectByFileUuid(session, FILE1_UUID); FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectByFileUuid(session, FILE1_UUID);
assertThat(fileSourceDto.getSourceData()).isEqualTo(dbData); assertThat(fileSourceDto.getSourceData()).isEqualTo(dbData);
assertThat(fileSourceDto.getRevision()).isNull(); assertThat(fileSourceDto.getRevision()).isNull();


underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());


assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
assertThat(dbTester.countRowsOfTable("file_sources")).isOne();
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectByFileUuid(session, FILE1_UUID); FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectByFileUuid(session, FILE1_UUID);


DbFileSources.Data data = fileSourceDto.getSourceData(); DbFileSources.Data data = fileSourceDto.getSourceData();


underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());


assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
assertThat(dbTester.countRowsOfTable("file_sources")).isOne();
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectByFileUuid(session, FILE1_UUID); FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectByFileUuid(session, FILE1_UUID);
DbFileSources.Data data = fileSourceDto.getSourceData(); DbFileSources.Data data = fileSourceDto.getSourceData();
assertThat(data).isEqualTo(dbData); assertThat(data).isEqualTo(dbData);


underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());


assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
assertThat(dbTester.countRowsOfTable("file_sources")).isOne();
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectByFileUuid(session, FILE1_UUID); FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectByFileUuid(session, FILE1_UUID);
assertThat(fileSourceDto.getSourceData()).isEqualTo(dbData); assertThat(fileSourceDto.getSourceData()).isEqualTo(dbData);
verify(fileSourceDataWarnings).commitWarnings(); verify(fileSourceDataWarnings).commitWarnings();


underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());


assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
assertThat(dbTester.countRowsOfTable("file_sources")).isOne();
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectByFileUuid(session, FILE1_UUID); FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectByFileUuid(session, FILE1_UUID);
assertThat(fileSourceDto.getSourceData()).isEqualTo(dbData); assertThat(fileSourceDto.getSourceData()).isEqualTo(dbData);
verify(fileSourceDataWarnings).commitWarnings(); verify(fileSourceDataWarnings).commitWarnings();


underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());


assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
assertThat(dbTester.countRowsOfTable("file_sources")).isOne();
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectByFileUuid(session, FILE1_UUID); FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectByFileUuid(session, FILE1_UUID);
assertThat(fileSourceDto.getSrcHash()).isEqualTo("sourceHash"); assertThat(fileSourceDto.getSrcHash()).isEqualTo("sourceHash");
assertThat(fileSourceDto.getLineHashes()).isEqualTo(Collections.singletonList("lineHash")); assertThat(fileSourceDto.getLineHashes()).isEqualTo(Collections.singletonList("lineHash"));


underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());


assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
assertThat(dbTester.countRowsOfTable("file_sources")).isOne();
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectByFileUuid(session, FILE1_UUID); FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectByFileUuid(session, FILE1_UUID);
assertThat(fileSourceDto.getCreatedAt()).isEqualTo(past); assertThat(fileSourceDto.getCreatedAt()).isEqualTo(past);
assertThat(fileSourceDto.getUpdatedAt()).isEqualTo(NOW); assertThat(fileSourceDto.getUpdatedAt()).isEqualTo(NOW);


underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());


assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
assertThat(dbTester.countRowsOfTable("file_sources")).isOne();
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectByFileUuid(session, FILE1_UUID); FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectByFileUuid(session, FILE1_UUID);
assertThat(fileSourceDto.getCreatedAt()).isEqualTo(PAST); assertThat(fileSourceDto.getCreatedAt()).isEqualTo(PAST);
assertThat(fileSourceDto.getUpdatedAt()).isEqualTo(NOW); assertThat(fileSourceDto.getUpdatedAt()).isEqualTo(NOW);


underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());


assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
assertThat(dbTester.countRowsOfTable("file_sources")).isOne();
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectByFileUuid(session, FILE1_UUID); FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectByFileUuid(session, FILE1_UUID);
assertThat(fileSourceDto.getCreatedAt()).isEqualTo(PAST); assertThat(fileSourceDto.getCreatedAt()).isEqualTo(PAST);
assertThat(fileSourceDto.getUpdatedAt()).isEqualTo(NOW); assertThat(fileSourceDto.getUpdatedAt()).isEqualTo(NOW);

+ 2
- 2
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/source/ReportIteratorTest.java View File

@Test @Test
public void read_report() { public void read_report() {
underTest = new ReportIterator<>(file, ScannerReport.LineCoverage.parser()); underTest = new ReportIterator<>(file, ScannerReport.LineCoverage.parser());
assertThat(underTest.next().getLine()).isEqualTo(1);
assertThat(underTest.next().getLine()).isOne();
} }


@Test @Test
public void do_not_fail_when_calling_has_next_with_iterator_already_closed() { public void do_not_fail_when_calling_has_next_with_iterator_already_closed() {
underTest = new ReportIterator<>(file, ScannerReport.LineCoverage.parser()); underTest = new ReportIterator<>(file, ScannerReport.LineCoverage.parser());
assertThat(underTest.next().getLine()).isEqualTo(1);
assertThat(underTest.next().getLine()).isOne();
assertThat(underTest.hasNext()).isFalse(); assertThat(underTest.hasNext()).isFalse();


underTest.close(); underTest.close();

+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/source/SignificantCodeRepositoryTest.java View File

assertThat(underTest.getRangesPerLine(component)).isNotEmpty(); assertThat(underTest.getRangesPerLine(component)).isNotEmpty();
LineRange[] lines = underTest.getRangesPerLine(component).get(); LineRange[] lines = underTest.getRangesPerLine(component).get();
assertThat(lines).hasSize(1); assertThat(lines).hasSize(1);
assertThat(lines[0].startOffset()).isEqualTo(1);
assertThat(lines[0].startOffset()).isOne();
assertThat(lines[0].endOffset()).isEqualTo(2); assertThat(lines[0].endOffset()).isEqualTo(2);
} }



+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/source/linereader/CoverageLineReaderTest.java View File

DbFileSources.Line.Builder lineBuilder = DbFileSources.Data.newBuilder().addLinesBuilder().setLine(1); DbFileSources.Line.Builder lineBuilder = DbFileSources.Data.newBuilder().addLinesBuilder().setLine(1);
assertThat(computeCoverageLine.read(lineBuilder)).isEmpty(); assertThat(computeCoverageLine.read(lineBuilder)).isEmpty();


assertThat(lineBuilder.getLineHits()).isEqualTo(1);
assertThat(lineBuilder.getLineHits()).isOne();
assertThat(lineBuilder.getConditions()).isEqualTo(10); assertThat(lineBuilder.getConditions()).isEqualTo(10);
assertThat(lineBuilder.getCoveredConditions()).isEqualTo(2); assertThat(lineBuilder.getCoveredConditions()).isEqualTo(2);
} }

+ 2
- 2
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ExecuteVisitorsStepTest.java View File



underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());


assertThat(measureRepository.getAddedRawMeasure(FILE_1_REF, TEST_METRIC_KEY).get().getIntValue()).isEqualTo(1);
assertThat(measureRepository.getAddedRawMeasure(FILE_2_REF, TEST_METRIC_KEY).get().getIntValue()).isEqualTo(1);
assertThat(measureRepository.getAddedRawMeasure(FILE_1_REF, TEST_METRIC_KEY).get().getIntValue()).isOne();
assertThat(measureRepository.getAddedRawMeasure(FILE_2_REF, TEST_METRIC_KEY).get().getIntValue()).isOne();
assertThat(measureRepository.getAddedRawMeasure(DIRECTORY_REF, TEST_METRIC_KEY).get().getIntValue()).isEqualTo(2); assertThat(measureRepository.getAddedRawMeasure(DIRECTORY_REF, TEST_METRIC_KEY).get().getIntValue()).isEqualTo(2);
assertThat(measureRepository.getAddedRawMeasure(ROOT_REF, TEST_METRIC_KEY).get().getIntValue()).isEqualTo(2); assertThat(measureRepository.getAddedRawMeasure(ROOT_REF, TEST_METRIC_KEY).get().getIntValue()).isEqualTo(2);
} }

+ 4
- 4
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStepTest.java View File



underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());


assertThat(analysisMetadataHolder.getRootComponentRef()).isEqualTo(1);
assertThat(analysisMetadataHolder.getRootComponentRef()).isOne();
} }


@Test @Test


underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());


assertThat(analysisMetadataHolder.isCrossProjectDuplicationEnabled()).isEqualTo(true);
assertThat(analysisMetadataHolder.isCrossProjectDuplicationEnabled()).isTrue();
} }


@Test @Test


underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());


assertThat(analysisMetadataHolder.isCrossProjectDuplicationEnabled()).isEqualTo(false);
assertThat(analysisMetadataHolder.isCrossProjectDuplicationEnabled()).isFalse();
} }


@Test @Test


underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());


assertThat(analysisMetadataHolder.isCrossProjectDuplicationEnabled()).isEqualTo(false);
assertThat(analysisMetadataHolder.isCrossProjectDuplicationEnabled()).isFalse();
} }


@Test @Test

+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistAdHocRulesStepTest.java View File

assertThat(reloaded.getSeverity()).isNull(); assertThat(reloaded.getSeverity()).isNull();
assertThat(reloaded.getName()).isEqualTo("eslint:no-cond-assign"); assertThat(reloaded.getName()).isEqualTo("eslint:no-cond-assign");


assertThat(es.countDocuments(RuleIndexDefinition.TYPE_RULE)).isEqualTo(1L);
assertThat(es.countDocuments(RuleIndexDefinition.TYPE_RULE)).isOne();
assertThat(es.getDocuments(RuleIndexDefinition.TYPE_RULE).iterator().next().getId()).isEqualTo(reloaded.getUuid()); assertThat(es.getDocuments(RuleIndexDefinition.TYPE_RULE).iterator().next().getId()).isEqualTo(reloaded.getUuid());
} }



+ 7
- 6
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistCrossProjectDuplicationIndexStepTest.java View File

underTest.execute(context); underTest.execute(context);


Map<String, Object> dto = dbTester.selectFirst("select HASH, START_LINE, END_LINE, INDEX_IN_FILE, COMPONENT_UUID, ANALYSIS_UUID from duplications_index"); Map<String, Object> dto = dbTester.selectFirst("select HASH, START_LINE, END_LINE, INDEX_IN_FILE, COMPONENT_UUID, ANALYSIS_UUID from duplications_index");
assertThat(dto.get("HASH")).isEqualTo(CPD_TEXT_BLOCK.getHash());
assertThat(dto.get("START_LINE")).isEqualTo(30L);
assertThat(dto.get("END_LINE")).isEqualTo(45L);
assertThat(dto.get("INDEX_IN_FILE")).isEqualTo(0L);
assertThat(dto.get("COMPONENT_UUID")).isEqualTo(FILE_1.getUuid());
assertThat(dto.get("ANALYSIS_UUID")).isEqualTo(ANALYSIS_UUID);
assertThat(dto)
.containsEntry("HASH", CPD_TEXT_BLOCK.getHash())
.containsEntry("START_LINE", 30L)
.containsEntry("END_LINE", 45L)
.containsEntry("INDEX_IN_FILE", 0L)
.containsEntry("COMPONENT_UUID", FILE_1.getUuid())
.containsEntry("ANALYSIS_UUID", ANALYSIS_UUID);
context.getStatistics().assertValue("inserts", 1); context.getStatistics().assertValue("inserts", 1);
} }



+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistEventsStepTest.java View File



underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());


assertThat(dbTester.countRowsOfTable(dbTester.getSession(), "events")).isEqualTo(1);
assertThat(dbTester.countRowsOfTable(dbTester.getSession(), "events")).isOne();
List<EventDto> eventDtos = dbTester.getDbClient().eventDao().selectByComponentUuid(dbTester.getSession(), ROOT.getUuid()); List<EventDto> eventDtos = dbTester.getDbClient().eventDao().selectByComponentUuid(dbTester.getSession(), ROOT.getUuid());
assertThat(eventDtos).hasSize(1); assertThat(eventDtos).hasSize(1);
EventDto eventDto = eventDtos.iterator().next(); EventDto eventDto = eventDtos.iterator().next();

+ 2
- 2
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistLiveMeasuresStepTest.java View File

Optional<LiveMeasureDto> persisted = dbClient.liveMeasureDao().selectMeasure(db.getSession(), Optional<LiveMeasureDto> persisted = dbClient.liveMeasureDao().selectMeasure(db.getSession(),
template.getComponentUuid(), metricRepository.getByUuid(template.getMetricUuid()).getKey()); template.getComponentUuid(), metricRepository.getByUuid(template.getMetricUuid()).getKey());
assertThat(persisted).isPresent(); assertThat(persisted).isPresent();
assertThat(persisted.get().getValue()).isEqualTo((double) expectedValue);
assertThat(persisted.get().getValue()).isEqualTo(expectedValue);
} }


private void assertThatMeasureHasValue(String componentUuid, Metric metric, int expectedValue) { private void assertThatMeasureHasValue(String componentUuid, Metric metric, int expectedValue) {
Optional<LiveMeasureDto> persisted = dbClient.liveMeasureDao().selectMeasure(db.getSession(), Optional<LiveMeasureDto> persisted = dbClient.liveMeasureDao().selectMeasure(db.getSession(),
componentUuid, metric.getKey()); componentUuid, metric.getKey());
assertThat(persisted).isPresent(); assertThat(persisted).isPresent();
assertThat(persisted.get().getValue()).isEqualTo((double) expectedValue);
assertThat(persisted.get().getValue()).isEqualTo(expectedValue);
} }


private void assertThatMeasureDoesNotExist(LiveMeasureDto template) { private void assertThatMeasureDoesNotExist(LiveMeasureDto template) {

+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistMeasuresStepTest.java View File

TestComputationStepContext context = execute(); TestComputationStepContext context = execute();


// project and dir measures are persisted, but not file measures // project and dir measures are persisted, but not file measures
assertThat(db.countRowsOfTable("project_measures")).isEqualTo(1);
assertThat(db.countRowsOfTable("project_measures")).isOne();
assertThat(selectMeasure("project-uuid", STRING_METRIC).get().getData()).isEqualTo("project-value"); assertThat(selectMeasure("project-uuid", STRING_METRIC).get().getData()).isEqualTo("project-value");
assertThatMeasuresAreNotPersisted("dir-uuid"); assertThatMeasuresAreNotPersisted("dir-uuid");
assertThatMeasuresAreNotPersisted("file-uuid"); assertThatMeasuresAreNotPersisted("file-uuid");

+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistProjectLinksStepTest.java View File



underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());


assertThat(db.countRowsOfTable("project_links")).isEqualTo(1);
assertThat(db.countRowsOfTable("project_links")).isOne();
} }


@Test @Test

+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportPersistAnalysisStepTest.java View File



underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());


assertThat(dbTester.countRowsOfTable("snapshots")).isEqualTo(1);
assertThat(dbTester.countRowsOfTable("snapshots")).isOne();


SnapshotDto projectSnapshot = getUnprocessedSnapshot(projectDto.uuid()); SnapshotDto projectSnapshot = getUnprocessedSnapshot(projectDto.uuid());
assertThat(projectSnapshot.getUuid()).isEqualTo(ANALYSIS_UUID); assertThat(projectSnapshot.getUuid()).isEqualTo(ANALYSIS_UUID);

+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsPersistAnalysisStepTest.java View File



underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());


assertThat(dbTester.countRowsOfTable("snapshots")).isEqualTo(1);
assertThat(dbTester.countRowsOfTable("snapshots")).isOne();


SnapshotDto viewSnapshot = getUnprocessedSnapshot(viewDto.uuid()); SnapshotDto viewSnapshot = getUnprocessedSnapshot(viewDto.uuid());
assertThat(viewSnapshot.getUuid()).isEqualTo(ANALYSIS_UUID); assertThat(viewSnapshot.getUuid()).isEqualTo(ANALYSIS_UUID);

+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectexport/ProjectExportComputationStepsTest.java View File



@Test @Test
public void count_step_classes() { public void count_step_classes() {
assertThat(copyOf(underTest.orderedStepClasses()).size()).isEqualTo(20);
assertThat(copyOf(underTest.orderedStepClasses())).hasSize(20);
} }


@Test @Test

+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectexport/analysis/ExportAnalysesStepTest.java View File



private static void assertAnalysis(ProjectDump.Analysis analysis, ComponentDto component, SnapshotDto dto) { private static void assertAnalysis(ProjectDump.Analysis analysis, ComponentDto component, SnapshotDto dto) {
assertThat(analysis.getUuid()).isEqualTo(dto.getUuid()); assertThat(analysis.getUuid()).isEqualTo(dto.getUuid());
assertThat(analysis.getComponentRef()).isEqualTo(1);
assertThat(analysis.getComponentRef()).isOne();
assertThat(analysis.getDate()).isEqualTo(dto.getCreatedAt()); assertThat(analysis.getDate()).isEqualTo(dto.getCreatedAt());
assertThat(analysis.getProjectVersion()).isEqualTo(defaultString(dto.getProjectVersion())); assertThat(analysis.getProjectVersion()).isEqualTo(defaultString(dto.getProjectVersion()));
assertThat(analysis.getBuildString()).isEqualTo(defaultString(dto.getBuildString())); assertThat(analysis.getBuildString()).isEqualTo(defaultString(dto.getBuildString()));

+ 1
- 1
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectexport/steps/ExportEventsStepTest.java View File

assertThat(event.getDescription()).isEqualTo("desc"); assertThat(event.getDescription()).isEqualTo("desc");
assertThat(event.getDate()).isEqualTo(IN_THE_PAST); assertThat(event.getDate()).isEqualTo(IN_THE_PAST);
assertThat(event.getAnalysisUuid()).isEqualTo(snapshot.getUuid()); assertThat(event.getAnalysisUuid()).isEqualTo(snapshot.getUuid());
assertThat(event.getComponentRef()).isEqualTo(1);
assertThat(event.getComponentRef()).isOne();
} }


@Test @Test

+ 4
- 18
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectexport/steps/ExportMetricsStepTest.java View File

*/ */
package org.sonar.ce.task.projectexport.steps; package org.sonar.ce.task.projectexport.steps;


import com.google.common.base.Predicate;
import com.sonarsource.governance.projectdump.protobuf.ProjectDump; import com.sonarsource.governance.projectdump.protobuf.ProjectDump;
import java.util.List; import java.util.List;
import java.util.function.Predicate;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule; import org.junit.Rule;
import org.sonar.db.DbTester; import org.sonar.db.DbTester;
import org.sonar.db.metric.MetricDto; import org.sonar.db.metric.MetricDto;


import static com.google.common.collect.FluentIterable.from;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.assertj.core.api.Assertions.assertThatThrownBy;


assertThat(logTester.logs(LoggerLevel.DEBUG)).contains("2 metrics exported"); assertThat(logTester.logs(LoggerLevel.DEBUG)).contains("2 metrics exported");
List<ProjectDump.Metric> exportedMetrics = dumpWriter.getWrittenMessagesOf(DumpElement.METRICS); List<ProjectDump.Metric> exportedMetrics = dumpWriter.getWrittenMessagesOf(DumpElement.METRICS);


ProjectDump.Metric ncloc = from(exportedMetrics).firstMatch(new HasMetricRefPredicate(0)).get();
ProjectDump.Metric ncloc = exportedMetrics.stream().filter(input -> input.getRef() == 0).findAny().orElseThrow();
assertThat(ncloc.getRef()).isZero(); assertThat(ncloc.getRef()).isZero();
assertThat(ncloc.getKey()).isEqualTo("ncloc"); assertThat(ncloc.getKey()).isEqualTo("ncloc");
assertThat(ncloc.getName()).isEqualTo("Lines of code"); assertThat(ncloc.getName()).isEqualTo("Lines of code");


ProjectDump.Metric coverage = from(exportedMetrics).firstMatch(new HasMetricRefPredicate(1)).get();
assertThat(coverage.getRef()).isEqualTo(1);
ProjectDump.Metric coverage = exportedMetrics.stream().filter(input -> input.getRef() == 1).findAny().orElseThrow();
assertThat(coverage.getRef()).isOne();
assertThat(coverage.getKey()).isEqualTo("coverage"); assertThat(coverage.getKey()).isEqualTo("coverage");
assertThat(coverage.getName()).isEqualTo("Coverage"); assertThat(coverage.getName()).isEqualTo("Coverage");
} }
public void test_getDescription() { public void test_getDescription() {
assertThat(underTest.getDescription()).isEqualTo("Export metrics"); assertThat(underTest.getDescription()).isEqualTo("Export metrics");
} }

private static class HasMetricRefPredicate implements Predicate<ProjectDump.Metric> {
private final int ref;

HasMetricRefPredicate(int ref) {
this.ref = ref;
}

@Override
public boolean apply(@Nonnull ProjectDump.Metric input) {
return input.getRef() == ref;
}
}
} }

+ 0
- 10
server/sonar-ce-task-projectanalysis/src/testFixtures/java/org/sonar/ce/task/projectanalysis/measure/MeasureAssert.java View File

return new MeasureAssert(actual == null ? null : actual.orElse(null)); return new MeasureAssert(actual == null ? null : actual.orElse(null));
} }


public MeasureAssert hasValueType(Measure.ValueType expected) {
isNotNull();

if (actual.getValueType() != expected) {
failWithMessage("Expected ValueType of Measure to be <%s> but was <%s>", expected, actual.getValueType());
}

return this;
}

public MeasureAssert hasValue(int expected) { public MeasureAssert hasValue(int expected) {
isNotNull(); isNotNull();



+ 1
- 1
server/sonar-ce-task-projectanalysis/src/testFixtures/java/org/sonar/ce/task/projectanalysis/measure/MeasureRepositoryRule.java View File

@Override @Override
public Map<String, Measure> getRawMeasures(Component component) { public Map<String, Measure> getRawMeasures(Component component) {
return filterKeys(rawMeasures, hasComponentRef(component)).entrySet().stream() return filterKeys(rawMeasures, hasComponentRef(component)).entrySet().stream()
.collect(Collectors.toMap(k -> k.getKey().getMetricKey(), e -> e.getValue()));
.collect(Collectors.toMap(k -> k.getKey().getMetricKey(), Map.Entry::getValue));
} }


private HasComponentRefPredicate hasComponentRef(Component component) { private HasComponentRefPredicate hasComponentRef(Component component) {

+ 18
- 15
server/sonar-ce-task/src/test/java/org/sonar/ce/task/CeTaskComponentTest.java View File

String somethingElse = randomAlphabetic(5); String somethingElse = randomAlphabetic(5);
CeTask.Component underTest = new CeTask.Component(uuid, key, name); CeTask.Component underTest = new CeTask.Component(uuid, key, name);


assertThat(underTest).isEqualTo(underTest);
assertThat(underTest).isEqualTo(new CeTask.Component(uuid, key, name));
assertThat(underTest).isNotEqualTo(null);
assertThat(underTest).isNotEqualTo(new Object());
assertThat(underTest).isNotEqualTo(new CeTask.Component(somethingElse, key, name));
assertThat(underTest).isNotEqualTo(new CeTask.Component(uuid, somethingElse, name));
assertThat(underTest).isNotEqualTo(new CeTask.Component(uuid, key, somethingElse));
assertThat(underTest).isNotEqualTo(new CeTask.Component(uuid, key, null));
assertThat(underTest)
.isEqualTo(underTest)
.isEqualTo(new CeTask.Component(uuid, key, name))
.isNotNull()
.isNotEqualTo(new Object())
.isNotEqualTo(new CeTask.Component(somethingElse, key, name))
.isNotEqualTo(new CeTask.Component(uuid, somethingElse, name))
.isNotEqualTo(new CeTask.Component(uuid, key, somethingElse))
.isNotEqualTo(new CeTask.Component(uuid, key, null));
} }


@Test @Test
String somethingElse = randomAlphabetic(5); String somethingElse = randomAlphabetic(5);
CeTask.Component underTest = new CeTask.Component(uuid, key, name); CeTask.Component underTest = new CeTask.Component(uuid, key, name);


assertThat(underTest.hashCode()).isEqualTo(underTest.hashCode());
assertThat(underTest.hashCode()).isEqualTo(new CeTask.Component(uuid, key, name).hashCode());
assertThat(underTest.hashCode()).isNotEqualTo(new Object().hashCode());
assertThat(underTest.hashCode()).isNotEqualTo(new CeTask.Component(somethingElse, key, name).hashCode());
assertThat(underTest.hashCode()).isNotEqualTo(new CeTask.Component(uuid, somethingElse, name).hashCode());
assertThat(underTest.hashCode()).isNotEqualTo(new CeTask.Component(uuid, key, somethingElse).hashCode());
assertThat(underTest.hashCode()).isNotEqualTo(new CeTask.Component(uuid, key, null).hashCode());
assertThat(underTest)
.hasSameHashCodeAs(underTest)
.hasSameHashCodeAs(new CeTask.Component(uuid, key, name));
assertThat(underTest.hashCode())
.isNotEqualTo(new Object().hashCode())
.isNotEqualTo(new CeTask.Component(somethingElse, key, name).hashCode())
.isNotEqualTo(new CeTask.Component(uuid, somethingElse, name).hashCode())
.isNotEqualTo(new CeTask.Component(uuid, key, somethingElse).hashCode())
.isNotEqualTo(new CeTask.Component(uuid, key, null).hashCode());
} }


@DataProvider @DataProvider

+ 10
- 8
server/sonar-ce-task/src/test/java/org/sonar/ce/task/CeTaskTest.java View File

assertThat(task1.equals(task1)).isTrue(); assertThat(task1.equals(task1)).isTrue();
assertThat(task1.equals(task1bis)).isTrue(); assertThat(task1.equals(task1bis)).isTrue();
assertThat(task1.equals(task2)).isFalse(); assertThat(task1.equals(task2)).isFalse();
assertThat(task1.hashCode()).isEqualTo(task1.hashCode());
assertThat(task1.hashCode()).isEqualTo(task1bis.hashCode());
assertThat(task1)
.hasSameHashCodeAs(task1)
.hasSameHashCodeAs(task1bis);
} }


@Test @Test
CeTask.User user2 = new CeTask.User("UUID_2", null); CeTask.User user2 = new CeTask.User("UUID_2", null);
CeTask.User user1_diff_login = new CeTask.User("UUID_1", "LOGIN"); CeTask.User user1_diff_login = new CeTask.User("UUID_1", "LOGIN");


assertThat(user1).isEqualTo(user1);
assertThat(user1).isEqualTo(user1bis);
assertThat(user1).isNotEqualTo(user2);
assertThat(user1.equals(null)).isFalse(); assertThat(user1.equals(null)).isFalse();
assertThat(user1.hashCode()).isEqualTo(user1.hashCode());
assertThat(user1.hashCode()).isEqualTo(user1bis.hashCode());
assertThat(user1.hashCode()).isEqualTo(user1_diff_login.hashCode());
assertThat(user1)
.isEqualTo(user1)
.isEqualTo(user1bis)
.isNotEqualTo(user2)
.hasSameHashCodeAs(user1)
.hasSameHashCodeAs(user1bis)
.hasSameHashCodeAs(user1_diff_login);
} }
} }

+ 3
- 3
server/sonar-ce-task/src/test/java/org/sonar/ce/task/container/TaskContainerImplTest.java View File



assertThat(defaultStartable.startCalls).isZero(); assertThat(defaultStartable.startCalls).isZero();
assertThat(defaultStartable.stopCalls).isZero(); assertThat(defaultStartable.stopCalls).isZero();
assertThat(eagerStartable.startCalls).isEqualTo(1);
assertThat(eagerStartable.startCalls).isOne();
assertThat(eagerStartable.stopCalls).isZero(); assertThat(eagerStartable.stopCalls).isZero();
} }




assertThat(defaultStartable.startCalls).isZero(); assertThat(defaultStartable.startCalls).isZero();
assertThat(defaultStartable.stopCalls).isZero(); assertThat(defaultStartable.stopCalls).isZero();
assertThat(eagerStartable.startCalls).isEqualTo(1);
assertThat(eagerStartable.stopCalls).isEqualTo(1);
assertThat(eagerStartable.startCalls).isOne();
assertThat(eagerStartable.stopCalls).isOne();
} }


public static class DefaultStartable implements Startable { public static class DefaultStartable implements Startable {

+ 1
- 1
server/sonar-ce-task/src/test/java/org/sonar/ce/task/log/CeTaskMessagesMessageTest.java View File

.isEqualTo(new Message(text, timestamp)) .isEqualTo(new Message(text, timestamp))
.isNotEqualTo(new Message(text + "ç", timestamp)) .isNotEqualTo(new Message(text + "ç", timestamp))
.isNotEqualTo(new Message(text, timestamp + 10_999L)) .isNotEqualTo(new Message(text, timestamp + 10_999L))
.isNotEqualTo(null)
.isNotNull()
.isNotEqualTo(new Object()); .isNotEqualTo(new Object());
} }



+ 1
- 1
server/sonar-ce/src/test/java/org/sonar/ce/cleaning/CeCleaningSchedulerImplTest.java View File

mockedInternalCeQueue, mockCeDistributedInformation(jobLock)); mockedInternalCeQueue, mockCeDistributedInformation(jobLock));


underTest.startScheduling(); underTest.startScheduling();
assertThat(executorService.schedulerCounter).isEqualTo(1);
assertThat(executorService.schedulerCounter).isOne();
} }


private CeConfiguration mockCeConfiguration(long cleanCeTasksInitialDelay, long cleanCeTasksDelay) { private CeConfiguration mockCeConfiguration(long cleanCeTasksInitialDelay, long cleanCeTasksDelay) {

+ 4
- 4
server/sonar-ce/src/test/java/org/sonar/ce/configuration/CeConfigurationImplTest.java View File



@Test @Test
public void getWorkerCount_returns_1_when_there_is_no_WorkerCountProvider() { public void getWorkerCount_returns_1_when_there_is_no_WorkerCountProvider() {
assertThat(new CeConfigurationImpl(EMPTY_CONFIGURATION).getWorkerCount()).isEqualTo(1);
assertThat(new CeConfigurationImpl(EMPTY_CONFIGURATION).getWorkerCount()).isOne();
} }


@Test @Test
public void getWorkerMaxCount_returns_1_when_there_is_no_WorkerCountProvider() { public void getWorkerMaxCount_returns_1_when_there_is_no_WorkerCountProvider() {
assertThat(new CeConfigurationImpl(EMPTY_CONFIGURATION).getWorkerMaxCount()).isEqualTo(1);
assertThat(new CeConfigurationImpl(EMPTY_CONFIGURATION).getWorkerMaxCount()).isOne();
} }


@Test @Test
@Test @Test
public void getCleanCeTasksInitialDelay_returns_0() { public void getCleanCeTasksInitialDelay_returns_0() {
assertThat(new CeConfigurationImpl(EMPTY_CONFIGURATION).getCleanTasksInitialDelay()) assertThat(new CeConfigurationImpl(EMPTY_CONFIGURATION).getCleanTasksInitialDelay())
.isEqualTo(0L);
.isZero();
workerCountProvider.set(1); workerCountProvider.set(1);
assertThat(new CeConfigurationImpl(EMPTY_CONFIGURATION, workerCountProvider).getCleanTasksInitialDelay()) assertThat(new CeConfigurationImpl(EMPTY_CONFIGURATION, workerCountProvider).getCleanTasksInitialDelay())
.isEqualTo(0L);
.isZero();
} }


@Test @Test

+ 1
- 1
server/sonar-ce/src/test/java/org/sonar/ce/monitoring/CEQueueStatusImplConcurrentTest.java View File



executorService.awaitTermination(1, TimeUnit.SECONDS); executorService.awaitTermination(1, TimeUnit.SECONDS);


assertThat(underTest.getInProgressCount()).isEqualTo(1);
assertThat(underTest.getInProgressCount()).isOne();
assertThat(underTest.getErrorCount()).isEqualTo(17); assertThat(underTest.getErrorCount()).isEqualTo(17);
assertThat(underTest.getSuccessCount()).isEqualTo(80); assertThat(underTest.getSuccessCount()).isEqualTo(80);
assertThat(underTest.getProcessingTime()).isEqualTo(177); assertThat(underTest.getProcessingTime()).isEqualTo(177);

+ 3
- 3
server/sonar-ce/src/test/java/org/sonar/ce/monitoring/CommonCEQueueStatusImplTest.java View File

public void addInProgress_increases_InProgress() { public void addInProgress_increases_InProgress() {
getUnderTest().addInProgress(); getUnderTest().addInProgress();


assertThat(getUnderTest().getInProgressCount()).isEqualTo(1);
assertThat(getUnderTest().getInProgressCount()).isOne();
assertThat(getUnderTest().getErrorCount()).isZero(); assertThat(getUnderTest().getErrorCount()).isZero();
assertThat(getUnderTest().getSuccessCount()).isZero(); assertThat(getUnderTest().getSuccessCount()).isZero();
assertThat(getUnderTest().getProcessingTime()).isZero(); assertThat(getUnderTest().getProcessingTime()).isZero();
getUnderTest().addError(SOME_PROCESSING_TIME); getUnderTest().addError(SOME_PROCESSING_TIME);


assertThat(getUnderTest().getInProgressCount()).isEqualTo(-1); assertThat(getUnderTest().getInProgressCount()).isEqualTo(-1);
assertThat(getUnderTest().getErrorCount()).isEqualTo(1);
assertThat(getUnderTest().getErrorCount()).isOne();
assertThat(getUnderTest().getSuccessCount()).isZero(); assertThat(getUnderTest().getSuccessCount()).isZero();
assertThat(getUnderTest().getProcessingTime()).isEqualTo(SOME_PROCESSING_TIME); assertThat(getUnderTest().getProcessingTime()).isEqualTo(SOME_PROCESSING_TIME);
} }


assertThat(getUnderTest().getInProgressCount()).isEqualTo(-1); assertThat(getUnderTest().getInProgressCount()).isEqualTo(-1);
assertThat(getUnderTest().getErrorCount()).isZero(); assertThat(getUnderTest().getErrorCount()).isZero();
assertThat(getUnderTest().getSuccessCount()).isEqualTo(1);
assertThat(getUnderTest().getSuccessCount()).isOne();
assertThat(getUnderTest().getProcessingTime()).isEqualTo(SOME_PROCESSING_TIME); assertThat(getUnderTest().getProcessingTime()).isEqualTo(SOME_PROCESSING_TIME);
} }



+ 11
- 11
server/sonar-ce/src/test/java/org/sonar/ce/queue/InternalCeQueueImplTest.java View File



// available in history // available in history
Optional<CeActivityDto> history = db.getDbClient().ceActivityDao().selectByUuid(db.getSession(), task.getUuid()); Optional<CeActivityDto> history = db.getDbClient().ceActivityDao().selectByUuid(db.getSession(), task.getUuid());
assertThat(history.isPresent()).isTrue();
assertThat(history).isPresent();
assertThat(history.get().getStatus()).isEqualTo(CeActivityDto.Status.SUCCESS); assertThat(history.get().getStatus()).isEqualTo(CeActivityDto.Status.SUCCESS);
assertThat(history.get().getIsLast()).isTrue(); assertThat(history.get().getIsLast()).isTrue();
assertThat(history.get().getAnalysisUuid()).isNull(); assertThat(history.get().getAnalysisUuid()).isNull();


// available in history // available in history
Optional<CeActivityDto> history = db.getDbClient().ceActivityDao().selectByUuid(db.getSession(), task.getUuid()); Optional<CeActivityDto> history = db.getDbClient().ceActivityDao().selectByUuid(db.getSession(), task.getUuid());
assertThat(history.isPresent()).isTrue();
assertThat(history).isPresent();
assertThat(history.get().getAnalysisUuid()).isNull(); assertThat(history.get().getAnalysisUuid()).isNull();
} }




// available in history // available in history
Optional<CeActivityDto> history = db.getDbClient().ceActivityDao().selectByUuid(db.getSession(), task.getUuid()); Optional<CeActivityDto> history = db.getDbClient().ceActivityDao().selectByUuid(db.getSession(), task.getUuid());
assertThat(history.isPresent()).isTrue();
assertThat(history).isPresent();
assertThat(history.get().getAnalysisUuid()).isEqualTo("U1"); assertThat(history.get().getAnalysisUuid()).isEqualTo("U1");
} }


CeTask task = submit(CeTaskTypes.REPORT, newProjectDto("PROJECT_1")); CeTask task = submit(CeTaskTypes.REPORT, newProjectDto("PROJECT_1"));


Optional<CeTask> peek = underTest.peek(WORKER_UUID_1, true); Optional<CeTask> peek = underTest.peek(WORKER_UUID_1, true);
assertThat(peek.isPresent()).isTrue();
assertThat(peek).isPresent();
assertThat(peek.get().getUuid()).isEqualTo(task.getUuid()); assertThat(peek.get().getUuid()).isEqualTo(task.getUuid());
assertThat(peek.get().getType()).isEqualTo(CeTaskTypes.REPORT); assertThat(peek.get().getType()).isEqualTo(CeTaskTypes.REPORT);
assertThat(peek.get().getComponent()).contains(new CeTask.Component("PROJECT_1", null, null)); assertThat(peek.get().getComponent()).contains(new CeTask.Component("PROJECT_1", null, null));


// no more pending tasks // no more pending tasks
peek = underTest.peek(WORKER_UUID_2, true); peek = underTest.peek(WORKER_UUID_2, true);
assertThat(peek.isPresent()).isFalse();
assertThat(peek).isEmpty();
} }


@Test @Test
CeTask task = submit(CeTaskTypes.REPORT, branch); CeTask task = submit(CeTaskTypes.REPORT, branch);


Optional<CeTask> peek = underTest.peek(WORKER_UUID_1, true); Optional<CeTask> peek = underTest.peek(WORKER_UUID_1, true);
assertThat(peek.isPresent()).isTrue();
assertThat(peek).isPresent();
assertThat(peek.get().getUuid()).isEqualTo(task.getUuid()); assertThat(peek.get().getUuid()).isEqualTo(task.getUuid());
assertThat(peek.get().getType()).isEqualTo(CeTaskTypes.REPORT); assertThat(peek.get().getType()).isEqualTo(CeTaskTypes.REPORT);
assertThat(peek.get().getComponent()).contains(new CeTask.Component(branch.uuid(), branch.getDbKey(), branch.name())); assertThat(peek.get().getComponent()).contains(new CeTask.Component(branch.uuid(), branch.getDbKey(), branch.name()));


// no more pending tasks // no more pending tasks
peek = underTest.peek(WORKER_UUID_2, true); peek = underTest.peek(WORKER_UUID_2, true);
assertThat(peek.isPresent()).isFalse();
assertThat(peek).isEmpty();
} }


@Test @Test
when(computeEngineStatus.getStatus()).thenReturn(STOPPING); when(computeEngineStatus.getStatus()).thenReturn(STOPPING);


Optional<CeTask> peek = underTest.peek(WORKER_UUID_1, true); Optional<CeTask> peek = underTest.peek(WORKER_UUID_1, true);
assertThat(peek.isPresent()).isFalse();
assertThat(peek).isEmpty();
} }


@Test @Test
underTest.cancel(db.getSession(), queueDto); underTest.cancel(db.getSession(), queueDto);


Optional<CeActivityDto> activity = db.getDbClient().ceActivityDao().selectByUuid(db.getSession(), task.getUuid()); Optional<CeActivityDto> activity = db.getDbClient().ceActivityDao().selectByUuid(db.getSession(), task.getUuid());
assertThat(activity.isPresent()).isTrue();
assertThat(activity).isPresent();
assertThat(activity.get().getStatus()).isEqualTo(CeActivityDto.Status.CANCELED); assertThat(activity.get().getStatus()).isEqualTo(CeActivityDto.Status.CANCELED);
} }


history = db.getDbClient().ceActivityDao().selectByUuid(db.getSession(), pendingTask2.getUuid()); history = db.getDbClient().ceActivityDao().selectByUuid(db.getSession(), pendingTask2.getUuid());
assertThat(history.get().getStatus()).isEqualTo(CeActivityDto.Status.CANCELED); assertThat(history.get().getStatus()).isEqualTo(CeActivityDto.Status.CANCELED);
history = db.getDbClient().ceActivityDao().selectByUuid(db.getSession(), inProgressTask.getUuid()); history = db.getDbClient().ceActivityDao().selectByUuid(db.getSession(), inProgressTask.getUuid());
assertThat(history.isPresent()).isFalse();
assertThat(history).isEmpty();
} }


@Test @Test


private void verifyCeQueueDtoForTaskSubmit(CeTaskSubmit taskSubmit) { private void verifyCeQueueDtoForTaskSubmit(CeTaskSubmit taskSubmit) {
Optional<CeQueueDto> queueDto = db.getDbClient().ceQueueDao().selectByUuid(db.getSession(), taskSubmit.getUuid()); Optional<CeQueueDto> queueDto = db.getDbClient().ceQueueDao().selectByUuid(db.getSession(), taskSubmit.getUuid());
assertThat(queueDto.isPresent()).isTrue();
assertThat(queueDto).isPresent();
CeQueueDto dto = queueDto.get(); CeQueueDto dto = queueDto.get();
assertThat(dto.getTaskType()).isEqualTo(taskSubmit.getType()); assertThat(dto.getTaskType()).isEqualTo(taskSubmit.getType());
Optional<CeTaskSubmit.Component> component = taskSubmit.getComponent(); Optional<CeTaskSubmit.Component> component = taskSubmit.getComponent();

+ 0
- 0
server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/CeProcessingSchedulerImplTest.java View File


Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save