Mercurial > hg > orthanc
comparison UnitTestsSources/LuaTests.cpp @ 1055:6f923d52a46c
call Web services from Lua
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 24 Jul 2014 11:37:02 +0200 |
parents | ee5cbe6e48d3 |
children | 03c738276a04 |
comparison
equal
deleted
inserted
replaced
1054:1701dcb6f554 | 1055:6f923d52a46c |
---|---|
238 } | 238 } |
239 } | 239 } |
240 | 240 |
241 TEST(Lua, Http) | 241 TEST(Lua, Http) |
242 { | 242 { |
243 const std::string url("http://orthanc.googlecode.com/hg/Resources/Configuration.json"); | 243 Orthanc::LuaContext lua; |
244 | 244 |
245 Orthanc::LuaContext lua; | 245 #if UNIT_TESTS_WITH_HTTP_CONNEXIONS == 1 |
246 lua.Execute("JSON = loadstring(HttpGet('http://www.montefiore.ulg.ac.be/~jodogne/Orthanc/ThirdPartyDownloads/JSON.lua')) ()"); | |
247 const std::string url("http://orthanc.googlecode.com/hg/OrthancCppClient/SharedLibrary/Product.json"); | |
248 #endif | |
249 | |
246 std::string s; | 250 std::string s; |
247 lua.Execute(s, "print(HttpGet({}))"); | 251 lua.Execute(s, "print(HttpGet({}))"); |
248 ASSERT_EQ("ERROR", Orthanc::Toolbox::StripSpaces(s)); | 252 ASSERT_EQ("ERROR", Orthanc::Toolbox::StripSpaces(s)); |
249 | 253 |
250 #if UNIT_TESTS_WITH_HTTP_CONNEXIONS == 1 | 254 #if UNIT_TESTS_WITH_HTTP_CONNEXIONS == 1 |
251 lua.Execute(s, "print(string.len(HttpGet(\"" + url + "\")))"); | 255 lua.Execute(s, "print(string.len(HttpGet(\"" + url + "\")))"); |
252 ASSERT_LE(1000, boost::lexical_cast<int>(Orthanc::Toolbox::StripSpaces(s))); | 256 ASSERT_LE(100, boost::lexical_cast<int>(Orthanc::Toolbox::StripSpaces(s))); |
253 | 257 |
254 // Parse a JSON file | 258 // Parse a JSON file |
255 lua.Execute(s, "print(HttpGet(\"" + url + "\", true)['Name'])"); | 259 lua.Execute(s, "print(JSON:decode(HttpGet(\"" + url + "\")) ['Product'])"); |
256 ASSERT_EQ("MyOrthanc", Orthanc::Toolbox::StripSpaces(s)); | 260 ASSERT_EQ("OrthancClient", Orthanc::Toolbox::StripSpaces(s)); |
257 #endif | 261 |
258 | 262 #if 1 |
259 #if 0 | 263 // This part of the test can only be executed if one instance of |
264 // Orthanc is running on the localhost | |
265 | |
266 lua.Execute("modality = {}"); | |
267 lua.Execute("table.insert(modality, 'ORTHANC')"); | |
268 lua.Execute("table.insert(modality, 'localhost')"); | |
269 lua.Execute("table.insert(modality, 4242)"); | |
270 | |
260 lua.Execute(s, "print(HttpPost(\"http://localhost:8042/tools/execute-script\", \"print('hello world')\"))"); | 271 lua.Execute(s, "print(HttpPost(\"http://localhost:8042/tools/execute-script\", \"print('hello world')\"))"); |
261 ASSERT_EQ("hello world", Orthanc::Toolbox::StripSpaces(s)); | 272 ASSERT_EQ("hello world", Orthanc::Toolbox::StripSpaces(s)); |
262 | 273 |
263 lua.Execute(s, "print(HttpPost(\"http://localhost:8042/tools/execute-script\", \"print('[10,42,1000]')\", true)[2])"); | 274 lua.Execute(s, "print(JSON:decode(HttpPost(\"http://localhost:8042/tools/execute-script\", \"print('[10,42,1000]')\")) [2])"); |
264 ASSERT_EQ("42", Orthanc::Toolbox::StripSpaces(s)); | 275 ASSERT_EQ("42", Orthanc::Toolbox::StripSpaces(s)); |
265 #endif | 276 |
266 | 277 // Add/remove a modality with Lua |
267 #if 0 | 278 Json::Value v; |
268 lua.Execute(s, "print(HttpGet('http://localhost:8042/modalities'))"); | 279 lua.Execute(s, "print(HttpGet('http://localhost:8042/modalities/lua'))"); |
269 lua.Execute(s, "print(HttpPut('http://localhost:8042/modalities/lua', '[ \"ORTHANC\", \"localhost\", 4242 ]'))"); | 280 ASSERT_EQ(0, Orthanc::Toolbox::StripSpaces(s).size()); |
270 lua.Execute(s, "print(HttpGet('http://localhost:8042/modalities'))"); | 281 lua.Execute(s, "print(HttpPut('http://localhost:8042/modalities/lua', JSON:encode(modality)))"); |
282 lua.Execute(v, "print(HttpGet('http://localhost:8042/modalities/lua'))"); | |
283 ASSERT_TRUE(v.type() == Json::arrayValue); | |
271 lua.Execute(s, "print(HttpDelete('http://localhost:8042/modalities/lua'))"); | 284 lua.Execute(s, "print(HttpDelete('http://localhost:8042/modalities/lua'))"); |
272 lua.Execute(s, "print(HttpGet('http://localhost:8042/modalities'))"); | 285 lua.Execute(s, "print(HttpGet('http://localhost:8042/modalities/lua'))"); |
273 #endif | 286 ASSERT_EQ(0, Orthanc::Toolbox::StripSpaces(s).size()); |
274 } | 287 #endif |
288 | |
289 #endif | |
290 } |