Unit test for actor service provider added and technical debt removed.
Change-Id: I9573f1c3ff0252b166e06caaa88eb679a1fc7347
Signed-off-by: liamfallon <liam.fallon@ericsson.com>
Issue-ID: POLICY-455
Signed-off-by: liamfallon <liam.fallon@ericsson.com>
 import org.onap.policy.vnf.trafficgenerator.PGRequest;
 import org.onap.policy.vnf.trafficgenerator.PGStream;
 import org.onap.policy.vnf.trafficgenerator.PGStreams;
-import org.onap.policy.controlloop.actorServiceProvider.spi.Actor;
+import org.onap.policy.controlloop.actorserviceprovider.spi.Actor;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 
 import org.onap.policy.appclcm.LCMResponseWrapper;
 import org.onap.policy.controlloop.ControlLoopOperation;
 import org.onap.policy.controlloop.VirtualControlLoopEvent;
-import org.onap.policy.controlloop.actorServiceProvider.spi.Actor;
+import org.onap.policy.controlloop.actorserviceprovider.spi.Actor;
 import org.onap.policy.controlloop.policy.Policy;
 import org.onap.policy.controlloop.policy.PolicyResult;
 import org.onap.policy.drools.system.PolicyEngine;
 
 import org.onap.policy.aai.AAINQResponseWrapper;
 import org.onap.policy.controlloop.ControlLoopOperation;
 import org.onap.policy.controlloop.VirtualControlLoopEvent;
-import org.onap.policy.controlloop.actorServiceProvider.spi.Actor;
+import org.onap.policy.controlloop.actorserviceprovider.spi.Actor;
 import org.onap.policy.controlloop.policy.Policy;
 import org.onap.policy.drools.system.PolicyEngine;
 import org.onap.policy.rest.RESTManager;
 
