diff UnitTests/Lua.cpp @ 397:941ea46e9e26 lua-scripting

lua filter of new instances
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 02 May 2013 16:34:00 +0200
parents 7dec4f3c922c
children
line wrap: on
line diff
--- a/UnitTests/Lua.cpp	Thu May 02 11:02:15 2013 +0200
+++ b/UnitTests/Lua.cpp	Thu May 02 16:34:00 2013 +0200
@@ -5,64 +5,68 @@
 
 TEST(Lua, Simple)
 {
-  try
-  {
-    Orthanc::LuaContext lua;
-    lua.Execute(Orthanc::EmbeddedResources::LUA_TOOLBOX);
-    lua.Execute("a={}");
-    lua.Execute("a['x'] = 10");
-    lua.Execute("a['y'] = {}");
-    lua.Execute("a['y'][1] = 20");
-    lua.Execute("a['y'][2] = 20");
-    lua.Execute("rPrint(a)");
+  Orthanc::LuaContext lua;
+  lua.Execute(Orthanc::EmbeddedResources::LUA_TOOLBOX);
+  lua.Execute("a={}");
+  lua.Execute("a['x'] = 10");
+  lua.Execute("a['y'] = {}");
+  lua.Execute("a['y'][1] = 20");
+  lua.Execute("a['y'][2] = 20");
+  lua.Execute("PrintRecursive(a)");
 
-    lua.Execute("function f(a) print(a.bool) return a.bool,20,30,40,50,60 end");
+  lua.Execute("function f(a) print(a.bool) return a.bool,20,30,40,50,60 end");
 
-    Json::Value v, vv, o;
-    //v["a"] = "b";
-    v.append("hello");
-    v.append("world");
-    v.append("42");
-    vv.append("coucou");
-    vv.append("toi");
-    v.append(vv);
-    o = Json::objectValue;
-    o["x"] = 10;
-    o["y"] = 20;
-    o["z"] = 20.5f;
-    v.append(o);
+  Json::Value v, vv, o;
+  //v["a"] = "b";
+  v.append("hello");
+  v.append("world");
+  v.append("42");
+  vv.append("sub");
+  vv.append("set");
+  v.append(vv);
+  o = Json::objectValue;
+  o["x"] = 10;
+  o["y"] = 20;
+  o["z"] = 20.5f;
+  v.append(o);
 
-    {
-      Orthanc::LuaFunctionCall f(lua, "rPrint");
-      f.PushJSON(v);
-      f.Execute();
-    }
+  {
+    Orthanc::LuaFunctionCall f(lua, "PrintRecursive");
+    f.PushJSON(v);
+    f.Execute();
+  }
 
-    {
-      Orthanc::LuaFunctionCall f(lua, "f");
-      f.PushJSON(o);
-      ASSERT_THROW(f.ExecutePredicate(), Orthanc::LuaException);
-    }
-
-    o["bool"] = false;
+  {
+    Orthanc::LuaFunctionCall f(lua, "f");
+    f.PushJSON(o);
+    ASSERT_THROW(f.ExecutePredicate(), Orthanc::LuaException);
+  }
 
-    {
-      Orthanc::LuaFunctionCall f(lua, "f");
-      f.PushJSON(o);
-      ASSERT_FALSE(f.ExecutePredicate());
-    }
-
-    o["bool"] = true;
+  o["bool"] = false;
 
-    {
-      Orthanc::LuaFunctionCall f(lua, "f");
-      f.PushJSON(o);
-      ASSERT_TRUE(f.ExecutePredicate());
-    }
+  {
+    Orthanc::LuaFunctionCall f(lua, "f");
+    f.PushJSON(o);
+    ASSERT_FALSE(f.ExecutePredicate());
+  }
 
-  }
-  catch (Orthanc::LuaException e)
+  o["bool"] = true;
+
   {
-    std::cerr << "EXCEPTION: [" << e.What() << "]" << std::endl;
+    Orthanc::LuaFunctionCall f(lua, "f");
+    f.PushJSON(o);
+    ASSERT_TRUE(f.ExecutePredicate());
   }
 }
+
+
+TEST(Lua, Existing)
+{
+  Orthanc::LuaContext lua;
+  lua.Execute("a={}");
+  lua.Execute("function f() end");
+
+  ASSERT_TRUE(lua.IsExistingFunction("f"));
+  ASSERT_FALSE(lua.IsExistingFunction("a"));
+  ASSERT_FALSE(lua.IsExistingFunction("Dummy"));
+}