From 40cf840df26e66fca8ab81d602fd67ff1d2a6afa Mon Sep 17 00:00:00 2001
From: dr scofield (aka dirk husemann)
Date: Thu, 1 Oct 2009 09:47:45 +0200
Subject: adding testcase for LandDataSerializer; fixing LandDataSerializer ;-)

---
 .nant/local.include                                |  5 ++
 .../Serialization/External/LandDataSerializer.cs   | 64 ++++++++--------
 .../Serialization/Tests/LandDataSerializerTests.cs | 86 ++++++++++++++++++++++
 prebuild.xml                                       |  5 +-
 4 files changed, 126 insertions(+), 34 deletions(-)
 create mode 100644 OpenSim/Framework/Serialization/Tests/LandDataSerializerTests.cs

diff --git a/.nant/local.include b/.nant/local.include
index 8c72c80..8e233d0 100644
--- a/.nant/local.include
+++ b/.nant/local.include
@@ -53,6 +53,11 @@
   </exec>
   <fail message="Failures reported in unit tests." unless="${int::parse(testresult.opensim.framework.servers.tests)==0}" /> 
 
+  <exec program="${nunitcmd}" failonerror="true" resultproperty="testresult.opensim.framework.serialization.tests">
+    <arg value="./bin/OpenSim.Framework.Serialization.Tests.dll" />
+  </exec>
+  <fail message="Failures reported in unit tests." unless="${int::parse(testresult.opensim.framework.serialization.tests)==0}" /> 
+
   <exec program="${nunitcmd}" failonerror="true" resultproperty="testresult.opensim.region.clientstack.lindenudp.tests">
     <arg value="./bin/OpenSim.Region.ClientStack.LindenUDP.Tests.dll" />
   </exec>
diff --git a/OpenSim/Framework/Serialization/External/LandDataSerializer.cs b/OpenSim/Framework/Serialization/External/LandDataSerializer.cs
index 6bfae41..0d91859 100644
--- a/OpenSim/Framework/Serialization/External/LandDataSerializer.cs
+++ b/OpenSim/Framework/Serialization/External/LandDataSerializer.cs
@@ -132,47 +132,47 @@ namespace OpenSim.Framework.Serialization.External
             xtw.WriteStartDocument();
             xtw.WriteStartElement("LandData");
             
