From 1743fe5d62422f959f1f865d1def2ad929375460 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Thu, 25 Oct 2012 00:29:50 +0100
Subject: Move npc creation tests involving appearance from
OSSL_ApiAppearanceTest to OSSL_ApiNpcTests
This is a more intuitive location.
---
.../ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs | 69 ++++++++++++++++++++++
1 file changed, 69 insertions(+)
(limited to 'OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs
index 25679a6..b5a4d93 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs
@@ -79,6 +79,75 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
}
///
+ /// Test creation of an NPC where the appearance data comes from a notecard
+ ///
+ [Test]
+ public void TestOsNpcCreateUsingAppearanceFromNotecard()
+ {
+ TestHelpers.InMethod();
+
+ // Store an avatar with a different height from default in a notecard.
+ UUID userId = TestHelpers.ParseTail(0x1);
+ float newHeight = 1.9f;
+
+ ScenePresence sp = SceneHelpers.AddScenePresence(m_scene, userId);
+ sp.Appearance.AvatarHeight = newHeight;
+ SceneObjectGroup so = SceneHelpers.CreateSceneObject(1, userId, 0x10);
+ SceneObjectPart part = so.RootPart;
+ m_scene.AddSceneObject(so);
+
+ OSSL_Api osslApi = new OSSL_Api();
+ osslApi.Initialize(m_engine, part, null);
+
+ string notecardName = "appearanceNc";
+ osslApi.osOwnerSaveAppearance(notecardName);
+
+ // Try creating a bot using the appearance in the notecard.
+ string npcRaw = osslApi.osNpcCreate("Jane", "Doe", new LSL_Types.Vector3(128, 128, 128), notecardName);
+ Assert.That(npcRaw, Is.Not.Null);
+
+ UUID npcId = new UUID(npcRaw);
+ ScenePresence npc = m_scene.GetScenePresence(npcId);
+ Assert.That(npc, Is.Not.Null);
+ Assert.That(npc.Appearance.AvatarHeight, Is.EqualTo(newHeight));
+ }
+
+ ///
+ /// Test creation of an NPC where the appearance data comes from an avatar already in the region.
+ ///
+ [Test]
+ public void TestOsNpcCreateUsingAppearanceFromAvatar()
+ {
+ TestHelpers.InMethod();
+// TestHelpers.EnableLogging();
+
+ // Store an avatar with a different height from default in a notecard.
+ UUID userId = TestHelpers.ParseTail(0x1);
+ float newHeight = 1.9f;
+
+ ScenePresence sp = SceneHelpers.AddScenePresence(m_scene, userId);
+ sp.Appearance.AvatarHeight = newHeight;
+ SceneObjectGroup so = SceneHelpers.CreateSceneObject(1, userId, 0x10);
+ SceneObjectPart part = so.RootPart;
+ m_scene.AddSceneObject(so);
+
+ OSSL_Api osslApi = new OSSL_Api();
+ osslApi.Initialize(m_engine, part, null);
+
+ string notecardName = "appearanceNc";
+ osslApi.osOwnerSaveAppearance(notecardName);
+
+ // Try creating a bot using the existing avatar's appearance
+ string npcRaw = osslApi.osNpcCreate("Jane", "Doe", new LSL_Types.Vector3(128, 128, 128), sp.UUID.ToString());
+ Assert.That(npcRaw, Is.Not.Null);
+
+ UUID npcId = new UUID(npcRaw);
+ ScenePresence npc = m_scene.GetScenePresence(npcId);
+ Assert.That(npc, Is.Not.Null);
+ Assert.That(npc.Appearance.AvatarHeight, Is.EqualTo(newHeight));
+ }
+
+ ///
/// Test removal of an owned NPC.
///
[Test]
--
cgit v1.1
From 5d4ac5a90fea758e18c8a9e97b06e799186b5a14 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Thu, 25 Oct 2012 00:59:27 +0100
Subject: Add TestOsNpcLoadAppearance()
---
.../ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs | 43 +++++++++++++++++++++-
1 file changed, 41 insertions(+), 2 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs
index b5a4d93..0a3a75d 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs
@@ -36,6 +36,7 @@ using OpenMetaverse;
using OpenMetaverse.Assets;
using OpenMetaverse.StructuredData;
using OpenSim.Framework;
+using OpenSim.Region.CoreModules.Avatar.Attachments;
using OpenSim.Region.CoreModules.Avatar.AvatarFactory;
using OpenSim.Region.OptionalModules.World.NPC;
using OpenSim.Region.Framework.Scenes;
@@ -71,7 +72,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
config.Set("Enabled", "true");
m_scene = new SceneHelpers().SetupScene();
- SceneHelpers.SetupSceneModules(m_scene, initConfigSource, new AvatarFactoryModule(), new NPCModule());
+ SceneHelpers.SetupSceneModules(
+ m_scene, initConfigSource, new AvatarFactoryModule(), new AttachmentsModule(), new NPCModule());
m_engine = new XEngine.XEngine();
m_engine.Initialise(initConfigSource);
@@ -147,6 +149,44 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
Assert.That(npc.Appearance.AvatarHeight, Is.EqualTo(newHeight));
}
+ [Test]
+ public void TestOsNpcLoadAppearance()
+ {
+ TestHelpers.InMethod();
+
+ // Store an avatar with a different height from default in a notecard.
+ UUID userId = TestHelpers.ParseTail(0x1);
+ float firstHeight = 1.9f;
+ float secondHeight = 2.1f;
+ string firstAppearanceNcName = "appearanceNc1";
+ string secondAppearanceNcName = "appearanceNc2";
+
+ ScenePresence sp = SceneHelpers.AddScenePresence(m_scene, userId);
+ sp.Appearance.AvatarHeight = firstHeight;
+ SceneObjectGroup so = SceneHelpers.CreateSceneObject(1, userId, 0x10);
+ SceneObjectPart part = so.RootPart;
+ m_scene.AddSceneObject(so);
+
+ OSSL_Api osslApi = new OSSL_Api();
+ osslApi.Initialize(m_engine, part, null);
+
+ osslApi.osOwnerSaveAppearance(firstAppearanceNcName);
+
+ string npcRaw
+ = osslApi.osNpcCreate("Jane", "Doe", new LSL_Types.Vector3(128, 128, 128), firstAppearanceNcName);
+
+ // Create a second appearance notecard with a different height
+ sp.Appearance.AvatarHeight = secondHeight;
+ osslApi.osOwnerSaveAppearance(secondAppearanceNcName);
+
+ osslApi.osNpcLoadAppearance(npcRaw, secondAppearanceNcName);
+
+ UUID npcId = new UUID(npcRaw);
+ ScenePresence npc = m_scene.GetScenePresence(npcId);
+ Assert.That(npc, Is.Not.Null);
+ Assert.That(npc.Appearance.AvatarHeight, Is.EqualTo(secondHeight));
+ }
+
///
/// Test removal of an owned NPC.
///
@@ -154,7 +194,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
public void TestOsNpcRemoveOwned()
{
TestHelpers.InMethod();
-// log4net.Config.XmlConfigurator.Configure();
// Store an avatar with a different height from default in a notecard.
UUID userId = TestHelpers.ParseTail(0x1);
--
cgit v1.1
From ae662b54ea972e4da4f805fe38b5714d595e032a Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Thu, 25 Oct 2012 01:07:06 +0100
Subject: Make osNpcCreate() return UUID.Zero instead of throwing an exception
if notecard name is invalid. Make osNpcLoadAppearance() fail silently in
same circumstance rather than throwing exception.
---
.../ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs | 54 ++++++++++++++++++++++
1 file changed, 54 insertions(+)
(limited to 'OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs
index 0a3a75d..4e58315 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs
@@ -114,6 +114,26 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
Assert.That(npc.Appearance.AvatarHeight, Is.EqualTo(newHeight));
}
+ [Test]
+ public void TestOsNpcCreateNotExistingNotecard()
+ {
+ TestHelpers.InMethod();
+
+ UUID userId = TestHelpers.ParseTail(0x1);
+
+ SceneObjectGroup so = SceneHelpers.CreateSceneObject(1, userId, 0x10);
+ m_scene.AddSceneObject(so);
+
+ OSSL_Api osslApi = new OSSL_Api();
+ osslApi.Initialize(m_engine, so.RootPart, null);
+
+ string npcRaw
+ = osslApi.osNpcCreate("Jane", "Doe", new LSL_Types.Vector3(128, 128, 128), "not existing notecard name");
+
+ UUID npcId = new UUID(npcRaw);
+ Assert.That(npcId, Is.EqualTo(UUID.Zero));
+ }
+
///
/// Test creation of an NPC where the appearance data comes from an avatar already in the region.
///
@@ -187,6 +207,40 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
Assert.That(npc.Appearance.AvatarHeight, Is.EqualTo(secondHeight));
}
+ [Test]
+ public void TestOsNpcLoadAppearanceNotExistingNotecard()
+ {
+ TestHelpers.InMethod();
+
+ // Store an avatar with a different height from default in a notecard.
+ UUID userId = TestHelpers.ParseTail(0x1);
+ float firstHeight = 1.9f;
+ float secondHeight = 2.1f;
+ string firstAppearanceNcName = "appearanceNc1";
+ string secondAppearanceNcName = "appearanceNc2";
+
+ ScenePresence sp = SceneHelpers.AddScenePresence(m_scene, userId);
+ sp.Appearance.AvatarHeight = firstHeight;
+ SceneObjectGroup so = SceneHelpers.CreateSceneObject(1, userId, 0x10);
+ SceneObjectPart part = so.RootPart;
+ m_scene.AddSceneObject(so);
+
+ OSSL_Api osslApi = new OSSL_Api();
+ osslApi.Initialize(m_engine, part, null);
+
+ osslApi.osOwnerSaveAppearance(firstAppearanceNcName);
+
+ string npcRaw
+ = osslApi.osNpcCreate("Jane", "Doe", new LSL_Types.Vector3(128, 128, 128), firstAppearanceNcName);
+
+ osslApi.osNpcLoadAppearance(npcRaw, secondAppearanceNcName);
+
+ UUID npcId = new UUID(npcRaw);
+ ScenePresence npc = m_scene.GetScenePresence(npcId);
+ Assert.That(npc, Is.Not.Null);
+ Assert.That(npc.Appearance.AvatarHeight, Is.EqualTo(firstHeight));
+ }
+
///
/// Test removal of an owned NPC.
///
--
cgit v1.1
From 8af8319b95c14819d0305527f8f6876a334fa3c0 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Thu, 25 Oct 2012 03:02:00 +0100
Subject: Get osNpcCreate() and osNpcLoadAppearance() to generate a script
error if appearance notecard does not exist, rather than returning UUID.Zero
or silently failing.
---
.../ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs | 30 +++++++++++++++++-----
1 file changed, 24 insertions(+), 6 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs
index 4e58315..b49bcc2 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs
@@ -127,11 +127,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
OSSL_Api osslApi = new OSSL_Api();
osslApi.Initialize(m_engine, so.RootPart, null);
- string npcRaw
- = osslApi.osNpcCreate("Jane", "Doe", new LSL_Types.Vector3(128, 128, 128), "not existing notecard name");
-
- UUID npcId = new UUID(npcRaw);
- Assert.That(npcId, Is.EqualTo(UUID.Zero));
+ string npcRaw;
+ bool gotExpectedException = false;
+ try
+ {
+ npcRaw
+ = osslApi.osNpcCreate("Jane", "Doe", new LSL_Types.Vector3(128, 128, 128), "not existing notecard name");
+ }
+ catch (ScriptException)
+ {
+ gotExpectedException = true;
+ }
+
+ Assert.That(gotExpectedException, Is.True);
}
///
@@ -233,7 +241,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
string npcRaw
= osslApi.osNpcCreate("Jane", "Doe", new LSL_Types.Vector3(128, 128, 128), firstAppearanceNcName);
- osslApi.osNpcLoadAppearance(npcRaw, secondAppearanceNcName);
+ bool gotExpectedException = false;
+ try
+ {
+ osslApi.osNpcLoadAppearance(npcRaw, secondAppearanceNcName);
+ }
+ catch (ScriptException)
+ {
+ gotExpectedException = true;
+ }
+
+ Assert.That(gotExpectedException, Is.True);
UUID npcId = new UUID(npcRaw);
ScenePresence npc = m_scene.GetScenePresence(npcId);
--
cgit v1.1