From f557d7e82821c931c6ca2faf97c668fa94cacfb0 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 25 Jan 2013 01:48:31 +0000
Subject: Add basic JsonCreateStore() regression test
---
.../ScriptModuleComms/ScriptModuleCommsModule.cs | 2 +-
.../JsonStore/Tests/JsonStoreScriptModuleTests.cs | 86 +++++++++
OpenSim/Tests/Common/Mock/MockScriptEngine.cs | 214 +++++++++++++++++++++
prebuild.xml | 7 +-
4 files changed, 306 insertions(+), 3 deletions(-)
create mode 100644 OpenSim/Region/OptionalModules/Scripting/JsonStore/Tests/JsonStoreScriptModuleTests.cs
create mode 100644 OpenSim/Tests/Common/Mock/MockScriptEngine.cs
diff --git a/OpenSim/Region/CoreModules/Scripting/ScriptModuleComms/ScriptModuleCommsModule.cs b/OpenSim/Region/CoreModules/Scripting/ScriptModuleComms/ScriptModuleCommsModule.cs
index f6e1d39..6bf50d2 100644
--- a/OpenSim/Region/CoreModules/Scripting/ScriptModuleComms/ScriptModuleCommsModule.cs
+++ b/OpenSim/Region/CoreModules/Scripting/ScriptModuleComms/ScriptModuleCommsModule.cs
@@ -41,7 +41,7 @@ using System.Linq.Expressions;
namespace OpenSim.Region.CoreModules.Scripting.ScriptModuleComms
{
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "ScriptModuleCommsModule")]
- class ScriptModuleCommsModule : INonSharedRegionModule, IScriptModuleComms
+ public class ScriptModuleCommsModule : INonSharedRegionModule, IScriptModuleComms
{
private static readonly ILog m_log =
LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
diff --git a/OpenSim/Region/OptionalModules/Scripting/JsonStore/Tests/JsonStoreScriptModuleTests.cs b/OpenSim/Region/OptionalModules/Scripting/JsonStore/Tests/JsonStoreScriptModuleTests.cs
new file mode 100644
index 0000000..4b6ddd6
--- /dev/null
+++ b/OpenSim/Region/OptionalModules/Scripting/JsonStore/Tests/JsonStoreScriptModuleTests.cs
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSimulator Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+using System;
+using System.Collections.Generic;
+using System.Reflection;
+using System.Text;
+using log4net;
+using Nini.Config;
+using NUnit.Framework;
+using OpenMetaverse;
+using OpenSim.Framework;
+using OpenSim.Region.CoreModules.Scripting.ScriptModuleComms;
+using OpenSim.Region.Framework.Scenes;
+using OpenSim.Region.ScriptEngine.Shared;
+using OpenSim.Region.ScriptEngine.Shared.Api;
+using OpenSim.Services.Interfaces;
+using OpenSim.Tests.Common;
+using OpenSim.Tests.Common.Mock;
+
+namespace OpenSim.Region.OptionalModules.Scripting.JsonStore.Tests
+{
+ ///
+ /// Tests for inventory functions in LSL
+ ///
+ [TestFixture]
+ public class LSL_ApiInventoryTests : OpenSimTestCase
+ {
+ private Scene m_scene;
+ private MockScriptEngine m_engine;
+ private ScriptModuleCommsModule m_smcm;
+
+ [SetUp]
+ public override void SetUp()
+ {
+ base.SetUp();
+
+ IConfigSource configSource = new IniConfigSource();
+ IConfig jsonStoreConfig = configSource.AddConfig("JsonStore");
+ jsonStoreConfig.Set("Enabled", "true");
+
+ m_engine = new MockScriptEngine();
+ m_smcm = new ScriptModuleCommsModule();
+ JsonStoreModule jsm = new JsonStoreModule();
+ JsonStoreScriptModule jssm = new JsonStoreScriptModule();
+
+ m_scene = new SceneHelpers().SetupScene();
+ SceneHelpers.SetupSceneModules(m_scene, configSource, m_engine, m_smcm, jsm, jssm);
+ }
+
+ [Test]
+ public void TestJsonCreateStore()
+ {
+ TestHelpers.InMethod();
+// log4net.Config.XmlConfigurator.Configure();
+
+ UUID storeId = (UUID)m_smcm.InvokeOperation(UUID.Zero, UUID.Zero, "JsonCreateStore", new object[] { "{}" });
+
+ Assert.That(storeId, Is.Not.EqualTo(UUID.Zero));
+ }
+ }
+}
\ No newline at end of file
diff --git a/OpenSim/Tests/Common/Mock/MockScriptEngine.cs b/OpenSim/Tests/Common/Mock/MockScriptEngine.cs
new file mode 100644
index 0000000..51f2712
--- /dev/null
+++ b/OpenSim/Tests/Common/Mock/MockScriptEngine.cs
@@ -0,0 +1,214 @@
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSimulator Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Reflection;
+using Nini.Config;
+using OpenMetaverse;
+using OpenSim.Region.Framework.Interfaces;
+using OpenSim.Region.Framework.Scenes;
+using OpenSim.Region.ScriptEngine.Interfaces;
+using OpenSim.Region.ScriptEngine.Shared;
+
+namespace OpenSim.Tests.Common
+{
+ public class MockScriptEngine : INonSharedRegionModule, IScriptModule, IScriptEngine
+ {
+ private Scene m_scene;
+
+ public void Initialise(IConfigSource source)
+ {
+ }
+
+ public void Close()
+ {
+ }
+
+ public void AddRegion(Scene scene)
+ {
+ m_scene = scene;
+
+ m_scene.StackModuleInterface(this);
+ }
+
+ public void RemoveRegion(Scene scene)
+ {
+ }
+
+ public void RegionLoaded(Scene scene)
+ {
+ }
+
+ public string Name { get { return "Mock Script Engine"; } }
+ public string ScriptEngineName { get { return Name; } }
+
+ public Type ReplaceableInterface { get { return null; } }
+
+ public event ScriptRemoved OnScriptRemoved;
+ public event ObjectRemoved OnObjectRemoved;
+
+ public string GetXMLState (UUID itemID)
+ {
+ throw new System.NotImplementedException ();
+ }
+
+ public bool SetXMLState(UUID itemID, string xml)
+ {
+ throw new System.NotImplementedException ();
+ }
+
+ public bool PostScriptEvent(UUID itemID, string name, object[] args)
+ {
+ throw new System.NotImplementedException ();
+ }
+
+ public bool PostObjectEvent(UUID itemID, string name, object[] args)
+ {
+ throw new System.NotImplementedException ();
+ }
+
+ public void SuspendScript(UUID itemID)
+ {
+ throw new System.NotImplementedException ();
+ }
+
+ public void ResumeScript(UUID itemID)
+ {
+ throw new System.NotImplementedException ();
+ }
+
+ public ArrayList GetScriptErrors(UUID itemID)
+ {
+ throw new System.NotImplementedException ();
+ }
+
+ public bool HasScript(UUID itemID, out bool running)
+ {
+ throw new System.NotImplementedException ();
+ }
+
+ public bool GetScriptState(UUID itemID)
+ {
+ throw new System.NotImplementedException ();
+ }
+
+ public void SaveAllState()
+ {
+ throw new System.NotImplementedException ();
+ }
+
+ public void StartProcessing()
+ {
+ throw new System.NotImplementedException ();
+ }
+
+ public float GetScriptExecutionTime(List itemIDs)
+ {
+ throw new System.NotImplementedException ();
+ }
+
+ public Dictionary GetObjectScriptsExecutionTimes()
+ {
+ throw new System.NotImplementedException ();
+ }
+
+ public IScriptWorkItem QueueEventHandler(object parms)
+ {
+ throw new System.NotImplementedException ();
+ }
+
+ public bool PostScriptEvent(UUID itemID,EventParams parms)
+ {
+ throw new System.NotImplementedException ();
+ }
+
+ public bool PostObjectEvent (uint localID, EventParams parms)
+ {
+ throw new System.NotImplementedException ();
+ }
+
+ public DetectParams GetDetectParams(UUID item, int number)
+ {
+ throw new System.NotImplementedException ();
+ }
+
+ public void SetMinEventDelay(UUID itemID, double delay)
+ {
+ throw new System.NotImplementedException ();
+ }
+
+ public int GetStartParameter(UUID itemID)
+ {
+ throw new System.NotImplementedException ();
+ }
+
+ public void SetScriptState(UUID itemID, bool state)
+ {
+ throw new System.NotImplementedException ();
+ }
+
+ public void SetState(UUID itemID, string newState)
+ {
+ throw new System.NotImplementedException ();
+ }
+
+ public void ApiResetScript(UUID itemID)
+ {
+ throw new System.NotImplementedException ();
+ }
+
+ public void ResetScript (UUID itemID)
+ {
+ throw new System.NotImplementedException ();
+ }
+
+ public IScriptApi GetApi(UUID itemID, string name)
+ {
+ throw new System.NotImplementedException ();
+ }
+
+ public Scene World { get { return m_scene; } }
+
+ public IScriptModule ScriptModule { get { throw new System.NotImplementedException(); } }
+
+ public IConfig Config { get { throw new System.NotImplementedException (); } }
+
+ public IConfigSource ConfigSource { get { throw new System.NotImplementedException (); } }
+
+ public string ScriptEnginePath { get { throw new System.NotImplementedException (); }}
+
+ public string ScriptClassName { get { throw new System.NotImplementedException (); } }
+
+ public string ScriptBaseClassName { get { throw new System.NotImplementedException (); } }
+
+ public string[] ScriptReferencedAssemblies { get { throw new System.NotImplementedException (); } }
+
+ public ParameterInfo[] ScriptBaseClassParameters { get { throw new System.NotImplementedException (); } }
+ }
+}
\ No newline at end of file
diff --git a/prebuild.xml b/prebuild.xml
index cea4530..8a75380 100644
--- a/prebuild.xml
+++ b/prebuild.xml
@@ -2741,12 +2741,13 @@
-
-
+
+
+
@@ -3109,6 +3110,7 @@
+
@@ -3133,6 +3135,7 @@
+
--
cgit v1.1