@Test
public void test_metadata() throws Exception {
assertThat(step().toString()).isNotEmpty();
+ assertThat(step().getDescription()).isNotEmpty();
assertThat(step().supportedProjectQualifiers().length).isGreaterThan(0);
}
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;
import static org.mockito.Mockito.when;
@Category(DbTests.class)
-public class PersistComponentLinksStepTest {
+public class PersistComponentLinksStepTest extends BaseStepTest {
@Rule
public TemporaryFolder temp = new TemporaryFolder();
step = new PersistComponentLinksStep(dbClient, i18n);
}
+ @Override
+ protected ComputationStep step() throws IOException {
+ return step;
+ }
+
@After
public void tearDown() throws Exception {
session.close();
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");
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();
step = new PersistEventsStep(dbClient, system2);
}
+ @Override
+ protected ComputationStep step() throws IOException {
+ return step;
+ }
+
@After
public void tearDown() throws Exception {
session.close();
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");
--- /dev/null
+<dataset>
+
+ <events id="1" name="Red (was Orange)" category="Alert" description="Open issues > 0"
+ event_data="[null]"
+ event_date="150000000" component_uuid="ABCD" snapshot_id="1000" created_at="1225630680000" />
+ <events id="2" name="Red (was Orange)" category="Alert" description="Open issues > 0"
+ event_data="[null]"
+ event_date="150000000" component_uuid="BCDE" snapshot_id="1001" created_at="1225630680000" />
+
+</dataset>
--- /dev/null
+/*
+ * 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);
+ }
+}
--- /dev/null
+/*
+ * 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);
+ }
+
+}