Add assert to attachment regression tests to check that number of objects in the scene graph
parent
6bcb5baab6
commit
f17f58ac2a
|
@ -149,6 +149,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments.Tests
|
||||||
InventoryFolderBase targetFolder = scene.InventoryService.GetFolderForType(sp.UUID, AssetType.Object);
|
InventoryFolderBase targetFolder = scene.InventoryService.GetFolderForType(sp.UUID, AssetType.Object);
|
||||||
Assert.That(attachmentItem.Folder, Is.EqualTo(targetFolder.ID));
|
Assert.That(attachmentItem.Folder, Is.EqualTo(targetFolder.ID));
|
||||||
|
|
||||||
|
Assert.That(scene.GetSceneObjectGroups().Count, Is.EqualTo(1));
|
||||||
|
|
||||||
// TestHelpers.DisableLogging();
|
// TestHelpers.DisableLogging();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -181,6 +183,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments.Tests
|
||||||
// Check appearance status
|
// Check appearance status
|
||||||
Assert.That(sp.Appearance.GetAttachments().Count, Is.EqualTo(1));
|
Assert.That(sp.Appearance.GetAttachments().Count, Is.EqualTo(1));
|
||||||
Assert.That(sp.Appearance.GetAttachpoint(attItem.ID), Is.EqualTo((int)AttachmentPoint.Chest));
|
Assert.That(sp.Appearance.GetAttachpoint(attItem.ID), Is.EqualTo((int)AttachmentPoint.Chest));
|
||||||
|
|
||||||
|
Assert.That(scene.GetSceneObjectGroups().Count, Is.EqualTo(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -239,6 +243,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments.Tests
|
||||||
|
|
||||||
// Check item status
|
// Check item status
|
||||||
Assert.That(sp.Appearance.GetAttachpoint(attItem.ID), Is.EqualTo(0));
|
Assert.That(sp.Appearance.GetAttachpoint(attItem.ID), Is.EqualTo(0));
|
||||||
|
|
||||||
|
Assert.That(scene.GetSceneObjectGroups().Count, Is.EqualTo(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -300,6 +306,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments.Tests
|
||||||
Assert.That(retreivedAttachments[0].ItemID, Is.EqualTo(attItem.ID));
|
Assert.That(retreivedAttachments[0].ItemID, Is.EqualTo(attItem.ID));
|
||||||
Assert.That(retreivedAttachments[0].AssetID, Is.EqualTo(attItem.AssetID));
|
Assert.That(retreivedAttachments[0].AssetID, Is.EqualTo(attItem.AssetID));
|
||||||
Assert.That(presence.Appearance.GetAttachpoint(attItem.ID), Is.EqualTo((int)AttachmentPoint.Chest));
|
Assert.That(presence.Appearance.GetAttachpoint(attItem.ID), Is.EqualTo((int)AttachmentPoint.Chest));
|
||||||
|
|
||||||
|
Assert.That(scene.GetSceneObjectGroups().Count, Is.EqualTo(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -399,6 +407,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments.Tests
|
||||||
Assert.That(actualSceneBAtt.Name, Is.EqualTo(attItem.Name));
|
Assert.That(actualSceneBAtt.Name, Is.EqualTo(attItem.Name));
|
||||||
Assert.That(actualSceneBAtt.AttachmentPoint, Is.EqualTo((uint)AttachmentPoint.Chest));
|
Assert.That(actualSceneBAtt.AttachmentPoint, Is.EqualTo((uint)AttachmentPoint.Chest));
|
||||||
|
|
||||||
|
// Teleporting attachments should not end up in the scene graph
|
||||||
|
Assert.That(sceneB.GetSceneObjectGroups().Count, Is.EqualTo(1));
|
||||||
|
|
||||||
// Check attachments have been removed from sceneA
|
// Check attachments have been removed from sceneA
|
||||||
ScenePresence afterTeleportSceneASp = sceneA.GetScenePresence(ua1.PrincipalID);
|
ScenePresence afterTeleportSceneASp = sceneA.GetScenePresence(ua1.PrincipalID);
|
||||||
|
|
||||||
|
@ -410,6 +421,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments.Tests
|
||||||
// This is the actual attachment, which should no longer exist
|
// This is the actual attachment, which should no longer exist
|
||||||
List<SceneObjectGroup> actualSceneAAttachments = afterTeleportSceneASp.GetAttachments();
|
List<SceneObjectGroup> actualSceneAAttachments = afterTeleportSceneASp.GetAttachments();
|
||||||
Assert.That(actualSceneAAttachments.Count, Is.EqualTo(0));
|
Assert.That(actualSceneAAttachments.Count, Is.EqualTo(0));
|
||||||
|
|
||||||
|
// Teleporting attachments should not end up in the scene graph
|
||||||
|
Assert.That(sceneA.GetSceneObjectGroups().Count, Is.EqualTo(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
// I'm commenting this test because scene setup NEEDS InventoryService to
|
// I'm commenting this test because scene setup NEEDS InventoryService to
|
||||||
|
|
|
@ -4382,6 +4382,17 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
m_sceneGraph.ForEachScenePresence(action);
|
m_sceneGraph.ForEachScenePresence(action);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get all the scene object groups.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>
|
||||||
|
/// The scene object groups. If the scene is empty then an empty list is returned.
|
||||||
|
/// </returns>
|
||||||
|
public List<SceneObjectGroup> GetSceneObjectGroups()
|
||||||
|
{
|
||||||
|
return m_sceneGraph.GetSceneObjectGroups();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Get a group via its UUID
|
/// Get a group via its UUID
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -975,6 +975,18 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get all the scene object groups.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>
|
||||||
|
/// The scene object groups. If the scene is empty then an empty list is returned.
|
||||||
|
/// </returns>
|
||||||
|
protected internal List<SceneObjectGroup> GetSceneObjectGroups()
|
||||||
|
{
|
||||||
|
lock (SceneObjectGroupsByFullID)
|
||||||
|
return new List<SceneObjectGroup>(SceneObjectGroupsByFullID.Values);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Get a group in the scene
|
/// Get a group in the scene
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -1118,11 +1130,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
/// <param name="action"></param>
|
/// <param name="action"></param>
|
||||||
protected internal void ForEachSOG(Action<SceneObjectGroup> action)
|
protected internal void ForEachSOG(Action<SceneObjectGroup> action)
|
||||||
{
|
{
|
||||||
List<SceneObjectGroup> objlist;
|
foreach (SceneObjectGroup obj in GetSceneObjectGroups())
|
||||||
lock (SceneObjectGroupsByFullID)
|
|
||||||
objlist = new List<SceneObjectGroup>(SceneObjectGroupsByFullID.Values);
|
|
||||||
|
|
||||||
foreach (SceneObjectGroup obj in objlist)
|
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue