* Add save xml2 serialization test

0.6.6-post-fixes
Justin Clarke Casey 2009-05-29 20:20:47 +00:00
parent 9021bb231c
commit 6eb191c87b
3 changed files with 73 additions and 5 deletions

View File

@ -29,9 +29,12 @@ using log4net.Config;
using NUnit.Framework; using NUnit.Framework;
using NUnit.Framework.SyntaxHelpers; using NUnit.Framework.SyntaxHelpers;
using OpenMetaverse; using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
using OpenSim.Tests.Common; using OpenSim.Tests.Common;
using OpenSim.Tests.Common.Setup; using OpenSim.Tests.Common.Setup;
using System.IO;
using System.Xml;
namespace OpenSim.Region.CoreModules.World.Serialiser.Tests namespace OpenSim.Region.CoreModules.World.Serialiser.Tests
{ {
@ -119,13 +122,15 @@ namespace OpenSim.Region.CoreModules.World.Serialiser.Tests
<OtherParts /> <OtherParts />
</SceneObjectGroup>"; </SceneObjectGroup>";
protected Scene m_scene;
protected SerialiserModule m_serialiserModule; protected SerialiserModule m_serialiserModule;
[TestFixtureSetUp] [TestFixtureSetUp]
public void Init() public void Init()
{ {
m_serialiserModule = new SerialiserModule(); m_serialiserModule = new SerialiserModule();
SceneSetupHelpers.SetupSceneModules(SceneSetupHelpers.SetupScene(false), m_serialiserModule); m_scene = SceneSetupHelpers.SetupScene(false);
SceneSetupHelpers.SetupSceneModules(m_scene, m_serialiserModule);
} }
[Test] [Test]
@ -144,11 +149,73 @@ namespace OpenSim.Region.CoreModules.World.Serialiser.Tests
// TODO: Check other properties // TODO: Check other properties
} }
//[Test] [Test]
public void TestSaveXml2() public void TestSaveXml2()
{ {
TestHelper.InMethod(); TestHelper.InMethod();
//log4net.Config.XmlConfigurator.Configure(); //log4net.Config.XmlConfigurator.Configure();
string rpName = "My Little Pony";
UUID rpUuid = UUID.Parse("00000000-0000-0000-0000-000000000064");
UUID rpCreatorId = UUID.Parse("00000000-0000-0000-0000-000000000015");
PrimitiveBaseShape shape = PrimitiveBaseShape.CreateSphere();
// Vector3 groupPosition = new Vector3(10, 20, 30);
// Quaternion rotationOffset = new Quaternion(20, 30, 40, 50);
// Vector3 offsetPosition = new Vector3(5, 10, 15);
SceneObjectPart rp = new SceneObjectPart();
rp.UUID = rpUuid;
rp.Name = rpName;
rp.CreatorID = rpCreatorId;
rp.Shape = shape;
SceneObjectGroup so = new SceneObjectGroup(rp);
// Need to add the object to the scene so that the request to get script state succeeds
m_scene.AddSceneObject(UUID.Zero, so);
string xml2 = m_serialiserModule.SaveGroupToXml2(so);
XmlTextReader xtr = new XmlTextReader(new StringReader(xml2));
xtr.ReadStartElement("SceneObjectGroup");
xtr.ReadStartElement("SceneObjectPart");
UUID uuid = UUID.Zero;
string name = null;
UUID creatorId = UUID.Zero;
while (xtr.Read() && xtr.Name != "SceneObjectPart")
{
if (xtr.NodeType != XmlNodeType.Element)
continue;
switch (xtr.Name)
{
case "UUID":
xtr.ReadStartElement("UUID");
uuid = UUID.Parse(xtr.ReadElementString("Guid"));
xtr.ReadEndElement();
break;
case "Name":
name = xtr.ReadElementContentAsString();
break;
case "CreatorID":
xtr.ReadStartElement("CreatorID");
creatorId = UUID.Parse(xtr.ReadElementString("Guid"));
xtr.ReadEndElement();
break;
}
}
xtr.ReadEndElement();
xtr.ReadStartElement("OtherParts");
xtr.ReadEndElement();
xtr.Close();
// TODO: More checks
Assert.That(uuid, Is.EqualTo(rpUuid));
Assert.That(name, Is.EqualTo(rpName));
Assert.That(creatorId, Is.EqualTo(rpCreatorId));
} }
} }
} }

View File

@ -1803,9 +1803,8 @@ namespace OpenSim.Region.Framework.Scenes
if (sceneObject.RootPart.Shape.PCode == (byte)PCode.Prim) if (sceneObject.RootPart.Shape.PCode == (byte)PCode.Prim)
{ {
if (sceneObject.RootPart.Shape.State != 0) // Attchment if (sceneObject.RootPart.Shape.State != 0) // Attachment
{ {
sceneObject.RootPart.AddFlag(PrimFlags.TemporaryOnRez); sceneObject.RootPart.AddFlag(PrimFlags.TemporaryOnRez);
AddRestoredSceneObject(sceneObject, false, false); AddRestoredSceneObject(sceneObject, false, false);

View File

@ -595,8 +595,10 @@ namespace OpenSim.Region.Framework.Scenes
m_rotationOffset = PhysActor.Orientation; m_rotationOffset = PhysActor.Orientation;
} }
} }
return m_rotationOffset; return m_rotationOffset;
} }
set set
{ {
StoreUndoState(); StoreUndoState();