From ebbe3afaf15fa07f4a8d1c2db8795065b852ec8d Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Wed, 23 Mar 2011 23:14:55 +0000
Subject: Add PrimCountModuleTests.TestRemoveOwnerObject().
Also adds SceneSetupHelpers methods to easily create sogs with different part UUIDs
---
.../World/Land/Tests/PrimCountModuleTests.cs | 39 +++++++++++++++++++++-
OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs | 27 ++++++++++++---
2 files changed, 60 insertions(+), 6 deletions(-)
diff --git a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs
index 72f74fa..e6b8627 100644
--- a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs
+++ b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs
@@ -44,8 +44,11 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests
[TestFixture]
public class PrimCountModuleTests
{
+ ///
+ /// Test count after a parcel owner owned object is added.
+ ///
[Test]
- public void TestAddObject()
+ public void TestAddOwnerObject()
{
TestHelper.InMethod();
// log4net.Config.XmlConfigurator.Configure();
@@ -80,5 +83,39 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests
Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, dummyUserId), Is.EqualTo(0));
Assert.That(pcm.GetSimulatorCount(lo.LandData.GlobalID), Is.EqualTo(3));
}
+
+ ///
+ /// Test count after a parcel owner owned object is removed.
+ ///
+ [Test]
+ public void TestRemoveOwnerObject()
+ {
+ TestHelper.InMethod();
+// log4net.Config.XmlConfigurator.Configure();
+
+ PrimCountModule pcm = new PrimCountModule();
+ LandManagementModule lmm = new LandManagementModule();
+ Scene scene = SceneSetupHelpers.SetupScene();
+ SceneSetupHelpers.SetupSceneModules(scene, lmm, pcm);
+
+ UUID userId = new UUID("00000000-0000-0000-0000-000000000010");
+ UUID dummyUserId = new UUID("99999999-9999-9999-9999-999999999999");
+ ILandObject lo = new LandObject(userId, false, scene);
+ lo.SetLandBitmap(lo.GetSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize));
+ lmm.AddLandObject(lo);
+ //scene.loadAllLandObjectsFromStorage(scene.RegionInfo.originRegionID);
+
+ scene.AddNewSceneObject(SceneSetupHelpers.CreateSceneObject(1, userId, 0x1), false);
+ SceneObjectGroup sogToDelete = SceneSetupHelpers.CreateSceneObject(3, userId, 0x10);
+ scene.AddNewSceneObject(sogToDelete, false);
+ scene.DeleteSceneObject(sogToDelete, false);
+
+ Assert.That(pcm.GetOwnerCount(lo.LandData.GlobalID), Is.EqualTo(1));
+ Assert.That(pcm.GetGroupCount(lo.LandData.GlobalID), Is.EqualTo(0));
+ Assert.That(pcm.GetOthersCount(lo.LandData.GlobalID), Is.EqualTo(0));
+ Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, userId), Is.EqualTo(1));
+ Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, dummyUserId), Is.EqualTo(0));
+ Assert.That(pcm.GetSimulatorCount(lo.LandData.GlobalID), Is.EqualTo(1));
+ }
}
}
\ No newline at end of file
diff --git a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs
index 87b6389..57850c1 100644
--- a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs
+++ b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs
@@ -488,20 +488,37 @@ namespace OpenSim.Tests.Common.Setup
///
///
public static SceneObjectGroup CreateSceneObject(int parts, UUID ownerId)
- {
+ {
+ return CreateSceneObject(parts, ownerId, 0x1);
+ }
+
+ ///
+ /// Create a scene object but do not add it to the scene.
+ ///
+ /// The number of parts that should be in the scene object
+ ///
+ ///
+ /// The hexadecimal last part of the UUID for parts created. A UUID of the form "00000000-0000-0000-0000-{0:XD12}"
+ /// will be given to the root part, and incremented for each part thereafter.
+ ///
+ ///
+ public static SceneObjectGroup CreateSceneObject(int parts, UUID ownerId, int uuidTail)
+ {
+ string rawSogId = string.Format("00000000-0000-0000-0000-{0:X12}", uuidTail);
+
SceneObjectGroup sog
= new SceneObjectGroup(
- CreateSceneObjectPart("part1", new UUID("00000000-0000-0000-0000-000000000001"), ownerId));
+ CreateSceneObjectPart("part0", new UUID(rawSogId), ownerId));
if (parts > 1)
- for (int i = 2; i <= parts; i++)
+ for (int i = 1; i < parts; i++)
sog.AddPart(
CreateSceneObjectPart(
string.Format("obj{0}", i),
- new UUID(string.Format("00000000-0000-0000-0000-{0:D12}", i)),
+ new UUID(string.Format("00000000-0000-0000-0000-{0:X12}", uuidTail + i)),
ownerId));
return sog;
- }
+ }
}
}
\ No newline at end of file
--
cgit v1.1