diff options
author | Simon Brandhof <simon.brandhof@gmail.com> | 2013-02-13 16:21:45 +0100 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@gmail.com> | 2013-02-13 16:31:21 +0100 |
commit | c32688aed22dd11d9ae337a60b92bd45b65127e5 (patch) | |
tree | febeb043c00707d68f5dfbf2fc69aecb30ec4ccd /sonar-batch/src/test/java/org/sonar/batch/scan/ScanContainerTest.java | |
parent | 695fca2e7412295fc041ff8d61cf727d35d05ce9 (diff) | |
download | sonarqube-c32688aed22dd11d9ae337a60b92bd45b65127e5.tar.gz sonarqube-c32688aed22dd11d9ae337a60b92bd45b65127e5.zip |
Move Maven stuff into a dedicated package
Diffstat (limited to 'sonar-batch/src/test/java/org/sonar/batch/scan/ScanContainerTest.java')
-rw-r--r-- | sonar-batch/src/test/java/org/sonar/batch/scan/ScanContainerTest.java | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/sonar-batch/src/test/java/org/sonar/batch/scan/ScanContainerTest.java b/sonar-batch/src/test/java/org/sonar/batch/scan/ScanContainerTest.java new file mode 100644 index 00000000000..b8ecbdc8b7a --- /dev/null +++ b/sonar-batch/src/test/java/org/sonar/batch/scan/ScanContainerTest.java @@ -0,0 +1,72 @@ +/* + * Sonar, open source software quality management tool. + * Copyright (C) 2008-2012 SonarSource + * mailto:contact AT sonarsource DOT com + * + * Sonar 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. + * + * Sonar 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 Sonar; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 + */ +package org.sonar.batch.scan; + +import org.apache.commons.configuration.PropertiesConfiguration; +import org.fest.assertions.Assertions; +import org.junit.Test; +import org.mockito.Matchers; +import org.sonar.api.batch.bootstrap.ProjectDefinition; +import org.sonar.api.database.model.Snapshot; +import org.sonar.api.platform.ComponentContainer; +import org.sonar.api.resources.Project; +import org.sonar.api.resources.Resource; +import org.sonar.batch.ProjectTree; +import org.sonar.batch.bootstrap.BatchSettings; +import org.sonar.batch.bootstrap.Container; +import org.sonar.batch.bootstrap.ExtensionInstaller; +import org.sonar.batch.bootstrap.ProjectSettings; +import org.sonar.batch.index.ResourcePersister; + +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ScanContainerTest { + @Test + public void should_register_project_extensions() { + // components injected in the parent container + final Project project = new Project("foo"); + project.setConfiguration(new PropertiesConfiguration()); + final ProjectTree projectTree = mock(ProjectTree.class); + when(projectTree.getProjectDefinition(project)).thenReturn(ProjectDefinition.create()); + final ResourcePersister resourcePersister = mock(ResourcePersister.class); + when(resourcePersister.getSnapshot(Matchers.<Resource>any())).thenReturn(new Snapshot()); + + final ExtensionInstaller extensionInstaller = mock(ExtensionInstaller.class); + Container batchModule = new Container() { + @Override + protected void configure() { + container.addSingleton(extensionInstaller); + container.addSingleton(projectTree); + container.addSingleton(resourcePersister); + container.addSingleton(new BatchSettings()); + } + }; + + batchModule.init(); + ScanContainer projectModule = new ScanContainer(project); + batchModule.installChild(projectModule); + + verify(extensionInstaller).installInspectionExtensions(any(ComponentContainer.class)); + Assertions.assertThat(projectModule.container().getComponentByType(ProjectSettings.class)).isNotNull(); + } +} |