You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

EmbeddedRunnerTest.java 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. /*
  2. * Sonar Runner - API
  3. * Copyright (C) 2011 SonarSource
  4. * dev@sonar.codehaus.org
  5. *
  6. * This program is free software; you can redistribute it and/or
  7. * modify it under the terms of the GNU Lesser General Public
  8. * License as published by the Free Software Foundation; either
  9. * version 3 of the License, or (at your option) any later version.
  10. *
  11. * This program is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14. * Lesser General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU Lesser General Public
  17. * License along with this program; if not, write to the Free Software
  18. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02
  19. */
  20. package org.sonar.runner.api;
  21. import org.junit.Test;
  22. import org.mockito.ArgumentMatcher;
  23. import org.sonar.runner.impl.BatchLauncher;
  24. import org.sonar.runner.impl.Constants;
  25. import java.util.List;
  26. import java.util.Properties;
  27. import static org.fest.assertions.Assertions.assertThat;
  28. import static org.mockito.Matchers.argThat;
  29. import static org.mockito.Mockito.mock;
  30. import static org.mockito.Mockito.verify;
  31. public class EmbeddedRunnerTest {
  32. @Test
  33. public void should_create() {
  34. assertThat(EmbeddedRunner.create()).isNotNull().isInstanceOf(EmbeddedRunner.class);
  35. }
  36. @Test
  37. public void test_app() {
  38. EmbeddedRunner runner = EmbeddedRunner.create().setApp("Eclipse", "3.1");
  39. assertThat(runner.app()).isEqualTo("Eclipse");
  40. assertThat(runner.appVersion()).isEqualTo("3.1");
  41. }
  42. @Test
  43. public void should_set_unmasked_packages() {
  44. EmbeddedRunner runner = EmbeddedRunner.create();
  45. assertThat(runner.property(Constants.UNMASKED_PACKAGES, null)).isNull();
  46. runner = EmbeddedRunner.create().setUnmaskedPackages("org.apache.ant", "org.ant");
  47. assertThat(runner.property(Constants.UNMASKED_PACKAGES, null)).isEqualTo("org.apache.ant,org.ant");
  48. }
  49. @Test
  50. public void should_add_extensions() {
  51. EmbeddedRunner runner = EmbeddedRunner.create();
  52. assertThat(runner.extensions()).isEmpty();
  53. FakeExtension fakeExtension = new FakeExtension();
  54. runner.addExtensions(fakeExtension);
  55. assertThat(runner.extensions()).containsExactly(fakeExtension);
  56. }
  57. @Test
  58. public void should_set_properties() {
  59. EmbeddedRunner runner = EmbeddedRunner.create();
  60. runner.setProperty("sonar.projectKey", "foo");
  61. runner.addProperties(new Properties() {{
  62. setProperty("sonar.login", "admin");
  63. setProperty("sonar.password", "gniark");
  64. }});
  65. assertThat(runner.property("sonar.projectKey", null)).isEqualTo("foo");
  66. assertThat(runner.property("sonar.login", null)).isEqualTo("admin");
  67. assertThat(runner.property("sonar.password", null)).isEqualTo("gniark");
  68. assertThat(runner.property("not.set", "this_is_default")).isEqualTo("this_is_default");
  69. }
  70. @Test
  71. public void should_launch_batch() {
  72. BatchLauncher batchLauncher = mock(BatchLauncher.class);
  73. EmbeddedRunner runner = new EmbeddedRunner(batchLauncher);
  74. final FakeExtension fakeExtension = new FakeExtension();
  75. runner.addExtensions(fakeExtension);
  76. runner.setProperty("sonar.projectKey", "foo");
  77. runner.execute();
  78. verify(batchLauncher).execute(argThat(new ArgumentMatcher<Properties>() {
  79. @Override
  80. public boolean matches(Object o) {
  81. return "foo".equals(((Properties) o).getProperty("sonar.projectKey"));
  82. }
  83. }), argThat(new ArgumentMatcher<List<Object>>() {
  84. @Override
  85. public boolean matches(Object o) {
  86. return ((List) o).contains(fakeExtension);
  87. }
  88. }));
  89. }
  90. static class FakeExtension {
  91. }
  92. }