aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/OptionalModules/Scripting/JsonStore/Tests/JsonStoreScriptModuleTests.cs108
1 files changed, 98 insertions, 10 deletions
diff --git a/OpenSim/Region/OptionalModules/Scripting/JsonStore/Tests/JsonStoreScriptModuleTests.cs b/OpenSim/Region/OptionalModules/Scripting/JsonStore/Tests/JsonStoreScriptModuleTests.cs
index 5484d8d..6658e1e 100644
--- a/OpenSim/Region/OptionalModules/Scripting/JsonStore/Tests/JsonStoreScriptModuleTests.cs
+++ b/OpenSim/Region/OptionalModules/Scripting/JsonStore/Tests/JsonStoreScriptModuleTests.cs
@@ -158,6 +158,15 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore.Tests
158 158
159 string value = (string)InvokeOp("JsonGetValue", storeId, "Hello"); 159 string value = (string)InvokeOp("JsonGetValue", storeId, "Hello");
160 Assert.That(value, Is.EqualTo("World")); 160 Assert.That(value, Is.EqualTo("World"));
161
162 // Test get of non-existing value
163 string fakeValueGet = (string)InvokeOp("JsonGetValue", storeId, "foo");
164 Assert.That(fakeValueGet, Is.EqualTo(""));
165
166 // Test get from non-existing store
167 UUID fakeStoreId = TestHelpers.ParseTail(0x500);
168 string fakeStoreValueGet = (string)InvokeOp("JsonGetValue", fakeStoreId, "Hello");
169 Assert.That(fakeStoreValueGet, Is.EqualTo(""));
161 } 170 }
162 171
163// [Test] 172// [Test]
@@ -199,6 +208,17 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore.Tests
199 208
200 string returnValue2 = (string)InvokeOp("JsonGetValue", storeId, "Hello"); 209 string returnValue2 = (string)InvokeOp("JsonGetValue", storeId, "Hello");
201 Assert.That(returnValue2, Is.EqualTo("")); 210 Assert.That(returnValue2, Is.EqualTo(""));
211
212 // Test remove of non-existing value
213 int fakeValueRemove = (int)InvokeOp("JsonRemoveValue", storeId, "Hello");
214
215 // XXX: Is this the best response to removing a value that isn't there?
216 Assert.That(fakeValueRemove, Is.EqualTo(1));
217
218 // Test get from non-existing store
219 UUID fakeStoreId = TestHelpers.ParseTail(0x500);
220 int fakeStoreValueRemove = (int)InvokeOp("JsonRemoveValue", fakeStoreId, "Hello");
221 Assert.That(fakeStoreValueRemove, Is.EqualTo(0));
202 } 222 }
203 223
204 [Test] 224 [Test]
@@ -211,6 +231,14 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore.Tests
211 231
212 int result = (int)InvokeOp("JsonTestPath", storeId, "Hello"); 232 int result = (int)InvokeOp("JsonTestPath", storeId, "Hello");
213 Assert.That(result, Is.EqualTo(1)); 233 Assert.That(result, Is.EqualTo(1));
234
235 int result2 = (int)InvokeOp("JsonTestPath", storeId, "foo");
236 Assert.That(result2, Is.EqualTo(0));
237
238 // Test with fake store
239 UUID fakeStoreId = TestHelpers.ParseTail(0x500);
240 int fakeStoreValueRemove = (int)InvokeOp("JsonTestPath", fakeStoreId, "Hello");
241 Assert.That(fakeStoreValueRemove, Is.EqualTo(0));
214 } 242 }
215 243
216 [Test] 244 [Test]
@@ -226,6 +254,70 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore.Tests
226 254
227 string value = (string)InvokeOp("JsonGetValue", storeId, "Fun"); 255 string value = (string)InvokeOp("JsonGetValue", storeId, "Fun");
228 Assert.That(value, Is.EqualTo("Times")); 256 Assert.That(value, Is.EqualTo("Times"));
257
258 // Test with fake store
259 UUID fakeStoreId = TestHelpers.ParseTail(0x500);
260 int fakeStoreValueSet = (int)InvokeOp("JsonSetValue", fakeStoreId, "Hello", "World");
261 Assert.That(fakeStoreValueSet, Is.EqualTo(0));
262 }
263
264 /// <summary>
265 /// Test for writing json to a notecard
266 /// </summary>
267 /// <remarks>
268 /// TODO: Really needs to test correct receipt of the link_message event. Could do this by directly fetching
269 /// it via the MockScriptEngine or perhaps by a dummy script instance.
270 /// </remarks>
271 [Test]
272 public void TestJsonWriteNotecard()
273 {
274 TestHelpers.InMethod();
275// TestHelpers.EnableLogging();
276
277 SceneObjectGroup so = SceneHelpers.CreateSceneObject(1, TestHelpers.ParseTail(0x1));
278 m_scene.AddSceneObject(so);
279
280 UUID storeId = (UUID)InvokeOp("JsonCreateStore", "{ 'Hello':'World' }");
281
282 {
283 string notecardName = "nc1";
284
285 // Write notecard
286 UUID writeNotecardRequestId = (UUID)InvokeOpOnHost("JsonWriteNotecard", so.UUID, storeId, "/", notecardName);
287 Assert.That(writeNotecardRequestId, Is.Not.EqualTo(UUID.Zero));
288
289 TaskInventoryItem nc1Item = so.RootPart.Inventory.GetInventoryItem(notecardName);
290 Assert.That(nc1Item, Is.Not.Null);
291
292 // TODO: Should independently check the contents.
293 }
294
295 {
296 // Try to write notecard against bad path
297 // In this case we do get a request id but no notecard is written.
298 string badPathNotecardName = "badPathNotecardName";
299
300 UUID writeNotecardBadPathRequestId
301 = (UUID)InvokeOpOnHost("JsonWriteNotecard", so.UUID, storeId, "flibble", badPathNotecardName);
302 Assert.That(writeNotecardBadPathRequestId, Is.Not.EqualTo(UUID.Zero));
303
304 TaskInventoryItem badPathItem = so.RootPart.Inventory.GetInventoryItem(badPathNotecardName);
305 Assert.That(badPathItem, Is.Null);
306 }
307
308 {
309 // Test with fake store
310 // In this case we do get a request id but no notecard is written.
311 string fakeStoreNotecardName = "fakeStoreNotecardName";
312
313 UUID fakeStoreId = TestHelpers.ParseTail(0x500);
314 UUID fakeStoreWriteNotecardValue
315 = (UUID)InvokeOpOnHost("JsonWriteNotecard", so.UUID, fakeStoreId, "/", fakeStoreNotecardName);
316 Assert.That(fakeStoreWriteNotecardValue, Is.Not.EqualTo(UUID.Zero));
317
318 TaskInventoryItem fakeStoreItem = so.RootPart.Inventory.GetInventoryItem(fakeStoreNotecardName);
319 Assert.That(fakeStoreItem, Is.Null);
320 }
229 } 321 }
230 322
231 /// <summary> 323 /// <summary>
@@ -236,10 +328,10 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore.Tests
236 /// it via the MockScriptEngine or perhaps by a dummy script instance. 328 /// it via the MockScriptEngine or perhaps by a dummy script instance.
237 /// </remarks> 329 /// </remarks>
238 [Test] 330 [Test]
239 public void TestJsonWriteReadNotecard() 331 public void TestJsonReadNotecard()
240 { 332 {
241 TestHelpers.InMethod(); 333 TestHelpers.InMethod();
242 TestHelpers.EnableLogging(); 334// TestHelpers.EnableLogging();
243 335
244 string notecardName = "nc1"; 336 string notecardName = "nc1";
245 337
@@ -249,21 +341,17 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore.Tests
249 UUID storeId = (UUID)InvokeOp("JsonCreateStore", "{ 'Hello':'World' }"); 341 UUID storeId = (UUID)InvokeOp("JsonCreateStore", "{ 'Hello':'World' }");
250 342
251 // Write notecard 343 // Write notecard
252 UUID writeNotecardRequestId = (UUID)InvokeOpOnHost("JsonWriteNotecard", so.UUID, storeId, "/", notecardName); 344 InvokeOpOnHost("JsonWriteNotecard", so.UUID, storeId, "/", notecardName);
253 Assert.That(writeNotecardRequestId, Is.Not.EqualTo(UUID.Zero));
254
255 TaskInventoryItem nc1Item = so.RootPart.Inventory.GetInventoryItem(notecardName);
256 Assert.That(nc1Item, Is.Not.Null);
257
258 // TODO: Should probably independently check the contents.
259 345
260 // Read notecard 346 // Read notecard
261 UUID receivingStoreId = (UUID)InvokeOp("JsonCreateStore", "{ 'Hello':'World' }"); 347 UUID receivingStoreId = (UUID)InvokeOp("JsonCreateStore", "{ }");
262 UUID readNotecardRequestId = (UUID)InvokeOpOnHost("JsonReadNotecard", so.UUID, receivingStoreId, "/", notecardName); 348 UUID readNotecardRequestId = (UUID)InvokeOpOnHost("JsonReadNotecard", so.UUID, receivingStoreId, "/", notecardName);
263 Assert.That(readNotecardRequestId, Is.Not.EqualTo(UUID.Zero)); 349 Assert.That(readNotecardRequestId, Is.Not.EqualTo(UUID.Zero));
264 350
265 string value = (string)InvokeOp("JsonGetValue", storeId, "Hello"); 351 string value = (string)InvokeOp("JsonGetValue", storeId, "Hello");
266 Assert.That(value, Is.EqualTo("World")); 352 Assert.That(value, Is.EqualTo("World"));
353
354
267 } 355 }
268 356
269 public object DummyTestMethod(object o1, object o2, object o3, object o4, object o5) { return null; } 357 public object DummyTestMethod(object o1, object o2, object o3, object o4, object o5) { return null; }