From e9a121e1b203e8880bcaf85d35612fc6706b281a Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Thu, 19 Jul 2012 21:54:50 +0100
Subject: Add TestCreateDuplicateRootScenePresence() regression test.
---
OpenSim/Region/Framework/Scenes/Scene.cs | 17 ++++++++++++++++
OpenSim/Region/Framework/Scenes/SceneGraph.cs | 2 +-
.../Scenes/Tests/ScenePresenceAgentTests.cs | 23 ++++++++++++++++++++++
3 files changed, 41 insertions(+), 1 deletion(-)
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 6d8ee7b..36452de 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -4470,6 +4470,23 @@ namespace OpenSim.Region.Framework.Scenes
}
///
+ /// Gets all the scene presences in this scene.
+ ///
+ ///
+ /// This method will return both root and child scene presences.
+ ///
+ /// Consider using ForEachScenePresence() or ForEachRootScenePresence() if possible since these will not
+ /// involving creating a new List object.
+ ///
+ ///
+ /// A list of the scene presences. Adding or removing from the list will not affect the presences in the scene.
+ ///
+ public List GetScenePresences()
+ {
+ return new List(m_sceneGraph.GetScenePresences());
+ }
+
+ ///
/// Performs action on all avatars in the scene (root scene presences)
/// Avatars may be an NPC or a 'real' client.
///
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index 2be5364..ba68dfa 100644
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -768,7 +768,7 @@ namespace OpenSim.Region.Framework.Scenes
/// pass a delegate to ForEachScenePresence.
///
///
- private List GetScenePresences()
+ protected internal List GetScenePresences()
{
return m_scenePresenceArray;
}
diff --git a/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceAgentTests.cs b/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceAgentTests.cs
index 44c1396..5758869 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceAgentTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceAgentTests.cs
@@ -107,6 +107,29 @@ namespace OpenSim.Region.Framework.Scenes.Tests
Assert.That(sp, Is.Not.Null);
Assert.That(sp.IsChildAgent, Is.False);
Assert.That(sp.UUID, Is.EqualTo(spUuid));
+
+ Assert.That(scene.GetScenePresences().Count, Is.EqualTo(1));
+ }
+
+ [Test]
+ public void TestCreateDuplicateRootScenePresence()
+ {
+ TestHelpers.InMethod();
+// TestHelpers.EnableLogging();
+
+ UUID spUuid = TestHelpers.ParseTail(0x1);
+
+ TestScene scene = new SceneHelpers().SetupScene();
+ SceneHelpers.AddScenePresence(scene, spUuid);
+ SceneHelpers.AddScenePresence(scene, spUuid);
+
+ Assert.That(scene.AuthenticateHandler.GetAgentCircuitData(spUuid), Is.Not.Null);
+ Assert.That(scene.AuthenticateHandler.GetAgentCircuits().Count, Is.EqualTo(1));
+
+ ScenePresence sp = scene.GetScenePresence(spUuid);
+ Assert.That(sp, Is.Not.Null);
+ Assert.That(sp.IsChildAgent, Is.False);
+ Assert.That(sp.UUID, Is.EqualTo(spUuid));
}
[Test]
--
cgit v1.1