From 3657a08844731e5a24eeda3195c23f417b4570a5 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Thu, 7 Feb 2013 02:19:26 +0000
Subject: Add TestJsonWriteReadNotecard() regression test
---
.../JsonStore/Tests/JsonStoreScriptModuleTests.cs | 45 +++++++++++++++++++++-
1 file changed, 44 insertions(+), 1 deletion(-)
(limited to 'OpenSim/Region/OptionalModules')
diff --git a/OpenSim/Region/OptionalModules/Scripting/JsonStore/Tests/JsonStoreScriptModuleTests.cs b/OpenSim/Region/OptionalModules/Scripting/JsonStore/Tests/JsonStoreScriptModuleTests.cs
index 34422b4..98b5624 100644
--- a/OpenSim/Region/OptionalModules/Scripting/JsonStore/Tests/JsonStoreScriptModuleTests.cs
+++ b/OpenSim/Region/OptionalModules/Scripting/JsonStore/Tests/JsonStoreScriptModuleTests.cs
@@ -101,7 +101,12 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore.Tests
private object InvokeOp(string name, params object[] args)
{
- return m_smcm.InvokeOperation(UUID.Zero, UUID.Zero, name, args);
+ return InvokeOpOnHost(name, UUID.Zero, args);
+ }
+
+ private object InvokeOpOnHost(string name, UUID hostId, params object[] args)
+ {
+ return m_smcm.InvokeOperation(hostId, UUID.Zero, name, args);
}
[Test]
@@ -209,6 +214,44 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore.Tests
Assert.That(value, Is.EqualTo("World"));
}
+ ///
+ /// Test for reading and writing json to a notecard
+ ///
+ ///
+ /// TODO: Really needs to test correct receipt of the link_message event. Could do this by directly fetching
+ /// it via the MockScriptEngine or perhaps by a dummy script instance.
+ ///
+ [Test]
+ public void TestJsonWriteReadNotecard()
+ {
+ TestHelpers.InMethod();
+ TestHelpers.EnableLogging();
+
+ string notecardName = "nc1";
+
+ SceneObjectGroup so = SceneHelpers.CreateSceneObject(1, TestHelpers.ParseTail(0x1));
+ m_scene.AddSceneObject(so);
+
+ UUID storeId = (UUID)InvokeOp("JsonCreateStore", "{ 'Hello':'World' }");
+
+ // Write notecard
+ UUID writeNotecardRequestId = (UUID)InvokeOpOnHost("JsonWriteNotecard", so.UUID, storeId, "/", notecardName);
+ Assert.That(writeNotecardRequestId, Is.Not.EqualTo(UUID.Zero));
+
+ TaskInventoryItem nc1Item = so.RootPart.Inventory.GetInventoryItem(notecardName);
+ Assert.That(nc1Item, Is.Not.Null);
+
+ // TODO: Should probably independently check the contents.
+
+ // Read notecard
+ UUID receivingStoreId = (UUID)InvokeOp("JsonCreateStore", "{ 'Hello':'World' }");
+ UUID readNotecardRequestId = (UUID)InvokeOpOnHost("JsonReadNotecard", so.UUID, receivingStoreId, "/", notecardName);
+ Assert.That(readNotecardRequestId, Is.Not.EqualTo(UUID.Zero));
+
+ string value = (string)InvokeOp("JsonGetValue", storeId, "Hello");
+ Assert.That(value, Is.EqualTo("World"));
+ }
+
public object DummyTestMethod(object o1, object o2, object o3, object o4, object o5) { return null; }
}
}
\ No newline at end of file
--
cgit v1.1