package org.opennaas.core.resources.tests.capability; import junit.framework.Assert; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.BeforeClass; import org.junit.Test; import org.opennaas.core.resources.Resource; import org.opennaas.core.resources.ResourceException; import org.opennaas.core.resources.action.ActionSet; import org.opennaas.core.resources.capability.ICapabilityLifecycle; import org.opennaas.core.resources.descriptor.CapabilityDescriptor; import org.opennaas.core.resources.descriptor.Information; import org.opennaas.core.resources.mock.MockAction; import org.opennaas.core.resources.mock.MockActionSet; import org.opennaas.core.resources.mock.MockActionTwo; import org.opennaas.core.resources.mock.MockCapAction; import org.opennaas.core.resources.mock.MockCapActionTwo; import org.opennaas.core.resources.mock.MockCapability; import org.opennaas.core.resources.profile.IProfile; public class CapabilityTest { private static Log log = LogFactory.getLog(CapabilityTest.class); private static MockCapability capability = null; private static IProfile profile; private static String actionIdMock = "actionMock"; private static String actionIdCapabilityTwo = "actionCapabilityTwo"; private static String actionIdCapability = "actionCapability"; @BeforeClass public static void setUp() { /* init Profile */ ActionSet actionSet = new MockActionSet(); MockAction mockAction = new MockAction(); actionSet.putAction(actionIdMock, mockAction.getClass()); MockActionTwo mockActionTwo = new MockActionTwo(); actionSet.putAction(actionIdCapabilityTwo, mockActionTwo.getClass()); capability = new MockCapability(getMockCapabilityDescriptor()); // profile = new MockProfile(); // profile.addActionSetForCapability(actionSet, capability.getCapabilityInformation().getType()); Resource resource = new Resource(); // resource.setProfile(profile); capability.setResource(resource); /* init actionSet */ ActionSet actionSetCapability = new MockActionSet(); MockCapAction actionCapability = new MockCapAction(); actionSetCapability.putAction(actionIdCapability, actionCapability.getClass()); MockCapActionTwo actionCapabilityTwo = new MockCapActionTwo(); actionSetCapability.putAction(actionIdCapabilityTwo, actionCapabilityTwo.getClass()); capability.setActionSet(actionSetCapability); } private static CapabilityDescriptor getMockCapabilityDescriptor() { CapabilityDescriptor capabilityDescriptor = new CapabilityDescriptor(); Information information = new Information(); information.setName("Mock capability"); information.setType("Mock"); information.setVersion("0.0.1"); capabilityDescriptor.setCapabilityInformation(information); return capabilityDescriptor; } @Test public void printInfo() { log.info(capability.toString()); } @Test public void testInitialize() throws ResourceException { capability.initialize(); Assert.assertEquals(ICapabilityLifecycle.State.INITIALIZED, capability.getState()); MockCapability mockCapability = capability; Assert.assertEquals(mockCapability.getState(), ICapabilityLifecycle.State.INITIALIZED); } @Test public void testActivate() throws ResourceException { capability.activate(); Assert.assertEquals(ICapabilityLifecycle.State.ACTIVE, capability.getState()); MockCapability mockCapability = capability; Assert.assertEquals(mockCapability.getState(), ICapabilityLifecycle.State.ACTIVE); } // @Test FIXME need to test with well formed ->IProtocolSessionManager psm // public void testCreateAction() throws ResourceException { // // Action action; // IProtocolSessionManager psm = new ProtocolSessionManager("deviceID"); // try { // log.info("INFO: Checking action Capability"); // action = capability.createAction(actionIdCapability); // action.execute(psm); // // Assert.assertTrue(action instanceof MockCapAction); // // log.info("INFO: Checking action actionID"); // action = capability.createAction(actionIdMock); // action.execute(psm); // Assert.assertTrue(action instanceof MockAction); // // log.info("INFO: Checking action capability two, it must use mock action two, because of Profile"); // action = capability.createAction(actionIdCapabilityTwo); // action.execute(psm); // // Assert.assertTrue(action instanceof MockActionTwo); // // } catch (ActionException e) { // Assert.fail(e.getLocalizedMessage()); // } // // } @Test public void testDeactivate() throws ResourceException { capability.deactivate(); Assert.assertEquals(ICapabilityLifecycle.State.INACTIVE, capability.getState()); MockCapability mockCapability = capability; Assert.assertEquals(mockCapability.getState(), ICapabilityLifecycle.State.INACTIVE); } @Test public void testShutdown() throws ResourceException { capability.shutdown(); Assert.assertEquals(ICapabilityLifecycle.State.SHUTDOWN, capability.getState()); MockCapability mockCapability = capability; Assert.assertEquals(mockCapability.getState(), ICapabilityLifecycle.State.SHUTDOWN); } }