Flesh out DMaaP simulator
[policy/models.git] / models-sim / models-sim-dmaap / src / test / java / org / onap / policy / sim / dmaap / startstop / DmaapSimActivatorTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2019 AT&T Intellectual Property.
4  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.policy.sim.dmaap.startstop;
22
23 import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
24 import static org.junit.Assert.assertFalse;
25 import static org.junit.Assert.assertTrue;
26
27 import org.junit.After;
28 import org.junit.Before;
29 import org.junit.Test;
30 import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance;
31 import org.onap.policy.common.utils.services.Registry;
32 import org.onap.policy.models.sim.dmaap.parameters.DmaapSimParameterGroup;
33 import org.onap.policy.models.sim.dmaap.parameters.DmaapSimParameterHandler;
34 import org.onap.policy.models.sim.dmaap.startstop.DmaapSimActivator;
35 import org.onap.policy.models.sim.dmaap.startstop.DmaapSimCommandLineArguments;
36
37
38 /**
39  * Class to perform unit test of {@link DmaapSimActivator}}.
40  */
41 public class DmaapSimActivatorTest {
42
43     private DmaapSimActivator activator;
44
45     /**
46      * Initializes an activator.
47      *
48      * @throws Exception if an error occurs
49      */
50     @Before
51     public void setUp() throws Exception {
52         Registry.newRegistry();
53         HttpServletServerFactoryInstance.getServerFactory().destroy();
54
55         final String[] papConfigParameters = {"-c", "parameters/NormalParameters.json"};
56         final DmaapSimCommandLineArguments arguments = new DmaapSimCommandLineArguments(papConfigParameters);
57         final DmaapSimParameterGroup parGroup = new DmaapSimParameterHandler().getParameters(arguments);
58
59         activator = new DmaapSimActivator(parGroup);
60     }
61
62     /**
63      * Method for cleanup after each test.
64      *
65      * @throws Exception if an error occurs
66      */
67     @After
68     public void teardown() throws Exception {
69         if (activator != null && activator.isAlive()) {
70             activator.stop();
71         }
72     }
73
74     @Test
75     public void testDmaapSimActivator() {
76         assertFalse(activator.isAlive());
77         activator.start();
78         assertTrue(activator.isAlive());
79
80         // repeat - should throw an exception
81         assertThatIllegalStateException().isThrownBy(() -> activator.start());
82         assertTrue(activator.isAlive());
83     }
84
85     @Test
86     public void testTerminate() {
87         activator.start();
88         activator.stop();
89         assertFalse(activator.isAlive());
90
91         // repeat - should throw an exception
92         assertThatIllegalStateException().isThrownBy(() -> activator.stop());
93         assertFalse(activator.isAlive());
94     }
95 }