ActorService constructor should be public 37/102437/1
authorJim Hahn <jrh3@att.com>
Wed, 26 Feb 2020 18:37:21 +0000 (13:37 -0500)
committerJim Hahn <jrh3@att.com>
Wed, 26 Feb 2020 18:37:21 +0000 (13:37 -0500)
Now that ActorService is no longer a singleton, the constructor
should be public so other classes can create an instance.
Also added a test to verify that each ActorService instance gets
its own instances of the actors.

Issue-ID: POLICY-1625
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: I78cabecc0ca6b355696a5d27489a4e59b6e7c012

models-interactions/model-actors/actorServiceProvider/src/main/java/org/onap/policy/controlloop/actorserviceprovider/ActorService.java
models-interactions/model-actors/actorServiceProvider/src/test/java/org/onap/policy/controlloop/actorserviceprovider/ActorServiceProviderTest.java

index 82f7444..e1b875d 100644 (file)
@@ -50,7 +50,7 @@ public class ActorService extends StartConfigPartial<Map<String, Map<String, Obj
     /**
      * Constructs the object and loads the list of actors.
      */
-    protected ActorService() {
+    public ActorService() {
         super("actors");
 
         Map<String, Actor> map = new HashMap<>();
index cca0694..abf156b 100644 (file)
@@ -23,6 +23,8 @@
 package org.onap.policy.controlloop.actorserviceprovider;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertTrue;
 
 import org.junit.Test;
@@ -50,5 +52,10 @@ public class ActorServiceProviderTest {
 
         assertEquals(2, dummyActor.recipeTargets(DOROTHY).size());
         assertEquals(2, dummyActor.recipePayloads(DOROTHY).size());
+
+        // verify that we get a new actor object if we create a new service
+        Actor dummyActor2 = new ActorService().getActor(DummyActor.class.getSimpleName());
+        assertNotNull(dummyActor2);
+        assertNotSame(dummyActor, dummyActor2);
     }
 }