-            xtw.WriteElementString("Area", landData.Area.ToString());            
-            xtw.WriteElementString("AuctionID", landData.AuctionID.ToString());
-            xtw.WriteElementString("AuthBuyerID", landData.AuthBuyerID.ToString());
-            xtw.WriteElementString("Category", landData.Category.ToString());
-            xtw.WriteElementString("ClaimDate", landData.ClaimDate.ToString());
-            xtw.WriteElementString("ClaimPrice", landData.ClaimPrice.ToString());
-            xtw.WriteElementString("GlobalID", landData.GlobalID.ToString());
-            xtw.WriteElementString("GroupID", landData.GroupID.ToString());
-            xtw.WriteElementString("IsGroupOwned", landData.IsGroupOwned.ToString());
-            xtw.WriteElementString("Bitmap", landData.Bitmap.ToString());
-            xtw.WriteElementString("Description", landData.Description);
-            xtw.WriteElementString("Flags", landData.Flags.ToString());
-            xtw.WriteElementString("LandingType", landData.LandingType.ToString());
-            xtw.WriteElementString("Name", landData.Name);
-            xtw.WriteElementString("Status", landData.Status.ToString());
-            xtw.WriteElementString("LocalID", landData.LocalID.ToString());
-            xtw.WriteElementString("MediaAutoScale", landData.MediaAutoScale.ToString());
-            xtw.WriteElementString("MediaID", landData.MediaID.ToString());
-            xtw.WriteElementString("MediaURL", landData.MediaURL.ToString());
-            xtw.WriteElementString("MusicURL", landData.MusicURL.ToString());
-            xtw.WriteElementString("OwnerID", landData.OwnerID.ToString());
+            xtw.WriteElementString("Area",           Convert.ToString(landData.Area));            
+            xtw.WriteElementString("AuctionID",      Convert.ToString(landData.AuctionID));
+            xtw.WriteElementString("AuthBuyerID",    landData.AuthBuyerID.ToString());
+            xtw.WriteElementString("Category",       Convert.ToString(landData.Category));
+            xtw.WriteElementString("ClaimDate",      Convert.ToString(landData.ClaimDate));
+            xtw.WriteElementString("ClaimPrice",     Convert.ToString(landData.ClaimPrice));
+            xtw.WriteElementString("GlobalID",       landData.GlobalID.ToString());
+            xtw.WriteElementString("GroupID",        landData.GroupID.ToString());
+            xtw.WriteElementString("IsGroupOwned",   Convert.ToString(landData.IsGroupOwned));
+            xtw.WriteElementString("Bitmap",         Convert.ToBase64String(landData.Bitmap));
+            xtw.WriteElementString("Description",    landData.Description);
+            xtw.WriteElementString("Flags",          Convert.ToString(landData.Flags));
+            xtw.WriteElementString("LandingType",    Convert.ToString(landData.LandingType));
+            xtw.WriteElementString("Name",           landData.Name);
+            xtw.WriteElementString("Status",         Convert.ToString(landData.Status));
+            xtw.WriteElementString("LocalID",        landData.LocalID.ToString());
+            xtw.WriteElementString("MediaAutoScale", Convert.ToString(landData.MediaAutoScale));
+            xtw.WriteElementString("MediaID",        landData.MediaID.ToString());
+            xtw.WriteElementString("MediaURL",       landData.MediaURL);
+            xtw.WriteElementString("MusicURL",       landData.MusicURL);
+            xtw.WriteElementString("OwnerID",        landData.OwnerID.ToString());
 
             xtw.WriteStartElement("ParcelAccessList");
             foreach(ParcelManager.ParcelAccessEntry pal in landData.ParcelAccessList)
             {
                 xtw.WriteStartElement("ParcelAccessEntry");
-                xtw.WriteElementString("AgentID", pal.AgentID.ToString());
-                xtw.WriteElementString("Time", pal.Time.ToString());
-                xtw.WriteElementString("AccessList", pal.Flags.ToString());
+                xtw.WriteElementString("AgentID",     pal.AgentID.ToString());
+                xtw.WriteElementString("Time",        Convert.ToString(pal.Time));
+                xtw.WriteElementString("AccessList",  Convert.ToString(pal.Flags));
                 xtw.WriteEndElement();
             }
             xtw.WriteEndElement();
             
-            xtw.WriteElementString("PassHours", landData.PassHours.ToString());
-            xtw.WriteElementString("PassPrice", landData.PassPrice.ToString());
-            xtw.WriteElementString("SalePrice", landData.SalePrice.ToString());
-            xtw.WriteElementString("SnapshotID", landData.SnapshotID.ToString());
-            xtw.WriteElementString("UserLocation", landData.UserLocation.ToString());
-            xtw.WriteElementString("UserLookAt", landData.UserLookAt.ToString());
-            xtw.WriteElementString("Dwell", landData.Dwell.ToString());
-            xtw.WriteElementString("OtherCleanTime", landData.OtherCleanTime.ToString());
+            xtw.WriteElementString("PassHours",       Convert.ToString(landData.PassHours));
+            xtw.WriteElementString("PassPrice",       Convert.ToString(landData.PassPrice));
+            xtw.WriteElementString("SalePrice",       Convert.ToString(landData.SalePrice));
+            xtw.WriteElementString("SnapshotID",      landData.SnapshotID.ToString());
+            xtw.WriteElementString("UserLocation",    landData.UserLocation.ToString());
+            xtw.WriteElementString("UserLookAt",      landData.UserLookAt.ToString());
+            xtw.WriteElementString("Dwell",           Convert.ToString(landData.Dwell));
+            xtw.WriteElementString("OtherCleanTime",  Convert.ToString(landData.OtherCleanTime));
 
             xtw.WriteEndElement();
 
