123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- /*
- * SonarQube
- * Copyright (C) 2009-2019 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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.ce;
-
- import java.util.Properties;
- import org.junit.Rule;
- import org.junit.Test;
- import org.junit.rules.ExpectedException;
- import org.sonar.ce.container.ComputeEngineStatus;
- import org.sonar.ce.container.ComputeEngineContainer;
- import org.sonar.process.Props;
-
- public class ComputeEngineImplTest {
- @Rule
- public ExpectedException expectedException = ExpectedException.none();
-
- private ComputeEngineContainer computeEngineContainer = new NoOpComputeEngineContainer();
- private ComputeEngine underTest = new ComputeEngineImpl(new Props(new Properties()), computeEngineContainer);
-
- @Test
- public void startup_throws_ISE_when_called_twice() {
- underTest.startup();
-
- expectedException.expect(IllegalStateException.class);
- expectedException.expectMessage("startup() can not be called multiple times");
-
- underTest.startup();
- }
-
- @Test
- public void stopProcessing_throws_ISE_if_startup_was_not_called_before() {
- expectedException.expect(IllegalStateException.class);
- expectedException.expectMessage("stopProcessing() must not be called before startup()");
-
- underTest.stopProcessing();
- }
-
- @Test
- public void stopProcessing_throws_ISE_if_called_after_shutdown() {
- underTest.startup();
- underTest.shutdown();
-
- expectedException.expect(IllegalStateException.class);
- expectedException.expectMessage("stopProcessing() can not be called after shutdown()");
-
- underTest.stopProcessing();
- }
-
- @Test
- public void stopProcessing_throws_ISE_if_called_twice() {
- underTest.startup();
- underTest.stopProcessing();
-
- expectedException.expect(IllegalStateException.class);
- expectedException.expectMessage("stopProcessing() can not be called multiple times");
-
- underTest.stopProcessing();
- }
-
- @Test
- public void shutdown_throws_ISE_if_startup_was_not_called_before() {
- expectedException.expect(IllegalStateException.class);
- expectedException.expectMessage("shutdown() must not be called before startup()");
-
- underTest.shutdown();
- }
-
- @Test
- public void shutdown_throws_ISE_if_called_twice() {
- underTest.startup();
- underTest.shutdown();
-
- expectedException.expect(IllegalStateException.class);
- expectedException.expectMessage("shutdown() can not be called multiple times");
-
- underTest.shutdown();
- }
-
- private static class NoOpComputeEngineContainer implements ComputeEngineContainer {
- @Override
- public void setComputeEngineStatus(ComputeEngineStatus computeEngineStatus) {
- }
-
- @Override
- public ComputeEngineContainer start(Props props) {
- return this;
- }
-
- @Override
- public ComputeEngineContainer stopWorkers() {
- return this;
- }
-
- @Override
- public ComputeEngineContainer stop() {
- return this;
- }
- }
- }
|