+++ /dev/null
-/*-
- * ============LICENSE_START=======================================================
- * actor test
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.controlloop.actor.test;
-
-import static org.junit.Assert.*;
-
-import org.onap.policy.controlloop.actorServiceProvider.ActorService;
-import org.onap.policy.controlloop.actorServiceProvider.spi.Actor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class Test {
-       private static final Logger logger = LoggerFactory.getLogger(Test.class);
-       
-       @org.junit.Test
-       public void test() {
-               logger.debug("Dumping actors");
-               ActorService actorService = ActorService.getInstance();
-               assertNotNull(actorService);
-               int num = 0;
-               for (Actor actor : actorService.actors()) {
-                       logger.debug(actor.actor());
-                       for (String recipe : actor.recipes()) {
-                               logger.debug("\t {} {} {}", recipe, actor.recipeTargets(recipe), actor.recipePayloads(recipe));
-                       }
-                       num++;
-               }
-               logger.debug("Found {} actors", num);
-       }
-
-}
 
 import org.onap.policy.controlloop.policy.Policy;
 import org.onap.policy.drools.system.PolicyEngine;
 import org.onap.policy.rest.RESTManager;
-import org.onap.policy.controlloop.actorServiceProvider.spi.Actor;
+import org.onap.policy.controlloop.actorserviceprovider.spi.Actor;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 
 <?xml version="1.0"?>
-<project
-       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
-       xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <modelVersion>4.0.0</modelVersion>
        <parent>
-           <groupId>org.onap.policy.drools-applications</groupId>
+               <groupId>org.onap.policy.drools-applications</groupId>
                <artifactId>actors</artifactId>
                <version>1.2.0-SNAPSHOT</version>
        </parent>
        <artifactId>actorServiceProvider</artifactId>
+
+       <dependencies>
+               <dependency>
+                       <groupId>junit</groupId>
+                       <artifactId>junit</artifactId>
+                       <version>4.12</version>
+                       <scope>test</scope>
+               </dependency>
+       </dependencies>
 </project>
 
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.controlloop.actorServiceProvider;
+package org.onap.policy.controlloop.actorserviceprovider;
 
 import java.util.Iterator;
 import java.util.ServiceLoader;
 
-import org.onap.policy.controlloop.actorServiceProvider.spi.Actor;
+import org.onap.policy.controlloop.actorserviceprovider.spi.Actor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import com.google.common.collect.ImmutableList;
 
        private static final Logger logger = LoggerFactory.getLogger(ActorService.class);
        private static ActorService service;
-       
+
+       // USed to load actors  
        private ServiceLoader<Actor> loader;
        
        private ActorService() {
                Iterator<Actor> iter = loader.iterator();
                logger.debug("returning actors");
                while (iter.hasNext()) {
-                       logger.debug("Got {}", iter.next().actor());
+                       if (logger.isDebugEnabled()) {
+                               logger.debug("Got {}", iter.next().actor());
+                       }
                }
                
                return ImmutableList.copyOf(loader.iterator());
        }
-
 }
 
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.controlloop.actorServiceProvider.spi;
+package org.onap.policy.controlloop.actorserviceprovider.spi;
 
 import java.util.List;
 
 
--- /dev/null
+/*-
+ * ============LICENSE_START=======================================================
+ * TestActorServiceProvider
+ * ================================================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.controlloop.actorserviceprovider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.onap.policy.controlloop.actorserviceprovider.spi.Actor;
+
+public class TestActor implements Actor {
+       @Override
+       public String actor() {
+               return this.getClass().getSimpleName();
+       }
+
+       @Override
+       public List<String> recipes() {
+               List<String> recipieList = new ArrayList<>();
+               recipieList.add("Dorothy");
+               recipieList.add("Wizard");
+               
+               return recipieList;
+       }
+
+       @Override
+       public List<String> recipeTargets(String recipe) {
+               List<String> recipieTargetList = new ArrayList<>();
+               recipieTargetList.add("Wicked Witch");
+               recipieTargetList.add("Wizard of Oz");
+               
+               return recipieTargetList;
+       }
+
+       @Override
+       public List<String> recipePayloads(String recipe) {
+               List<String> recipiePayloadList = new ArrayList<>();
+               recipiePayloadList.add("Dorothy");
+               recipiePayloadList.add("Toto");
+               
+               return recipiePayloadList;
+       }
+}
 
--- /dev/null
+/*-
+ * ============LICENSE_START=======================================================
+ * TestActorServiceProvider
+ * ================================================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.controlloop.actorserviceprovider;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import org.junit.Test;
+import org.onap.policy.controlloop.actorserviceprovider.ActorService;
+import org.onap.policy.controlloop.actorserviceprovider.spi.Actor;
+
+public class TestActorServiceProvider {
+       
+       @Test
+       public void testActorServiceProvider() {
+               ActorService actorService = ActorService.getInstance();
+               assertNotNull(actorService);
+               
+               assertEquals(1, actorService.actors().size());
+
+               actorService = ActorService.getInstance();
+               assertNotNull(actorService);
+               
+               Actor testActor = ActorService.getInstance().actors().get(0);
+               assertNotNull(testActor);
+               
+               assertEquals("TestActor", testActor.actor());
+               
+               assertEquals(2, testActor.recipes().size());
+               assertEquals("Dorothy", testActor.recipes().get(0));
+               assertEquals("Wizard", testActor.recipes().get(1));
+               
+               assertEquals(2, testActor.recipeTargets("Dorothy").size());
+               assertEquals(2, testActor.recipePayloads("Dorothy").size());
+       }
+}
 
--- /dev/null
+org.onap.policy.controlloop.actorserviceprovider.TestActor
\ No newline at end of file
 
 mvn org.apache.maven.plugins:maven-dependency-plugin:3.0.2:get -Dartifact=org.onap.policy.drools-applications:trafficgenerator:${version}:jar -Dtransitive=false
 mvn org.apache.maven.plugins:maven-dependency-plugin:3.0.2:get -Dartifact=org.onap.policy.drools-applications:eventmanager:${version}:jar -Dtransitive=false
 mvn org.apache.maven.plugins:maven-dependency-plugin:3.0.2:get -Dartifact=org.onap.policy.drools-applications:guard:${version}:jar -Dtransitive=false
-mvn org.apache.maven.plugins:maven-dependency-plugin:3.0.2:get -Dartifact=org.onap.policy.drools-applications:actorServiceProvider:${version}:jar -Dtransitive=false
+mvn org.apache.maven.plugins:maven-dependency-plugin:3.0.2:get -Dartifact=org.onap.policy.drools-applications:actorserviceprovider:${version}:jar -Dtransitive=false
 mvn org.apache.maven.plugins:maven-dependency-plugin:3.0.2:get -Dartifact=org.onap.policy.drools-applications:actor.appc:${version}:jar -Dtransitive=false
 mvn org.apache.maven.plugins:maven-dependency-plugin:3.0.2:get -Dartifact=org.onap.policy.drools-applications:actor.appclcm:${version}:jar -Dtransitive=false
 mvn org.apache.maven.plugins:maven-dependency-plugin:3.0.2:get -Dartifact=org.onap.policy.drools-applications:actor.so:${version}:jar -Dtransitive=false