diff --git a/OpenSim/Framework/Serialization/Tests/LandDataSerializerTests.cs b/OpenSim/Framework/Serialization/Tests/LandDataSerializerTests.cs
new file mode 100644
index 0000000..f1881a1
--- /dev/null
+++ b/OpenSim/Framework/Serialization/Tests/LandDataSerializerTests.cs
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of the OpenSimulator Project nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+using System.Collections.Generic;
+using OpenSim.Framework;
+using OpenSim.Framework.Serialization.External;
+using OpenMetaverse;
+using OpenMetaverse.StructuredData;
+using NUnit.Framework;
+
+namespace OpenSim.Framework.Serialization.Tests
+{
+    [TestFixture]
+    public class LandDataSerializerTest
+    {
+        private LandData land;
+
+        [SetUp]
+        public void setup()
+        {
+            // setup LandData object
+            this.land = new LandData();
+            this.land.AABBMax = new Vector3(0, 0, 0);
+            this.land.AABBMin = new Vector3(128, 128, 128);
+            this.land.Area = 128;
+            this.land.AuctionID = 0;
+            this.land.AuthBuyerID = new UUID();
+            this.land.Category = ParcelCategory.Residential;
+            this.land.ClaimDate = 0;
+            this.land.ClaimPrice = 0;
+            this.land.GlobalID = new UUID("54ff9641-dd40-4a2c-b1f1-47dd3af24e50");
+            this.land.GroupID = new UUID("d740204e-bbbf-44aa-949d-02c7d739f6a5");
+            this.land.GroupPrims = 0;
+            this.land.Description = "land data to test LandDataSerializer";
+            this.land.Flags = (uint)(ParcelFlags.AllowDamage | ParcelFlags.AllowVoiceChat);
+            this.land.LandingType = (byte)LandingType.Direct;
+            this.land.Name = "LandDataSerializerTest Land";
+            this.land.Status = ParcelStatus.Leased;
+            this.land.LocalID = 0;
+            this.land.MediaAutoScale = (byte)0x01;
+            this.land.MediaID = new UUID("d4452578-2f25-4b97-a81b-819af559cfd7");
+            this.land.MediaURL = "http://videos.opensimulator.org/bumblebee.mp4";
+            this.land.OwnerID = new UUID("1b8eedf9-6d15-448b-8015-24286f1756bf");
+        }
+
+        /// <summary>
+        /// </summary>
+        [Test]
+        public void TestLandDataSerializerSerializeTest()
+        {
+            string serialized = LandDataSerializer.Serialize(this.land);
+            Assert.That(serialized.Length > 0);
+        }
+
+        /// <summary>
+        /// </summary>
+        [Test]
+        public void TestLandDataSerializerDeserializeTest()
+        {
+        }
+    }
+}
diff --git a/prebuild.xml b/prebuild.xml
index d02004b..ce04f12 100644
--- a/prebuild.xml
+++ b/prebuild.xml
@@ -3486,6 +3486,9 @@
 
       <ReferencePath>../../../../bin/</ReferencePath>
       <Reference name="System"/>
+      <Reference name="OpenMetaverse.dll"/>
+      <Reference name="OpenMetaverseTypes.dll"/>
+      <Reference name="OpenMetaverse.StructuredData.dll"/>
       <Reference name="OpenSim.Data"/>
       <Reference name="OpenSim.Services.Interfaces"/>
       <Reference name="OpenSim.Tests.Common"/>
@@ -3493,8 +3496,6 @@
       <Reference name="OpenSim.Framework.Serialization"/>
       <Reference name="OpenSim.Framework.Serialization.External"/>
       <Reference name="log4net.dll"/>
-      <Reference name="OpenMetaverse.dll"/>
-      <Reference name="OpenMetaverse.StructuredData.dll"/>
       <Reference name="nunit.framework.dll" />
 
       <Files>
-- 
cgit v1.1