X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=service%2Fresource-container%2Funittests%2FResourceContainerTest.cpp;h=7d00a9b9700354ae7a8ba53484c9b4da602cb785;hb=390866079e285d2c74918432c0d597d5da52f8a0;hp=3b99bbf02f0cb8ce40d3eb9c702425be7cde1292;hpb=3e9402ad71cb3e93266a77796f44d17bab9853fd;p=platform%2Fupstream%2Fiotivity.git diff --git a/service/resource-container/unittests/ResourceContainerTest.cpp b/service/resource-container/unittests/ResourceContainerTest.cpp index 3b99bbf..7d00a9b 100644 --- a/service/resource-container/unittests/ResourceContainerTest.cpp +++ b/service/resource-container/unittests/ResourceContainerTest.cpp @@ -26,6 +26,7 @@ #include #include #include +#include #include @@ -42,6 +43,7 @@ #include "RCSResourceObject.h" #include "RCSRemoteResourceObject.h" +#include "SoftSensorResource.h" #include "ResourceContainerTestSimulator.h" @@ -98,17 +100,67 @@ class TestBundleResource: public BundleResource public: virtual void initAttributes() { } - virtual void handleSetAttributesRequest(RCSResourceAttributes &attr) + virtual void handleSetAttributesRequest(const RCSResourceAttributes &attr) { BundleResource::setAttributes(attr); } - virtual RCSResourceAttributes &handleGetAttributesRequest() + virtual RCSResourceAttributes handleGetAttributesRequest() { return BundleResource::getAttributes(); } }; +/*Fake bundle resource class for testing*/ +class TestBundleResourceWithAttrs: public BundleResource +{ + public: + virtual void initAttributes() { + setAttribute("attrib1", RCSResourceAttributes::Value("test")); + setAttribute("attrib2", RCSResourceAttributes::Value(1)); + setAttribute("attrib3", RCSResourceAttributes::Value(true)); + } + + virtual void handleSetAttributesRequest(const RCSResourceAttributes &attr) + { + BundleResource::setAttributes(attr); + } + + virtual RCSResourceAttributes handleGetAttributesRequest() + { + return BundleResource::getAttributes(); + } +}; + + +/*Fake bundle resource class for testing*/ +class TestSoftSensorResource: public SoftSensorResource +{ + public: + virtual void initAttributes() { + SoftSensorResource::initAttributes(); + } + + virtual void handleSetAttributesRequest(const RCSResourceAttributes &attr) + { + BundleResource::setAttributes(attr); + } + + virtual RCSResourceAttributes handleGetAttributesRequest() + { + return BundleResource::getAttributes(); + } + + virtual void executeLogic(){ + + } + + virtual void onUpdatedInputResource( + std::string, std::vector){ + + } +}; + class ResourceContainerTest: public TestWithMock { @@ -127,18 +179,70 @@ class ResourceContainerTest: public TestWithMock } }; +TEST_F(ResourceContainerTest, TestBundleResource) +{ + TestBundleResourceWithAttrs testResource; + testResource.initAttributes(); + + // check if initAttributes worked + EXPECT_STREQ("\"test\"", testResource.getAttribute("attrib1").toString().c_str()); + + std::list attrNames = testResource.getAttributeNames(); + ASSERT_TRUE(std::find(attrNames.begin(), attrNames.end(), "attrib1") != attrNames.end()); + + ASSERT_FALSE(testResource.getAttributes().contains("attrib4")); + + testResource.getAttributeNames(); + + RCSResourceAttributes fullAttributes; + + fullAttributes["attrib1"] = "test"; + fullAttributes["attrib2"] = 1; + fullAttributes["attrib3"] = true; + + testResource.setAttributes(fullAttributes); + + ASSERT_TRUE(testResource.getAttributes().contains("attrib1")); + + fullAttributes["attrib1"] = "test2"; + fullAttributes["attrib2"] = 2; + fullAttributes["attrib3"] = false; + + testResource.handleSetAttributesRequest(fullAttributes); + + EXPECT_EQ((unsigned int) 3, testResource.getAttributeNames().size()); + + EXPECT_EQ((unsigned int) 3, testResource.handleGetAttributesRequest().size()); + std::string testString = "test"; + testResource.setAttribute("attrib1", RCSResourceAttributes::Value(testString), false); + + testResource.setAttributes(fullAttributes, false); + + EXPECT_STREQ("\"test2\"", testResource.getAttribute("attrib1").toString().c_str()); + EXPECT_EQ(2, testResource.getAttribute("attrib2")); + + testResource.setAttribute("attrib1", RCSResourceAttributes::Value("test")); + EXPECT_STREQ("\"test\"", testResource.getAttribute("attrib1").toString().c_str()); + EXPECT_EQ(2, testResource.getAttribute("attrib2")); +} + +TEST_F(ResourceContainerTest, TestSoftSensorResource) +{ + TestSoftSensorResource softSensorResource; + softSensorResource.initAttributes(); + EXPECT_EQ((unsigned int) 0, softSensorResource.getAttributeNames().size()); +} + + TEST_F(ResourceContainerTest, BundleRegisteredWhenContainerStartedWithValidConfigFile) { m_pResourceContainer->startContainer(m_strConfigPath); EXPECT_GT(m_pResourceContainer->listBundles().size(), (unsigned int) 0); - cout << "now checking for bunlde ids " << endl; EXPECT_STREQ("oic.bundle.test", (*m_pResourceContainer->listBundles().begin())->getID().c_str()); EXPECT_STREQ("libTestBundle.so", (*m_pResourceContainer->listBundles().begin())->getPath().c_str()); EXPECT_STREQ("1.0.0", (*m_pResourceContainer->listBundles().begin())->getVersion().c_str()); - - cout << "Now stopping container." << endl; m_pResourceContainer->stopContainer(); } @@ -148,7 +252,7 @@ TEST_F(ResourceContainerTest, BundleLoadedWhenContainerStartedWithValidConfigFil EXPECT_GT(m_pResourceContainer->listBundles().size(), (unsigned int) 0); unique_ptr first = std::move(*m_pResourceContainer->listBundles().begin()); - unique_ptr firstInternal(static_cast(first.release())); + unique_ptr firstInternal((BundleInfoInternal*)first.release()); EXPECT_TRUE( firstInternal->isLoaded() ); EXPECT_NE(nullptr, firstInternal->getBundleHandle()); @@ -162,7 +266,7 @@ TEST_F(ResourceContainerTest, BundleActivatedWhenContainerStartedWithValidConfig EXPECT_GT(m_pResourceContainer->listBundles().size(), (unsigned int) 0); unique_ptr first = std::move(*m_pResourceContainer->listBundles().begin()); - unique_ptr firstInternal(static_cast(first.release())); + unique_ptr firstInternal((BundleInfoInternal*)first.release()); EXPECT_TRUE(firstInternal->isActivated()); EXPECT_NE(nullptr,firstInternal->getBundleActivator()); @@ -197,7 +301,7 @@ TEST_F(ResourceContainerTest, BundleStoppedWithStartBundleAPI) m_pResourceContainer->stopBundle("oic.bundle.test"); unique_ptr first = std::move(*m_pResourceContainer->listBundles().begin()); - unique_ptr firstInternal(static_cast(first.release())); + unique_ptr firstInternal((BundleInfoInternal*)first.release()); EXPECT_FALSE(firstInternal->isActivated()); m_pResourceContainer->stopContainer(); @@ -209,7 +313,7 @@ TEST_F(ResourceContainerTest, BundleStartedWithStartBundleAPI) m_pResourceContainer->stopBundle("oic.bundle.test"); m_pResourceContainer->startBundle("oic.bundle.test"); unique_ptr first = std::move(*m_pResourceContainer->listBundles().begin()); - unique_ptr firstInternal(static_cast(first.release())); + unique_ptr firstInternal((BundleInfoInternal*)first.release()); EXPECT_TRUE(firstInternal->isActivated()); m_pResourceContainer->stopContainer(); @@ -225,7 +329,7 @@ TEST_F(ResourceContainerTest, AddNewSoBundleToContainer) EXPECT_EQ(bundles.size() + 1, m_pResourceContainer->listBundles().size()); unique_ptr first = std::move(*m_pResourceContainer->listBundles().begin()); - unique_ptr firstInternal(static_cast(first.release())); + unique_ptr firstInternal((BundleInfoInternal*)first.release()); EXPECT_TRUE(firstInternal->isLoaded()); } @@ -306,6 +410,7 @@ class ResourceContainerBundleAPITest: public TestWithMock m_pBundleResource->m_bundleId = "oic.bundle.test"; m_pBundleResource->m_uri = "/test_resource"; m_pBundleResource->m_resourceType = "container.test"; + m_pBundleResource->m_interface = "oic.if.baseline"; } }; @@ -315,9 +420,10 @@ TEST_F(ResourceContainerBundleAPITest, ResourceServerCreatedWhenRegisterResource m_pBundleResource->m_bundleId = "oic.bundle.test"; m_pBundleResource->m_uri = "/test_resource/test"; m_pBundleResource->m_resourceType = "container.test"; + m_pBundleResource->m_interface = "oic.if.baseline"; mocks.ExpectCallFunc(ResourceContainerImpl::buildResourceObject).With(m_pBundleResource->m_uri, - m_pBundleResource->m_resourceType).Return(nullptr); + m_pBundleResource->m_resourceType, m_pBundleResource->m_interface).Return(nullptr); m_pResourceContainer->registerResource(m_pBundleResource); } @@ -410,168 +516,22 @@ class ResourceContainerImplTest: public TestWithMock public: ResourceContainerImpl *m_pResourceContainer; - BundleInfoInternal *m_pBundleInfo; + shared_ptr m_pBundleInfo; protected: void SetUp() { TestWithMock::SetUp(); m_pResourceContainer = ResourceContainerImpl::getImplInstance(); - m_pBundleInfo = new BundleInfoInternal(); + m_pBundleInfo = std::make_shared(); } void TearDown() { - delete m_pBundleInfo; + m_pBundleInfo.reset(); } }; -TEST_F(ResourceContainerImplTest, SoBundleLoadedWhenRegisteredWithRegisterBundleAPI) -{ - m_pBundleInfo->setPath("libTestBundle.so"); - m_pBundleInfo->setActivatorName("test"); - m_pBundleInfo->setVersion("1.0"); - m_pBundleInfo->setLibraryPath("."); - m_pBundleInfo->setID("oic.bundle.test"); - - m_pResourceContainer->registerBundle(m_pBundleInfo); - - EXPECT_NE(nullptr, ((BundleInfoInternal *)m_pBundleInfo)->getBundleHandle()); -} - -#if (JAVA_SUPPORT_TEST) -TEST_F(ResourceContainerImplTest, JavaBundleLoadedWhenRegisteredWithRegisterBundleAPIWrongPath) -{ - m_pBundleInfo->setPath("wrong_path.jar"); - m_pBundleInfo->setActivatorName("org/iotivity/bundle/hue/HueBundleActivator"); - m_pBundleInfo->setLibraryPath("../."); - m_pBundleInfo->setVersion("1.0"); - m_pBundleInfo->setID("oic.bundle.java.test"); - - m_pResourceContainer->registerBundle(m_pBundleInfo); - EXPECT_FALSE(((BundleInfoInternal *)m_pBundleInfo)->isLoaded()); -} - -TEST_F(ResourceContainerImplTest, JavaBundleTest) -{ - m_pBundleInfo->setPath("TestBundleJava/hue-0.1-jar-with-dependencies.jar"); - m_pBundleInfo->setActivatorName("org/iotivity/bundle/hue/HueBundleActivator"); - m_pBundleInfo->setLibraryPath("../."); - m_pBundleInfo->setVersion("1.0"); - m_pBundleInfo->setID("oic.bundle.java.test"); - - m_pResourceContainer->registerBundle(m_pBundleInfo); - EXPECT_TRUE(((BundleInfoInternal *)m_pBundleInfo)->isLoaded()); - - m_pResourceContainer->activateBundle(m_pBundleInfo); - EXPECT_TRUE(((BundleInfoInternal *) m_pBundleInfo)->isActivated()); - - m_pResourceContainer->deactivateBundle(m_pBundleInfo); - EXPECT_FALSE(((BundleInfoInternal *) m_pBundleInfo)->isActivated()); -} -#endif - -TEST_F(ResourceContainerImplTest, BundleNotRegisteredIfBundlePathIsInvalid) -{ - m_pBundleInfo->setPath(""); - m_pBundleInfo->setVersion("1.0"); - m_pBundleInfo->setLibraryPath("../."); - m_pBundleInfo->setID("oic.bundle.test"); - - m_pResourceContainer->registerBundle(m_pBundleInfo); - - EXPECT_EQ(nullptr, ((BundleInfoInternal *)m_pBundleInfo)->getBundleHandle()); - -} - -TEST_F(ResourceContainerImplTest, SoBundleActivatedWithValidBundleInfo) -{ - m_pBundleInfo->setPath("libTestBundle.so"); - m_pBundleInfo->setVersion("1.0"); - m_pBundleInfo->setActivatorName("test"); - m_pBundleInfo->setLibraryPath("../."); - m_pBundleInfo->setID("oic.bundle.test"); - - m_pResourceContainer->registerBundle(m_pBundleInfo); - m_pResourceContainer->activateBundle(m_pBundleInfo); - - EXPECT_NE(nullptr, ((BundleInfoInternal *)m_pBundleInfo)->getBundleActivator()); -} - -TEST_F(ResourceContainerImplTest, BundleNotActivatedWhenNotRegistered) -{ - m_pBundleInfo->setPath("libTestBundle.so"); - m_pBundleInfo->setActivatorName("test"); - m_pBundleInfo->setVersion("1.0"); - m_pBundleInfo->setLibraryPath("../."); - m_pBundleInfo->setID("oic.bundle.test"); - - m_pResourceContainer->activateBundle(m_pBundleInfo); - - EXPECT_EQ(nullptr, ((BundleInfoInternal *)m_pBundleInfo)->getBundleActivator()); -} - -TEST_F(ResourceContainerImplTest, SoBundleActivatedWithBundleID) -{ - m_pBundleInfo->setPath("libTestBundle.so"); - m_pBundleInfo->setVersion("1.0"); - m_pBundleInfo->setLibraryPath("../."); - m_pBundleInfo->setActivatorName("test"); - m_pBundleInfo->setID("oic.bundle.test"); - - m_pResourceContainer->registerBundle(m_pBundleInfo); - m_pResourceContainer->activateBundle(m_pBundleInfo->getID()); - - EXPECT_NE(nullptr, ((BundleInfoInternal *)m_pBundleInfo)->getBundleActivator()); - EXPECT_TRUE(((BundleInfoInternal *)m_pBundleInfo)->isActivated()); -} - -TEST_F(ResourceContainerImplTest, BundleDeactivatedWithBundleInfo) -{ - m_pBundleInfo->setPath("libTestBundle.so"); - m_pBundleInfo->setVersion("1.0"); - m_pBundleInfo->setLibraryPath("../."); - m_pBundleInfo->setActivatorName("test"); - m_pBundleInfo->setID("oic.bundle.test"); - - m_pResourceContainer->registerBundle(m_pBundleInfo); - m_pResourceContainer->activateBundle(m_pBundleInfo); - m_pResourceContainer->deactivateBundle(m_pBundleInfo); - - EXPECT_NE(nullptr, ((BundleInfoInternal *)m_pBundleInfo)->getBundleDeactivator()); - EXPECT_FALSE(((BundleInfoInternal *)m_pBundleInfo)->isActivated()); -} - -TEST_F(ResourceContainerImplTest, BundleDeactivatedWithBundleInfoJava) -{ - m_pBundleInfo->setPath("TestBundle/hue-0.1-jar-with-dependencies.jar"); - m_pBundleInfo->setActivatorName("org/iotivity/bundle/hue/HueBundleActivator"); - m_pBundleInfo->setLibraryPath("../."); - m_pBundleInfo->setVersion("1.0"); - m_pBundleInfo->setID("oic.bundle.java.test"); - - m_pResourceContainer->registerBundle(m_pBundleInfo); - m_pResourceContainer->activateBundle(m_pBundleInfo); - m_pResourceContainer->deactivateBundle(m_pBundleInfo); - EXPECT_FALSE(((BundleInfoInternal *) m_pBundleInfo)->isActivated()); -} - -TEST_F(ResourceContainerImplTest, SoBundleDeactivatedWithBundleID) -{ - m_pBundleInfo->setPath("libTestBundle.so"); - m_pBundleInfo->setVersion("1.0"); - m_pBundleInfo->setLibraryPath("../."); - m_pBundleInfo->setActivatorName("test"); - m_pBundleInfo->setID("oic.bundle.test"); - - m_pResourceContainer->registerBundle(m_pBundleInfo); - m_pResourceContainer->activateBundle(m_pBundleInfo); - - m_pResourceContainer->deactivateBundle(m_pBundleInfo->getID()); - - EXPECT_FALSE(((BundleInfoInternal *)m_pBundleInfo)->isActivated()); -} - /* Test for Configuration */ TEST(ConfigurationTest, ConfigFileLoadedWithValidPath) @@ -700,12 +660,6 @@ TEST(ConfigurationTest, BundleResourceConfigurationNotParsedWithInvalidBundleId) delete config; } -namespace -{ - void discoverdCB(RCSRemoteResourceObject::Ptr); - void onUpdate(RemoteResourceUnit::UPDATE_MSG, RCSRemoteResourceObject::Ptr); -} - class DiscoverResourceUnitTest: public TestWithMock { private: @@ -767,7 +721,6 @@ TEST_F(DiscoverResourceUnitTest, onUpdateCalled) namespace { - void onStateCB(ResourceState) { } void onCacheCB(const RCSResourceAttributes &) { } } @@ -787,7 +740,6 @@ class RemoteResourceUnitTest: public TestWithMock void SetUp() { TestWithMock::SetUp(); - testObject = std::make_shared(); testObject->defaultRunSimulator(); m_pRCSRemoteResourceObject = testObject->getRemoteResource();