From: Julien Lancelot Date: Tue, 17 Mar 2015 15:19:11 +0000 (+0100) Subject: Add unit tests X-Git-Tag: 5.2-RC1~2551 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=0a5224287f9dd6a3f0d3098d2f21bb4c69023f12;p=sonarqube.git Add unit tests --- diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/step/BaseStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/step/BaseStepTest.java index 6515c697fe7..fa355fc4ea3 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/step/BaseStepTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/step/BaseStepTest.java @@ -36,6 +36,7 @@ public abstract class BaseStepTest { @Test public void test_metadata() throws Exception { assertThat(step().toString()).isNotEmpty(); + assertThat(step().getDescription()).isNotEmpty(); assertThat(step().supportedProjectQualifiers().length).isGreaterThan(0); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistComponentLinksStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistComponentLinksStepTest.java index 30858238398..3c7492581f2 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistComponentLinksStepTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistComponentLinksStepTest.java @@ -37,6 +37,7 @@ import org.sonar.server.db.DbClient; import org.sonar.test.DbTests; import java.io.File; +import java.io.IOException; import java.util.Locale; import static org.assertj.core.api.Assertions.assertThat; @@ -45,7 +46,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @Category(DbTests.class) -public class PersistComponentLinksStepTest { +public class PersistComponentLinksStepTest extends BaseStepTest { @Rule public TemporaryFolder temp = new TemporaryFolder(); @@ -77,6 +78,11 @@ public class PersistComponentLinksStepTest { step = new PersistComponentLinksStep(dbClient, i18n); } + @Override + protected ComputationStep step() throws IOException { + return step; + } + @After public void tearDown() throws Exception { session.close(); @@ -147,6 +153,30 @@ public class PersistComponentLinksStepTest { dbTester.assertDbUnit(getClass(), "nothing_to_do_when_link_already_exists.xml", "project_links"); } + @Test + public void do_not_add_links_on_file() throws Exception { + dbTester.prepareDbUnit(getClass(), "empty.xml"); + + File reportDir = temp.newFolder(); + BatchReportWriter writer = new BatchReportWriter(reportDir); + writer.writeMetadata(BatchReport.Metadata.newBuilder() + .setRootComponentRef(1) + .setProjectKey("PROJECT_KEY") + .setAnalysisDate(150000000L) + .build()); + + writer.writeComponent(BatchReport.Component.newBuilder() + .setRef(1) + .setType(Constants.ComponentType.FILE) + .setUuid("ABCD") + .addLink(BatchReport.ComponentLink.newBuilder().setType(Constants.ComponentLinkType.HOME).setHref("http://www.sonarqube.org").build()) + .build()); + + step.execute(new ComputationContext(new BatchReportReader(reportDir), mock(ComponentDto.class))); + + assertThat(dbTester.countRowsOfTable("project_links")).isEqualTo(0); + } + @Test public void update_link() throws Exception { dbTester.prepareDbUnit(getClass(), "update_link.xml"); diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistEventsStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistEventsStepTest.java index 5e4d769ed77..9482e655740 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistEventsStepTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistEventsStepTest.java @@ -37,13 +37,14 @@ import org.sonar.server.event.db.EventDao; import org.sonar.test.DbTests; import java.io.File; +import java.io.IOException; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @Category(DbTests.class) -public class PersistEventsStepTest { +public class PersistEventsStepTest extends BaseStepTest { @Rule public TemporaryFolder temp = new TemporaryFolder(); @@ -71,6 +72,11 @@ public class PersistEventsStepTest { step = new PersistEventsStep(dbClient, system2); } + @Override + protected ComputationStep step() throws IOException { + return step; + } + @After public void tearDown() throws Exception { session.close(); @@ -140,6 +146,48 @@ public class PersistEventsStepTest { dbTester.assertDbUnit(getClass(), "add_events-result.xml", "events"); } + @Test + public void persist_report_events_with_component_children() throws Exception { + dbTester.prepareDbUnit(getClass(), "empty.xml"); + + File reportDir = temp.newFolder(); + BatchReportWriter writer = new BatchReportWriter(reportDir); + writer.writeMetadata(BatchReport.Metadata.newBuilder() + .setRootComponentRef(1) + .setProjectKey("PROJECT_KEY") + .setAnalysisDate(150000000L) + .build()); + + writer.writeComponent(BatchReport.Component.newBuilder() + .setRef(1) + .setType(Constants.ComponentType.PROJECT) + .setUuid("ABCD") + .setSnapshotId(1000L) + .addEvent(BatchReport.Event.newBuilder() + .setName("Red (was Orange)") + .setCategory(Constants.EventCategory.ALERT) + .setDescription("Open issues > 0") + .build()) + .addChildRef(2) + .build()); + + writer.writeComponent(BatchReport.Component.newBuilder() + .setRef(2) + .setType(Constants.ComponentType.MODULE) + .setUuid("BCDE") + .setSnapshotId(1001L) + .addEvent(BatchReport.Event.newBuilder() + .setName("Red (was Orange)") + .setCategory(Constants.EventCategory.ALERT) + .setDescription("Open issues > 0") + .build() + ).build()); + + step.execute(new ComputationContext(new BatchReportReader(reportDir), mock(ComponentDto.class))); + + dbTester.assertDbUnit(getClass(), "persist_report_events_with_component_children-result.xml", "events"); + } + @Test public void create_version_event() throws Exception { dbTester.prepareDbUnit(getClass(), "empty.xml"); diff --git a/server/sonar-server/src/test/resources/org/sonar/server/computation/step/PersistEventsStepTest/persist_report_events_with_component_children-result.xml b/server/sonar-server/src/test/resources/org/sonar/server/computation/step/PersistEventsStepTest/persist_report_events_with_component_children-result.xml new file mode 100644 index 00000000000..1b186afb32a --- /dev/null +++ b/server/sonar-server/src/test/resources/org/sonar/server/computation/step/PersistEventsStepTest/persist_report_events_with_component_children-result.xml @@ -0,0 +1,10 @@ + + + + + + diff --git a/sonar-core/src/test/java/org/sonar/core/component/ComponentLinkDtoTest.java b/sonar-core/src/test/java/org/sonar/core/component/ComponentLinkDtoTest.java new file mode 100644 index 00000000000..bca227fa782 --- /dev/null +++ b/sonar-core/src/test/java/org/sonar/core/component/ComponentLinkDtoTest.java @@ -0,0 +1,49 @@ +/* + * SonarQube, open source software quality management tool. + * Copyright (C) 2008-2014 SonarSource + * mailto:contact AT sonarsource DOT com + * + * SonarQube is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * SonarQube is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +package org.sonar.core.component; + +import org.junit.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +public class ComponentLinkDtoTest { + + @Test + public void test_getters_and_setters() throws Exception { + ComponentLinkDto dto = new ComponentLinkDto() + .setId(1L) + .setComponentUuid("ABCD") + .setType("homepage") + .setName("Home") + .setHref("http://www.sonarqube.org"); + + assertThat(dto.getId()).isEqualTo(1L); + assertThat(dto.getComponentUuid()).isEqualTo("ABCD"); + assertThat(dto.getType()).isEqualTo("homepage"); + assertThat(dto.getName()).isEqualTo("Home"); + assertThat(dto.getHref()).isEqualTo("http://www.sonarqube.org"); + } + + @Test + public void test_provided_types() throws Exception { + assertThat(ComponentLinkDto.PROVIDED_TYPES).hasSize(5); + } +} diff --git a/sonar-core/src/test/java/org/sonar/core/event/EventDtoTest.java b/sonar-core/src/test/java/org/sonar/core/event/EventDtoTest.java new file mode 100644 index 00000000000..63c8e8e85a5 --- /dev/null +++ b/sonar-core/src/test/java/org/sonar/core/event/EventDtoTest.java @@ -0,0 +1,52 @@ +/* + * SonarQube, open source software quality management tool. + * Copyright (C) 2008-2014 SonarSource + * mailto:contact AT sonarsource DOT com + * + * SonarQube is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * SonarQube is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +package org.sonar.core.event; + +import org.junit.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +public class EventDtoTest { + + @Test + public void test_getters_and_setters() throws Exception { + EventDto dto = new EventDto() + .setId(1L) + .setName("1.0") + .setCategory("Version") + .setDescription("Version 1.0") + .setData("some data") + .setDate(1413407091086L) + .setComponentUuid("ABCD") + .setSnapshotId(1000L) + .setCreatedAt(1225630680000L); + + assertThat(dto.getId()).isEqualTo(1L); + assertThat(dto.getName()).isEqualTo("1.0"); + assertThat(dto.getCategory()).isEqualTo("Version"); + assertThat(dto.getDescription()).isEqualTo("Version 1.0"); + assertThat(dto.getData()).isEqualTo("some data"); + assertThat(dto.getComponentUuid()).isEqualTo("ABCD"); + assertThat(dto.getSnapshotId()).isEqualTo(1000L); + assertThat(dto.getCreatedAt()).isEqualTo(1225630680000L); + } + +}