--- /dev/null
+#include "module/plugin/PluginSession.h"
+
+#include "gtest/gtest.h"
+
+using namespace nncc::contrib::config;
+
+TEST(CONTRIB_NNC, PluginSession)
+{
+ PluginSession ps;
+
+ // 'getInfo' 'addInfo' methods
+ ps.addInfo("name1", "value1");
+ ASSERT_EQ(ps.getInfo().getElement("name1").getValue(), "value1");
+ ASSERT_EQ(ps.getInfo("name1"), "value1");
+
+ // 'registerParam' 'getSupportedParams' methods
+ ps.registerParam(PluginParam("param1", "desc1", true));
+ ps.registerParam(PluginParam("param2", "desc2", false));
+ std::map<std::string, PluginParam> params = ps.getSupportedParams();
+ ASSERT_EQ(params.find("param1")->second.getDesc(), "desc1");
+ ASSERT_EQ(params.find("param2")->second.getDesc(), "desc2");
+
+ // Operator '<<'
+ std::ostringstream os;
+ os << ps;
+ ASSERT_EQ(os.str(), "<info> = {\n<name1> = value1\n}\nsupported "
+ "params:\nparam1 desc1\nparam2 desc2\n");
+}