/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
package org.onap.policy.pdpx.main.startstop;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import org.junit.After;
import org.junit.Assert;
+import org.junit.Before;
+import org.junit.BeforeClass;
import org.junit.Test;
+import org.onap.policy.pdpx.main.CommonRest;
import org.onap.policy.pdpx.main.PolicyXacmlPdpException;
-import org.onap.policy.pdpx.main.parameters.CommonTestData;
/**
* Class to perform unit test of Main.
*
*/
-public class TestMain {
+public class TestMain extends CommonRest {
+
+ private Main main;
+
+ /**
+ * Sets up properties and configuration.
+ * @throws Exception if an error occurs
+ */
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception {
+ CommonRest.setUpBeforeClass();
+
+ // don't want the common "main" running
+ CommonRest.stopMain();
+ }
+
+ @Before
+ public void setUp() {
+ main = null;
+ }
+
+ /**
+ * Shuts "main" down.
+ */
+ @After
+ public void tearDown() {
+ if (main != null) {
+ main.shutdown();
+ }
+ }
@Test
public void testMain() throws PolicyXacmlPdpException {
- final String[] xacmlPdpConfigParameters = {"-c", "parameters/XacmlPdpConfigParameters.json"};
- final Main main = new Main(xacmlPdpConfigParameters);
- assertTrue(main.getParameters().isValid());
- assertEquals(CommonTestData.PDPX_GROUP_NAME, main.getParameters().getName());
+ final String[] xacmlPdpConfigParameters = {"-c", CONFIG_FILE};
+ main = new Main(xacmlPdpConfigParameters);
main.shutdown();
+ main = null;
}
@Test
- public void testMain_NoArguments() throws PolicyXacmlPdpException {
+ public void testMain_NoArguments() {
final String[] xacmlPdpConfigParameters = {};
- final Main main = new Main(xacmlPdpConfigParameters);
- assertNull(main.getParameters());
- main.shutdown();
+ assertThatThrownBy(() -> new Main(xacmlPdpConfigParameters)).isInstanceOf(PolicyXacmlPdpException.class)
+ .hasMessage("policy xacml pdp configuration file was not specified as an argument");
}
@Test
public void testMain_InvalidArguments() {
final String[] xacmlPdpConfigParameters = {"parameters/XacmlPdpConfigParameters.json"};
- final Main main = new Main(xacmlPdpConfigParameters);
- assertNull(main.getParameters());
+ assertThatThrownBy(() -> new Main(xacmlPdpConfigParameters)).isInstanceOf(PolicyXacmlPdpException.class)
+ .hasMessage("too many command line arguments specified : [parameters/XacmlPdpConfigParameters.json]");
}
@Test
- public void testMain_Help() {
+ public void testMain_Help() throws PolicyXacmlPdpException {
final String[] xacmlPdpConfigParameters = {"-h"};
- final Main main = new Main(xacmlPdpConfigParameters);
- final String message = "-h,--help outputs the usage of this command";
- Assert.assertTrue(main.getArgumentMessage().contains(message));
+ Assert.assertTrue(new Main(xacmlPdpConfigParameters).getArgumentMessage().contains("-h,--help"));
}
@Test
- public void testMain_InvalidParameters() {
+ public void testMain_InvalidParameters() {
final String[] xacmlPdpConfigParameters = {"-c", "parameters/XacmlPdpConfigParameters_InvalidName.json"};
- final Main main = new Main(xacmlPdpConfigParameters);
- assertNull(main.getParameters());
+ assertThatThrownBy(() -> new Main(xacmlPdpConfigParameters)).isInstanceOf(PolicyXacmlPdpException.class)
+ .hasMessageContaining("validation error");
}
}