diff options
Diffstat (limited to 'OpenSim/Region/OptionalModules/Scripting')
3 files changed, 110 insertions, 33 deletions
diff --git a/OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStoreModule.cs b/OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStoreModule.cs index e68764a..b9b3ebc 100644 --- a/OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStoreModule.cs +++ b/OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStoreModule.cs | |||
@@ -221,6 +221,19 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore | |||
221 | /// | 221 | /// |
222 | /// </summary> | 222 | /// </summary> |
223 | // ----------------------------------------------------------------- | 223 | // ----------------------------------------------------------------- |
224 | public bool TestStore(UUID storeID) | ||
225 | { | ||
226 | if (! m_enabled) return false; | ||
227 | |||
228 | lock (m_JsonValueStore) | ||
229 | return m_JsonValueStore.ContainsKey(storeID); | ||
230 | } | ||
231 | |||
232 | // ----------------------------------------------------------------- | ||
233 | /// <summary> | ||
234 | /// | ||
235 | /// </summary> | ||
236 | // ----------------------------------------------------------------- | ||
224 | public bool TestPath(UUID storeID, string path, bool useJson) | 237 | public bool TestPath(UUID storeID, string path, bool useJson) |
225 | { | 238 | { |
226 | if (! m_enabled) return false; | 239 | if (! m_enabled) return false; |
diff --git a/OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStoreScriptModule.cs b/OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStoreScriptModule.cs index b9dcfea..29955af 100644 --- a/OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStoreScriptModule.cs +++ b/OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStoreScriptModule.cs | |||
@@ -167,6 +167,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore | |||
167 | { | 167 | { |
168 | m_comms.RegisterScriptInvocation(this, "JsonCreateStore"); | 168 | m_comms.RegisterScriptInvocation(this, "JsonCreateStore"); |
169 | m_comms.RegisterScriptInvocation(this, "JsonDestroyStore"); | 169 | m_comms.RegisterScriptInvocation(this, "JsonDestroyStore"); |
170 | m_comms.RegisterScriptInvocation(this, "JsonTestStore"); | ||
170 | 171 | ||
171 | m_comms.RegisterScriptInvocation(this, "JsonReadNotecard"); | 172 | m_comms.RegisterScriptInvocation(this, "JsonReadNotecard"); |
172 | m_comms.RegisterScriptInvocation(this, "JsonWriteNotecard"); | 173 | m_comms.RegisterScriptInvocation(this, "JsonWriteNotecard"); |
@@ -248,6 +249,16 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore | |||
248 | /// | 249 | /// |
249 | /// </summary> | 250 | /// </summary> |
250 | // ----------------------------------------------------------------- | 251 | // ----------------------------------------------------------------- |
252 | protected int JsonTestStore(UUID hostID, UUID scriptID, UUID storeID) | ||
253 | { | ||
254 | return m_store.TestStore(storeID) ? 1 : 0; | ||
255 | } | ||
256 | |||
257 | // ----------------------------------------------------------------- | ||
258 | /// <summary> | ||
259 | /// | ||
260 | /// </summary> | ||
261 | // ----------------------------------------------------------------- | ||
251 | protected UUID JsonReadNotecard(UUID hostID, UUID scriptID, UUID storeID, string path, UUID assetID) | 262 | protected UUID JsonReadNotecard(UUID hostID, UUID scriptID, UUID storeID, string path, UUID assetID) |
252 | { | 263 | { |
253 | UUID reqID = UUID.Random(); | 264 | UUID reqID = UUID.Random(); |
diff --git a/OpenSim/Region/OptionalModules/Scripting/JsonStore/Tests/JsonStoreScriptModuleTests.cs b/OpenSim/Region/OptionalModules/Scripting/JsonStore/Tests/JsonStoreScriptModuleTests.cs index 397dd93..8042a93 100644 --- a/OpenSim/Region/OptionalModules/Scripting/JsonStore/Tests/JsonStoreScriptModuleTests.cs +++ b/OpenSim/Region/OptionalModules/Scripting/JsonStore/Tests/JsonStoreScriptModuleTests.cs | |||
@@ -48,7 +48,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore.Tests | |||
48 | /// Tests for inventory functions in LSL | 48 | /// Tests for inventory functions in LSL |
49 | /// </summary> | 49 | /// </summary> |
50 | [TestFixture] | 50 | [TestFixture] |
51 | public class LSL_ApiInventoryTests : OpenSimTestCase | 51 | public class JsonStoreScriptModuleTests : OpenSimTestCase |
52 | { | 52 | { |
53 | private Scene m_scene; | 53 | private Scene m_scene; |
54 | private MockScriptEngine m_engine; | 54 | private MockScriptEngine m_engine; |
@@ -59,8 +59,6 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore.Tests | |||
59 | { | 59 | { |
60 | base.SetUp(); | 60 | base.SetUp(); |
61 | 61 | ||
62 | TestHelpers.EnableLogging(); | ||
63 | |||
64 | IConfigSource configSource = new IniConfigSource(); | 62 | IConfigSource configSource = new IniConfigSource(); |
65 | IConfig jsonStoreConfig = configSource.AddConfig("JsonStore"); | 63 | IConfig jsonStoreConfig = configSource.AddConfig("JsonStore"); |
66 | jsonStoreConfig.Set("Enabled", "true"); | 64 | jsonStoreConfig.Set("Enabled", "true"); |
@@ -72,74 +70,129 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore.Tests | |||
72 | 70 | ||
73 | m_scene = new SceneHelpers().SetupScene(); | 71 | m_scene = new SceneHelpers().SetupScene(); |
74 | SceneHelpers.SetupSceneModules(m_scene, configSource, m_engine, m_smcm, jsm, jssm); | 72 | SceneHelpers.SetupSceneModules(m_scene, configSource, m_engine, m_smcm, jsm, jssm); |
73 | |||
74 | try | ||
75 | { | ||
76 | m_smcm.RegisterScriptInvocation(this, "DummyTestMethod"); | ||
77 | } | ||
78 | catch (ArgumentException) | ||
79 | { | ||
80 | Assert.Ignore("Ignoring test since running on .NET 3.5 or earlier."); | ||
81 | } | ||
82 | |||
83 | // XXX: Unfortunately, ICommsModule currently has no way of deregistering methods. | ||
75 | } | 84 | } |
76 | 85 | ||
77 | // [Test] | 86 | private object InvokeOp(string name, params object[] args) |
87 | { | ||
88 | return m_smcm.InvokeOperation(UUID.Zero, UUID.Zero, name, args); | ||
89 | } | ||
90 | |||
91 | [Test] | ||
78 | public void TestJsonCreateStore() | 92 | public void TestJsonCreateStore() |
79 | { | 93 | { |
80 | TestHelpers.InMethod(); | 94 | TestHelpers.InMethod(); |
81 | // TestHelpers.EnableLogging(); | 95 | // TestHelpers.EnableLogging(); |
82 | 96 | ||
83 | UUID storeId = (UUID)m_smcm.InvokeOperation(UUID.Zero, UUID.Zero, "JsonCreateStore", new object[] { "{}" }); | 97 | UUID storeId = (UUID)InvokeOp("JsonCreateStore", "{}"); |
84 | |||
85 | Assert.That(storeId, Is.Not.EqualTo(UUID.Zero)); | 98 | Assert.That(storeId, Is.Not.EqualTo(UUID.Zero)); |
86 | } | 99 | } |
87 | 100 | ||
88 | // [Test] | 101 | [Test] |
89 | public void TestJsonGetValue() | 102 | public void TestJsonDestroyStore() |
90 | { | 103 | { |
91 | TestHelpers.InMethod(); | 104 | TestHelpers.InMethod(); |
92 | // TestHelpers.EnableLogging(); | 105 | // TestHelpers.EnableLogging(); |
93 | 106 | ||
94 | UUID storeId | 107 | UUID storeId = (UUID)InvokeOp("JsonCreateStore", "{ 'Hello' : 'World' }"); |
95 | = (UUID)m_smcm.InvokeOperation( | 108 | int dsrv = (int)InvokeOp("JsonDestroyStore", storeId); |
96 | UUID.Zero, UUID.Zero, "JsonCreateStore", new object[] { "{ 'Hello' : 'World' }" }); | 109 | |
110 | Assert.That(dsrv, Is.EqualTo(1)); | ||
111 | |||
112 | int tprv = (int)InvokeOp("JsonTestPath", storeId, "Hello"); | ||
113 | Assert.That(tprv, Is.EqualTo(0)); | ||
114 | } | ||
115 | |||
116 | [Test] | ||
117 | public void TestJsonGetValue() | ||
118 | { | ||
119 | TestHelpers.InMethod(); | ||
120 | // TestHelpers.EnableLogging(); | ||
97 | 121 | ||
98 | string value | 122 | UUID storeId = (UUID)InvokeOp("JsonCreateStore", "{ 'Hello' : 'World' }"); |
99 | = (string)m_smcm.InvokeOperation( | ||
100 | UUID.Zero, UUID.Zero, "JsonGetValue", new object[] { storeId, "Hello" }); | ||
101 | 123 | ||
124 | string value = (string)InvokeOp("JsonGetValue", storeId, "Hello"); | ||
102 | Assert.That(value, Is.EqualTo("World")); | 125 | Assert.That(value, Is.EqualTo("World")); |
103 | } | 126 | } |
104 | 127 | ||
105 | // [Test] | 128 | // [Test] |
106 | public void TestJsonTestPath() | 129 | // public void TestJsonTakeValue() |
130 | // { | ||
131 | // TestHelpers.InMethod(); | ||
132 | //// TestHelpers.EnableLogging(); | ||
133 | // | ||
134 | // UUID storeId | ||
135 | // = (UUID)m_smcm.InvokeOperation( | ||
136 | // UUID.Zero, UUID.Zero, "JsonCreateStore", new object[] { "{ 'Hello' : 'World' }" }); | ||
137 | // | ||
138 | // string value | ||
139 | // = (string)m_smcm.InvokeOperation( | ||
140 | // UUID.Zero, UUID.Zero, "JsonTakeValue", new object[] { storeId, "Hello" }); | ||
141 | // | ||
142 | // Assert.That(value, Is.EqualTo("World")); | ||
143 | // | ||
144 | // string value2 | ||
145 | // = (string)m_smcm.InvokeOperation( | ||
146 | // UUID.Zero, UUID.Zero, "JsonGetValue", new object[] { storeId, "Hello" }); | ||
147 | // | ||
148 | // Assert.That(value, Is.Null); | ||
149 | // } | ||
150 | |||
151 | [Test] | ||
152 | public void TestJsonRemoveValue() | ||
107 | { | 153 | { |
108 | TestHelpers.InMethod(); | 154 | TestHelpers.InMethod(); |
109 | // TestHelpers.EnableLogging(); | 155 | // TestHelpers.EnableLogging(); |
110 | 156 | ||
111 | UUID storeId | 157 | UUID storeId = (UUID)InvokeOp("JsonCreateStore", "{ 'Hello' : 'World' }"); |
112 | = (UUID)m_smcm.InvokeOperation( | 158 | |
113 | UUID.Zero, UUID.Zero, "JsonCreateStore", new object[] { "{ 'Hello' : 'World' }" }); | 159 | int returnValue = (int)InvokeOp( "JsonRemoveValue", storeId, "Hello"); |
160 | Assert.That(returnValue, Is.EqualTo(1)); | ||
161 | |||
162 | int result = (int)InvokeOp("JsonTestPath", storeId, "Hello"); | ||
163 | Assert.That(result, Is.EqualTo(0)); | ||
164 | |||
165 | string returnValue2 = (string)InvokeOp("JsonGetValue", storeId, "Hello"); | ||
166 | Assert.That(returnValue2, Is.EqualTo("")); | ||
167 | } | ||
168 | |||
169 | [Test] | ||
170 | public void TestJsonTestPath() | ||
171 | { | ||
172 | TestHelpers.InMethod(); | ||
173 | // TestHelpers.EnableLogging(); | ||
114 | 174 | ||
115 | int result | 175 | UUID storeId = (UUID)InvokeOp("JsonCreateStore", "{ 'Hello' : 'World' }"); |
116 | = (int)m_smcm.InvokeOperation( | ||
117 | UUID.Zero, UUID.Zero, "JsonTestPath", new object[] { storeId, "Hello" }); | ||
118 | 176 | ||
177 | int result = (int)InvokeOp("JsonTestPath", storeId, "Hello"); | ||
119 | Assert.That(result, Is.EqualTo(1)); | 178 | Assert.That(result, Is.EqualTo(1)); |
120 | } | 179 | } |
121 | 180 | ||
122 | // [Test] | 181 | [Test] |
123 | public void TestJsonSetValue() | 182 | public void TestJsonSetValue() |
124 | { | 183 | { |
125 | TestHelpers.InMethod(); | 184 | TestHelpers.InMethod(); |
126 | // TestHelpers.EnableLogging(); | 185 | // TestHelpers.EnableLogging(); |
127 | 186 | ||
128 | UUID storeId | 187 | UUID storeId = (UUID)InvokeOp("JsonCreateStore", "{}"); |
129 | = (UUID)m_smcm.InvokeOperation( | ||
130 | UUID.Zero, UUID.Zero, "JsonCreateStore", new object[] { "{ }" }); | ||
131 | |||
132 | int result | ||
133 | = (int)m_smcm.InvokeOperation( | ||
134 | UUID.Zero, UUID.Zero, "JsonSetValue", new object[] { storeId, "Hello", "World" }); | ||
135 | 188 | ||
189 | int result = (int)InvokeOp("JsonSetValue", storeId, "Hello", "World"); | ||
136 | Assert.That(result, Is.EqualTo(1)); | 190 | Assert.That(result, Is.EqualTo(1)); |
137 | 191 | ||
138 | string value | 192 | string value = (string)InvokeOp("JsonGetValue", storeId, "Hello"); |
139 | = (string)m_smcm.InvokeOperation( | ||
140 | UUID.Zero, UUID.Zero, "JsonGetValue", new object[] { storeId, "Hello" }); | ||
141 | |||
142 | Assert.That(value, Is.EqualTo("World")); | 193 | Assert.That(value, Is.EqualTo("World")); |
143 | } | 194 | } |
195 | |||
196 | public object DummyTestMethod(object o1, object o2, object o3, object o4, object o5) { return null; } | ||
144 | } | 197 | } |
145 | } \ No newline at end of file | 198 | } \ No newline at end of file |