diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/OptionalModules/Scripting/JsonStore/Tests/JsonStoreScriptModuleTests.cs | 61 |
1 files changed, 60 insertions, 1 deletions
diff --git a/OpenSim/Region/OptionalModules/Scripting/JsonStore/Tests/JsonStoreScriptModuleTests.cs b/OpenSim/Region/OptionalModules/Scripting/JsonStore/Tests/JsonStoreScriptModuleTests.cs index 8042a93..98b5624 100644 --- a/OpenSim/Region/OptionalModules/Scripting/JsonStore/Tests/JsonStoreScriptModuleTests.cs +++ b/OpenSim/Region/OptionalModules/Scripting/JsonStore/Tests/JsonStoreScriptModuleTests.cs | |||
@@ -54,6 +54,22 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore.Tests | |||
54 | private MockScriptEngine m_engine; | 54 | private MockScriptEngine m_engine; |
55 | private ScriptModuleCommsModule m_smcm; | 55 | private ScriptModuleCommsModule m_smcm; |
56 | 56 | ||
57 | [TestFixtureSetUp] | ||
58 | public void FixtureInit() | ||
59 | { | ||
60 | // Don't allow tests to be bamboozled by asynchronous events. Execute everything on the same thread. | ||
61 | Util.FireAndForgetMethod = FireAndForgetMethod.RegressionTest; | ||
62 | } | ||
63 | |||
64 | [TestFixtureTearDown] | ||
65 | public void TearDown() | ||
66 | { | ||
67 | // We must set this back afterwards, otherwise later tests will fail since they're expecting multiple | ||
68 | // threads. Possibly, later tests should be rewritten so none of them require async stuff (which regression | ||
69 | // tests really shouldn't). | ||
70 | Util.FireAndForgetMethod = Util.DefaultFireAndForgetMethod; | ||
71 | } | ||
72 | |||
57 | [SetUp] | 73 | [SetUp] |
58 | public override void SetUp() | 74 | public override void SetUp() |
59 | { | 75 | { |
@@ -85,7 +101,12 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore.Tests | |||
85 | 101 | ||
86 | private object InvokeOp(string name, params object[] args) | 102 | private object InvokeOp(string name, params object[] args) |
87 | { | 103 | { |
88 | return m_smcm.InvokeOperation(UUID.Zero, UUID.Zero, name, args); | 104 | return InvokeOpOnHost(name, UUID.Zero, args); |
105 | } | ||
106 | |||
107 | private object InvokeOpOnHost(string name, UUID hostId, params object[] args) | ||
108 | { | ||
109 | return m_smcm.InvokeOperation(hostId, UUID.Zero, name, args); | ||
89 | } | 110 | } |
90 | 111 | ||
91 | [Test] | 112 | [Test] |
@@ -193,6 +214,44 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore.Tests | |||
193 | Assert.That(value, Is.EqualTo("World")); | 214 | Assert.That(value, Is.EqualTo("World")); |
194 | } | 215 | } |
195 | 216 | ||
217 | /// <summary> | ||
218 | /// Test for reading and writing json to a notecard | ||
219 | /// </summary> | ||
220 | /// <remarks> | ||
221 | /// TODO: Really needs to test correct receipt of the link_message event. Could do this by directly fetching | ||
222 | /// it via the MockScriptEngine or perhaps by a dummy script instance. | ||
223 | /// </remarks> | ||
224 | [Test] | ||
225 | public void TestJsonWriteReadNotecard() | ||
226 | { | ||
227 | TestHelpers.InMethod(); | ||
228 | TestHelpers.EnableLogging(); | ||
229 | |||
230 | string notecardName = "nc1"; | ||
231 | |||
232 | SceneObjectGroup so = SceneHelpers.CreateSceneObject(1, TestHelpers.ParseTail(0x1)); | ||
233 | m_scene.AddSceneObject(so); | ||
234 | |||
235 | UUID storeId = (UUID)InvokeOp("JsonCreateStore", "{ 'Hello':'World' }"); | ||
236 | |||
237 | // Write notecard | ||
238 | UUID writeNotecardRequestId = (UUID)InvokeOpOnHost("JsonWriteNotecard", so.UUID, storeId, "/", notecardName); | ||
239 | Assert.That(writeNotecardRequestId, Is.Not.EqualTo(UUID.Zero)); | ||
240 | |||
241 | TaskInventoryItem nc1Item = so.RootPart.Inventory.GetInventoryItem(notecardName); | ||
242 | Assert.That(nc1Item, Is.Not.Null); | ||
243 | |||
244 | // TODO: Should probably independently check the contents. | ||
245 | |||
246 | // Read notecard | ||
247 | UUID receivingStoreId = (UUID)InvokeOp("JsonCreateStore", "{ 'Hello':'World' }"); | ||
248 | UUID readNotecardRequestId = (UUID)InvokeOpOnHost("JsonReadNotecard", so.UUID, receivingStoreId, "/", notecardName); | ||
249 | Assert.That(readNotecardRequestId, Is.Not.EqualTo(UUID.Zero)); | ||
250 | |||
251 | string value = (string)InvokeOp("JsonGetValue", storeId, "Hello"); | ||
252 | Assert.That(value, Is.EqualTo("World")); | ||
253 | } | ||
254 | |||
196 | public object DummyTestMethod(object o1, object o2, object o3, object o4, object o5) { return null; } | 255 | public object DummyTestMethod(object o1, object o2, object o3, object o4, object o5) { return null; } |
197 | } | 256 | } |
198 | } \ No newline at end of file | 257 | } \ No newline at end of file |