PluginManager tests part 4 (PluginInstance class) (#342)
authorIvan Vagin/AI Tools Lab /SRR/Engineer/삼성전자 <ivan.vagin@samsung.com>
Fri, 22 Jun 2018 13:58:26 +0000 (16:58 +0300)
committerSergey Vostokov/AI Tools Lab /SRR/Staff Engineer/삼성전자 <s.vostokov@samsung.com>
Fri, 22 Jun 2018 13:58:26 +0000 (16:58 +0300)
PluginManager tests: PluginInstance class

This commit introduced test for PluginInstance class

Signed-off-by: Ivan Vagin <ivan.vagin@samsung.com>
contrib/nnc/libs/plugin/src/PluginInstance.test.cpp [new file with mode: 0644]

diff --git a/contrib/nnc/libs/plugin/src/PluginInstance.test.cpp b/contrib/nnc/libs/plugin/src/PluginInstance.test.cpp
new file mode 100644 (file)
index 0000000..68643cf
--- /dev/null
@@ -0,0 +1,41 @@
+#include "PluginInstance.h"
+#include "AbstractSession.h"
+#include "PluginType.h"
+#include "PluginException.h"
+
+#include "gtest/gtest.h"
+
+using namespace nncc::contrib::plugin;
+using namespace nncc::contrib::config;
+
+class ConcretePluginInstance : public AbstractPluginInstance
+{
+public:
+  void fillSession() override {}
+  void setParam(const std::string &name) override {}
+  void setParam(const std::string &name, const std::string &value) override {}
+  void checkConfig() override {}
+  void *execute(void *data) override {}
+};   
+
+class ConcreteSession : public AbstractSession
+{
+public:
+  ConcreteSession() {}
+  void addInfo(const std::string &name, const std::string &value) override {}
+  void registerParam(const PluginParam &param) override {}
+};
+
+TEST(CONTRIB_PLUGIN, PluginInstance)
+{
+  ConcretePluginInstance pluginInstance;
+
+  ASSERT_THROW(pluginInstance.getSession(), nncc::contrib::PluginException);
+
+  std::shared_ptr<AbstractSession> pSession = std::make_shared<ConcreteSession>();
+  pluginInstance.setSession(pSession);
+
+  pluginInstance.fillSessionBase(PluginType::typeFrontEnd, "verNum", "pluginName");
+
+  ASSERT_EQ(pluginInstance.getSession()->getPluginType(), PluginType::typeFrontEnd);
+}