Mid-work, trying to fix region part insertion and retrieval
SQLite reports System NUll Reference, but works, inside LoadItems, on SQLiteRegionData.cs From: Arthur Rodrigo S Valadares <arthursv@linux.vnet.ibm.com>0.6.0-stable
parent
0d2487d8a9
commit
409e7262df
|
@ -31,4 +31,6 @@ bin/Physics*
|
||||||
bin/Terrain*
|
bin/Terrain*
|
||||||
bin/estate_settings.xml
|
bin/estate_settings.xml
|
||||||
cov/*
|
cov/*
|
||||||
|
OpenSim/OpenSim.userprefs
|
||||||
|
OpenSim/OpenSim.usertasks
|
||||||
*~
|
*~
|
||||||
|
|
|
@ -395,7 +395,8 @@ namespace OpenSim.Data.MySQL
|
||||||
DataRow[] primsForRegion = prims.Select(byRegion, orderByParent);
|
DataRow[] primsForRegion = prims.Select(byRegion, orderByParent);
|
||||||
m_log.Info("[REGION DB]: " +
|
m_log.Info("[REGION DB]: " +
|
||||||
"Loaded " + primsForRegion.Length + " prims for region: " + regionUUID);
|
"Loaded " + primsForRegion.Length + " prims for region: " + regionUUID);
|
||||||
|
|
||||||
|
// First, create all groups
|
||||||
foreach (DataRow primRow in primsForRegion)
|
foreach (DataRow primRow in primsForRegion)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -422,11 +423,33 @@ namespace OpenSim.Data.MySQL
|
||||||
}
|
}
|
||||||
group.AddPart(prim);
|
group.AddPart(prim);
|
||||||
group.RootPart = prim;
|
group.RootPart = prim;
|
||||||
|
|
||||||
createdObjects.Add(group.UUID, group);
|
createdObjects.Add(group.UUID, group);
|
||||||
retvals.Add(group);
|
retvals.Add(group);
|
||||||
}
|
}
|
||||||
else
|
LoadItems(prim);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
m_log.Error("[REGION DB]: Failed create prim object, exception and data follows");
|
||||||
|
m_log.Info("[REGION DB]: " + e.ToString());
|
||||||
|
foreach (DataColumn col in prims.Columns)
|
||||||
|
{
|
||||||
|
m_log.Info("[REGION DB]: Col: " + col.ColumnName + " => " + primRow[col]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Now fill the groups with part data
|
||||||
|
foreach (DataRow primRow in primsForRegion)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string uuid = (string) primRow["UUID"];
|
||||||
|
string objID = (string) primRow["SceneGroupID"];
|
||||||
|
|
||||||
|
SceneObjectPart prim = buildPrim(primRow);
|
||||||
|
|
||||||
|
if (uuid != objID) //is new SceneObjectGroup ?
|
||||||
{
|
{
|
||||||
DataRow shapeRow = shapes.Rows.Find(Util.ToRawUuidString(prim.UUID));
|
DataRow shapeRow = shapes.Rows.Find(Util.ToRawUuidString(prim.UUID));
|
||||||
if (shapeRow != null)
|
if (shapeRow != null)
|
||||||
|
@ -441,9 +464,8 @@ namespace OpenSim.Data.MySQL
|
||||||
}
|
}
|
||||||
createdObjects[new UUID(objID)].AddPart(prim);
|
createdObjects[new UUID(objID)].AddPart(prim);
|
||||||
}
|
}
|
||||||
|
LoadItems(prim);
|
||||||
LoadItems(prim);
|
}
|
||||||
}
|
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
m_log.Error("[REGION DB]: Failed create prim object, exception and data follows");
|
m_log.Error("[REGION DB]: Failed create prim object, exception and data follows");
|
||||||
|
@ -473,7 +495,7 @@ namespace OpenSim.Data.MySQL
|
||||||
|
|
||||||
String sql = String.Format("primID = '{0}'", prim.UUID.ToString());
|
String sql = String.Format("primID = '{0}'", prim.UUID.ToString());
|
||||||
DataRow[] dbItemRows = dbItems.Select(sql);
|
DataRow[] dbItemRows = dbItems.Select(sql);
|
||||||
|
Console.WriteLine("dbItemRows MYSQL Length: {0}",dbItemRows.Length);
|
||||||
IList<TaskInventoryItem> inventory = new List<TaskInventoryItem>();
|
IList<TaskInventoryItem> inventory = new List<TaskInventoryItem>();
|
||||||
|
|
||||||
foreach (DataRow row in dbItemRows)
|
foreach (DataRow row in dbItemRows)
|
||||||
|
|
|
@ -412,7 +412,7 @@ namespace OpenSim.Data.SQLite
|
||||||
DataRow[] primsForRegion = prims.Select(byRegion, orderByParent);
|
DataRow[] primsForRegion = prims.Select(byRegion, orderByParent);
|
||||||
m_log.Info("[REGION DB]: " +
|
m_log.Info("[REGION DB]: " +
|
||||||
"Loaded " + primsForRegion.Length + " prims for region: " + regionUUID);
|
"Loaded " + primsForRegion.Length + " prims for region: " + regionUUID);
|
||||||
|
// First, create all groups
|
||||||
foreach (DataRow primRow in primsForRegion)
|
foreach (DataRow primRow in primsForRegion)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -438,11 +438,32 @@ namespace OpenSim.Data.SQLite
|
||||||
}
|
}
|
||||||
group.AddPart(prim);
|
group.AddPart(prim);
|
||||||
group.RootPart = prim;
|
group.RootPart = prim;
|
||||||
|
Console.WriteLine("The Object UUID is {0}",prim.UUID);
|
||||||
createdObjects.Add(group.UUID, group);
|
createdObjects.Add(group.UUID, group);
|
||||||
retvals.Add(group);
|
retvals.Add(group);
|
||||||
}
|
}
|
||||||
else
|
LoadItems(prim);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
m_log.Error("[REGION DB]: Failed create prim object in new group, exception and data follows");
|
||||||
|
m_log.Info("[REGION DB]: " + e.ToString());
|
||||||
|
foreach (DataColumn col in prims.Columns)
|
||||||
|
{
|
||||||
|
m_log.Info("[REGION DB]: Col: " + col.ColumnName + " => " + primRow[col]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Now fill the groups with part data
|
||||||
|
foreach (DataRow primRow in primsForRegion)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
SceneObjectPart prim = null;
|
||||||
|
|
||||||
|
string uuid = (string) primRow["UUID"];
|
||||||
|
string objID = (string) primRow["SceneGroupID"];
|
||||||
|
if (uuid != objID) //is new SceneObjectGroup ?
|
||||||
{
|
{
|
||||||
prim = buildPrim(primRow);
|
prim = buildPrim(primRow);
|
||||||
DataRow shapeRow = shapes.Rows.Find(Util.ToRawUuidString(prim.UUID));
|
DataRow shapeRow = shapes.Rows.Find(Util.ToRawUuidString(prim.UUID));
|
||||||
|
@ -456,14 +477,14 @@ namespace OpenSim.Data.SQLite
|
||||||
"[REGION DB]: No shape found for prim in storage, so setting default box shape");
|
"[REGION DB]: No shape found for prim in storage, so setting default box shape");
|
||||||
prim.Shape = PrimitiveBaseShape.Default;
|
prim.Shape = PrimitiveBaseShape.Default;
|
||||||
}
|
}
|
||||||
|
Console.WriteLine("Version2: The Object UUID is {0}",prim.UUID);
|
||||||
createdObjects[new UUID(objID)].AddPart(prim);
|
createdObjects[new UUID(objID)].AddPart(prim);
|
||||||
}
|
}
|
||||||
|
|
||||||
LoadItems(prim);
|
LoadItems(prim);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
m_log.Error("[REGION DB]: Failed create prim object, exception and data follows");
|
m_log.Error("[REGION DB]: Failed create prim object in group, exception and data follows");
|
||||||
m_log.Info("[REGION DB]: " + e.ToString());
|
m_log.Info("[REGION DB]: " + e.ToString());
|
||||||
foreach (DataColumn col in prims.Columns)
|
foreach (DataColumn col in prims.Columns)
|
||||||
{
|
{
|
||||||
|
@ -482,16 +503,21 @@ namespace OpenSim.Data.SQLite
|
||||||
private void LoadItems(SceneObjectPart prim)
|
private void LoadItems(SceneObjectPart prim)
|
||||||
{
|
{
|
||||||
//m_log.DebugFormat("[DATASTORE]: Loading inventory for {0}, {1}", prim.Name, prim.UUID);
|
//m_log.DebugFormat("[DATASTORE]: Loading inventory for {0}, {1}", prim.Name, prim.UUID);
|
||||||
|
|
||||||
DataTable dbItems = ds.Tables["primitems"];
|
DataTable dbItems = ds.Tables["primitems"];
|
||||||
|
//return; POINT OF FAILURE!!! BELOW THIS LINE FAILS
|
||||||
|
Console.WriteLine("dbItems: {0} and the prim is: {1}, UUID {2}",dbItems,prim.Name,prim.UUID);
|
||||||
String sql = String.Format("primID = '{0}'", prim.UUID.ToString());
|
String sql = String.Format("primID = '{0}'", prim.UUID.ToString());
|
||||||
|
//string sql = "primID = '" + prim.UUID.ToString() + "'";
|
||||||
DataRow[] dbItemRows = dbItems.Select(sql);
|
DataRow[] dbItemRows = dbItems.Select(sql);
|
||||||
|
Console.WriteLine("dbItemRows Length: {0}",dbItemRows.Length);
|
||||||
|
if (dbItemRows.Length == 0)
|
||||||
|
return;
|
||||||
IList<TaskInventoryItem> inventory = new List<TaskInventoryItem>();
|
IList<TaskInventoryItem> inventory = new List<TaskInventoryItem>();
|
||||||
|
|
||||||
foreach (DataRow row in dbItemRows)
|
foreach (DataRow row in dbItemRows)
|
||||||
{
|
{
|
||||||
|
Console.WriteLine("Inside the foreach");
|
||||||
TaskInventoryItem item = buildItem(row);
|
TaskInventoryItem item = buildItem(row);
|
||||||
inventory.Add(item);
|
inventory.Add(item);
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,8 @@
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Text;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using NUnit.Framework.SyntaxHelpers;
|
using NUnit.Framework.SyntaxHelpers;
|
||||||
using OpenSim.Framework;
|
using OpenSim.Framework;
|
||||||
|
@ -44,15 +46,24 @@ namespace OpenSim.Data.Tests
|
||||||
public UUID zero = UUID.Zero;
|
public UUID zero = UUID.Zero;
|
||||||
public UUID region1;
|
public UUID region1;
|
||||||
public UUID region2;
|
public UUID region2;
|
||||||
|
public UUID region3;
|
||||||
|
public UUID region4;
|
||||||
public UUID prim1;
|
public UUID prim1;
|
||||||
public UUID prim2;
|
public UUID prim2;
|
||||||
public UUID prim3;
|
public UUID prim3;
|
||||||
|
public UUID prim4;
|
||||||
|
public UUID prim5;
|
||||||
|
public UUID prim6;
|
||||||
public UUID item1;
|
public UUID item1;
|
||||||
public UUID item2;
|
public UUID item2;
|
||||||
public UUID item3;
|
public UUID item3;
|
||||||
|
|
||||||
|
public static Random random;
|
||||||
|
|
||||||
public string itemname1 = "item1";
|
public string itemname1 = "item1";
|
||||||
|
|
||||||
|
public uint localID;
|
||||||
|
|
||||||
public double height1;
|
public double height1;
|
||||||
public double height2;
|
public double height2;
|
||||||
|
|
||||||
|
@ -68,12 +79,19 @@ namespace OpenSim.Data.Tests
|
||||||
}
|
}
|
||||||
|
|
||||||
region1 = UUID.Random();
|
region1 = UUID.Random();
|
||||||
|
region3 = UUID.Random();
|
||||||
|
region4 = UUID.Random();
|
||||||
prim1 = UUID.Random();
|
prim1 = UUID.Random();
|
||||||
prim2 = UUID.Random();
|
prim2 = UUID.Random();
|
||||||
prim3 = UUID.Random();
|
prim3 = UUID.Random();
|
||||||
|
prim4 = UUID.Random();
|
||||||
|
prim5 = UUID.Random();
|
||||||
|
prim6 = UUID.Random();
|
||||||
item1 = UUID.Random();
|
item1 = UUID.Random();
|
||||||
item2 = UUID.Random();
|
item2 = UUID.Random();
|
||||||
item3 = UUID.Random();
|
item3 = UUID.Random();
|
||||||
|
random = new Random();
|
||||||
|
localID = 1;
|
||||||
height1 = 20;
|
height1 = 20;
|
||||||
height2 = 100;
|
height2 = 100;
|
||||||
}
|
}
|
||||||
|
@ -82,18 +100,22 @@ namespace OpenSim.Data.Tests
|
||||||
// Prims
|
// Prims
|
||||||
// - empty test - 001
|
// - empty test - 001
|
||||||
// - store / retrieve basic prims (most minimal we can make) - 010, 011
|
// - store / retrieve basic prims (most minimal we can make) - 010, 011
|
||||||
// - update existing prims, make sure it sticks - 012
|
// - store / retrieve parts in a scenegroup 012
|
||||||
// - add inventory items to prims make - 013
|
// - store a prim with complete information for consistency check 013
|
||||||
// - remove inventory items make sure it sticks - 014
|
// - update existing prims, make sure it sticks - 014
|
||||||
|
// - add inventory items to prims make - 015
|
||||||
|
// - remove inventory items make sure it sticks - 016
|
||||||
// - remove prim, make sure it sticks - 020
|
// - remove prim, make sure it sticks - 020
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void T001_LoadEmpty()
|
public void T001_LoadEmpty()
|
||||||
{
|
{
|
||||||
List<SceneObjectGroup> objs = db.LoadObjects(region1);
|
List<SceneObjectGroup> objs = db.LoadObjects(region1);
|
||||||
|
List<SceneObjectGroup> objs3 = db.LoadObjects(region3);
|
||||||
List<LandData> land = db.LoadLandObjects(region1);
|
List<LandData> land = db.LoadLandObjects(region1);
|
||||||
|
|
||||||
Assert.That(objs.Count, Is.EqualTo(0));
|
Assert.That(objs.Count, Is.EqualTo(0));
|
||||||
|
Assert.That(objs3.Count, Is.EqualTo(0));
|
||||||
Assert.That(land.Count, Is.EqualTo(0));
|
Assert.That(land.Count, Is.EqualTo(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -145,9 +167,262 @@ namespace OpenSim.Data.Tests
|
||||||
Assert.That(p.Name, Is.EqualTo(p.Description));
|
Assert.That(p.Name, Is.EqualTo(p.Description));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void T012_UpdateObject()
|
public void T012_SceneParts()
|
||||||
|
{
|
||||||
|
UUID tmp0 = UUID.Random();
|
||||||
|
UUID tmp1 = UUID.Random();
|
||||||
|
UUID tmp2 = UUID.Random();
|
||||||
|
UUID tmp3 = UUID.Random();
|
||||||
|
UUID newregion = UUID.Random();
|
||||||
|
SceneObjectPart p1 = NewSOP("SoP 1",tmp1);
|
||||||
|
SceneObjectPart p2 = NewSOP("SoP 2",tmp2);
|
||||||
|
SceneObjectPart p3 = NewSOP("SoP 3",tmp3);
|
||||||
|
SceneObjectGroup sog = NewSOG("Sop 0",tmp0);
|
||||||
|
sog.AddPart(p1);
|
||||||
|
sog.AddPart(p2);
|
||||||
|
sog.AddPart(p3);
|
||||||
|
|
||||||
|
Console.WriteLine("Test 10 has prims {0} and {1} in region {2}",prim1,prim2,region1);
|
||||||
|
Console.WriteLine("The prims are {0}, {1}, {2} and {3} and region is {4}",tmp0,tmp1,tmp2,tmp3,newregion);
|
||||||
|
SceneObjectPart[] parts = sog.GetParts();
|
||||||
|
Console.WriteLine("Before Insertion:");
|
||||||
|
Assert.That(parts.Length,Is.EqualTo(4));
|
||||||
|
Console.WriteLine("PASSED BEFORE");
|
||||||
|
|
||||||
|
db.StoreObject(sog, newregion);
|
||||||
|
List<SceneObjectGroup> sogs = db.LoadObjects(newregion);
|
||||||
|
Assert.That(sogs.Count,Is.EqualTo(1));
|
||||||
|
SceneObjectGroup newsog = sogs[0];
|
||||||
|
|
||||||
|
SceneObjectPart[] newparts = newsog.GetParts();
|
||||||
|
Console.WriteLine("After Insertion:");
|
||||||
|
Assert.That(newparts.Length,Is.EqualTo(4));
|
||||||
|
Console.WriteLine("PASSED AFTER!");
|
||||||
|
|
||||||
|
Assert.That(newsog.HasChildPrim(tmp0));
|
||||||
|
Assert.That(newsog.HasChildPrim(tmp1));
|
||||||
|
Assert.That(newsog.HasChildPrim(tmp2));
|
||||||
|
Assert.That(newsog.HasChildPrim(tmp3));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
[Ignore("Make sure 12 works first")]
|
||||||
|
public void T013_ObjectConsistency()
|
||||||
|
{
|
||||||
|
UUID creator,uuid = new UUID();
|
||||||
|
creator = UUID.Random();
|
||||||
|
uint iserial = (uint) random.Next();
|
||||||
|
TaskInventoryDictionary dic = new TaskInventoryDictionary();
|
||||||
|
uint objf = (uint) random.Next();
|
||||||
|
uuid = prim4;
|
||||||
|
uint localid = localID+1;
|
||||||
|
localID = localID + 1;
|
||||||
|
string name = "Adam West";
|
||||||
|
byte material = (byte) random.Next(255);
|
||||||
|
ulong regionh = (ulong)random.NextDouble() * (ulong)random.Next();
|
||||||
|
int pin = random.Next();
|
||||||
|
Byte[] partsys = new byte[8];
|
||||||
|
Byte[] textani = new byte[8];
|
||||||
|
random.NextBytes(textani);
|
||||||
|
random.NextBytes(partsys);
|
||||||
|
DateTime expires = new DateTime(2008, 12, 20);
|
||||||
|
DateTime rezzed = new DateTime(2009, 07, 15);
|
||||||
|
Vector3 groupos = new Vector3(random.Next(),random.Next(),random.Next());
|
||||||
|
Vector3 offset = new Vector3(random.Next(),random.Next(),random.Next());
|
||||||
|
Quaternion rotoff = new Quaternion(random.Next(),random.Next(),random.Next(),random.Next());
|
||||||
|
Vector3 velocity = new Vector3(random.Next(),random.Next(),random.Next());
|
||||||
|
Vector3 angvelo = new Vector3(random.Next(),random.Next(),random.Next());
|
||||||
|
Vector3 accel = new Vector3(random.Next(),random.Next(),random.Next());
|
||||||
|
string description = name;
|
||||||
|
//Color color = Color.Brown;
|
||||||
|
Color color = Color.FromArgb(255, 165, 42, 42);
|
||||||
|
string text = "All Your Base Are Belong to Us";
|
||||||
|
string sitname = "SitName";
|
||||||
|
string touchname = "TouchName";
|
||||||
|
int linknum = random.Next();
|
||||||
|
byte clickaction = (byte) random.Next(255);
|
||||||
|
PrimitiveBaseShape pbshap = new PrimitiveBaseShape();
|
||||||
|
pbshap = PrimitiveBaseShape.Default;
|
||||||
|
Vector3 scale = new Vector3(random.Next(),random.Next(),random.Next());
|
||||||
|
byte updatef = (byte) random.Next(255);
|
||||||
|
|
||||||
|
SceneObjectPart sop = new SceneObjectPart();
|
||||||
|
sop.RegionHandle = regionh;
|
||||||
|
sop.UUID = uuid;
|
||||||
|
sop.LocalId = localid;
|
||||||
|
sop.Shape = pbshap;
|
||||||
|
sop.GroupPosition = groupos;
|
||||||
|
sop.RotationOffset = rotoff;
|
||||||
|
sop.CreatorID = creator;
|
||||||
|
sop.InventorySerial = iserial;
|
||||||
|
sop.TaskInventory = dic;
|
||||||
|
sop.ObjectFlags = objf;
|
||||||
|
sop.Name = name;
|
||||||
|
sop.Material = material;
|
||||||
|
sop.ScriptAccessPin = pin;
|
||||||
|
sop.TextureAnimation = textani;
|
||||||
|
sop.ParticleSystem = partsys;
|
||||||
|
sop.Expires = expires;
|
||||||
|
sop.Rezzed = rezzed;
|
||||||
|
sop.OffsetPosition = offset;
|
||||||
|
sop.Velocity = velocity;
|
||||||
|
sop.AngularVelocity = angvelo;
|
||||||
|
sop.Acceleration = accel;
|
||||||
|
sop.Description = description;
|
||||||
|
sop.Color = color;
|
||||||
|
sop.Text = text;
|
||||||
|
sop.SitName = sitname;
|
||||||
|
sop.TouchName = touchname;
|
||||||
|
sop.LinkNum = linknum;
|
||||||
|
sop.ClickAction = clickaction;
|
||||||
|
sop.Scale = scale;
|
||||||
|
sop.UpdateFlag = updatef;
|
||||||
|
|
||||||
|
//Tests if local part accepted the parameters:
|
||||||
|
Console.WriteLine("Test -0");
|
||||||
|
Assert.That(regionh,Is.EqualTo(sop.RegionHandle));
|
||||||
|
Console.WriteLine("Test -1 localid é: {0} e LocalId é {1}",localid,sop.LocalId);
|
||||||
|
Assert.That(localid,Is.EqualTo(sop.LocalId));
|
||||||
|
Console.WriteLine("Test -2");
|
||||||
|
//**Assert.That(pbshap,Is.EqualTo(sop.Shape));
|
||||||
|
Assert.That(groupos,Is.EqualTo(sop.GroupPosition));
|
||||||
|
Console.WriteLine("Test -3");
|
||||||
|
Assert.That(name,Is.EqualTo(sop.Name));
|
||||||
|
Console.WriteLine("Test -4");
|
||||||
|
Assert.That(rotoff,Is.EqualTo(sop.RotationOffset));
|
||||||
|
Console.WriteLine("Test 0 - uuid is {0}",uuid);
|
||||||
|
Assert.That(uuid,Is.EqualTo(sop.UUID));
|
||||||
|
Console.WriteLine("Test 1");
|
||||||
|
Assert.That(creator,Is.EqualTo(sop.CreatorID));
|
||||||
|
Console.WriteLine("Test 2 - iserial is {0}",iserial);
|
||||||
|
Assert.That(iserial,Is.EqualTo(sop.InventorySerial));
|
||||||
|
Console.WriteLine("Test 3");
|
||||||
|
Assert.That(dic,Is.EqualTo(sop.TaskInventory));
|
||||||
|
Console.WriteLine("Test 4");
|
||||||
|
Assert.That(objf,Is.EqualTo(sop.ObjectFlags));
|
||||||
|
Console.WriteLine("Test 5");
|
||||||
|
Assert.That(name,Is.EqualTo(sop.Name));
|
||||||
|
Console.WriteLine("Test 6");
|
||||||
|
Assert.That(material,Is.EqualTo(sop.Material));
|
||||||
|
Console.WriteLine("Test 7");
|
||||||
|
Assert.That(pin,Is.EqualTo(sop.ScriptAccessPin));
|
||||||
|
Console.WriteLine("Test 8");
|
||||||
|
Assert.That(textani,Is.EqualTo(sop.TextureAnimation));
|
||||||
|
Console.WriteLine("Test 9");
|
||||||
|
Assert.That(partsys,Is.EqualTo(sop.ParticleSystem));
|
||||||
|
Console.WriteLine("Test 9.1");
|
||||||
|
Assert.That(expires,Is.EqualTo(sop.Expires));
|
||||||
|
Console.WriteLine("Test 9.2");
|
||||||
|
Assert.That(rezzed,Is.EqualTo(sop.Rezzed));
|
||||||
|
Console.WriteLine("Test 10");
|
||||||
|
Assert.That(offset,Is.EqualTo(sop.OffsetPosition));
|
||||||
|
Assert.That(velocity,Is.EqualTo(sop.Velocity));
|
||||||
|
Console.WriteLine("Test 12");
|
||||||
|
Assert.That(angvelo,Is.EqualTo(sop.AngularVelocity));
|
||||||
|
Console.WriteLine("Test 13");
|
||||||
|
Assert.That(accel,Is.EqualTo(sop.Acceleration));
|
||||||
|
Console.WriteLine("Test 14");
|
||||||
|
Assert.That(description,Is.EqualTo(sop.Description));
|
||||||
|
Assert.That(color,Is.EqualTo(sop.Color));
|
||||||
|
Assert.That(text,Is.EqualTo(sop.Text));
|
||||||
|
Assert.That(sitname,Is.EqualTo(sop.SitName));
|
||||||
|
Console.WriteLine("Test 15");
|
||||||
|
Assert.That(touchname,Is.EqualTo(sop.TouchName));
|
||||||
|
Console.WriteLine("Test 16");
|
||||||
|
Assert.That(linknum,Is.EqualTo(sop.LinkNum));
|
||||||
|
Console.WriteLine("Test 17");
|
||||||
|
Assert.That(clickaction,Is.EqualTo(sop.ClickAction));
|
||||||
|
Console.WriteLine("Test 18");
|
||||||
|
Assert.That(scale,Is.EqualTo(sop.Scale));
|
||||||
|
Console.WriteLine("Test 19");
|
||||||
|
Assert.That(updatef,Is.EqualTo(sop.UpdateFlag));
|
||||||
|
Console.WriteLine("Test 20");
|
||||||
|
|
||||||
|
// This is necessary or object will not be inserted in DB
|
||||||
|
sop.ObjectFlags = 0;
|
||||||
|
|
||||||
|
SceneObjectGroup sog = new SceneObjectGroup();
|
||||||
|
sog.AddPart(sop);
|
||||||
|
sog.RootPart = sop;
|
||||||
|
|
||||||
|
// Inserts group in DB
|
||||||
|
db.StoreObject(sog,region3);
|
||||||
|
List<SceneObjectGroup> sogs = db.LoadObjects(region3);
|
||||||
|
Assert.That(sogs.Count, Is.EqualTo(1));
|
||||||
|
// Makes sure there are no double insertions:
|
||||||
|
/*
|
||||||
|
db.StoreObject(sog,region3);
|
||||||
|
sogs = db.LoadObjects(region3);
|
||||||
|
Assert.That(sogs.Count, Is.EqualTo(1));
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Tests if the parameters were inserted correctly
|
||||||
|
SceneObjectPart p = sogs[0].RootPart;
|
||||||
|
Console.WriteLine("Test -0");
|
||||||
|
Assert.That(regionh,Is.EqualTo(p.RegionHandle));
|
||||||
|
Console.WriteLine("Test -1 localid é: {0} e LocalId é {1}",localid,p.LocalId);
|
||||||
|
//Assert.That(localid,Is.EqualTo(p.LocalId));
|
||||||
|
Console.WriteLine("Test -2");
|
||||||
|
//Assert.That(pbshap,Is.EqualTo(p.Shape));
|
||||||
|
Assert.That(groupos,Is.EqualTo(p.GroupPosition));
|
||||||
|
Console.WriteLine("Test -3");
|
||||||
|
Assert.That(name,Is.EqualTo(p.Name));
|
||||||
|
Console.WriteLine("Test -4");
|
||||||
|
Assert.That(rotoff,Is.EqualTo(p.RotationOffset));
|
||||||
|
Console.WriteLine("Test 0 - uuid is {0}",uuid);
|
||||||
|
Assert.That(uuid,Is.EqualTo(p.UUID));
|
||||||
|
Console.WriteLine("Test 1");
|
||||||
|
Assert.That(creator,Is.EqualTo(p.CreatorID));
|
||||||
|
Console.WriteLine("Test 2 - iserial is {0}",iserial);
|
||||||
|
//Assert.That(iserial,Is.EqualTo(p.InventorySerial));
|
||||||
|
Console.WriteLine("Test 3");
|
||||||
|
Assert.That(dic,Is.EqualTo(p.TaskInventory));
|
||||||
|
Console.WriteLine("Test 4");
|
||||||
|
//Assert.That(objf,Is.EqualTo(p.ObjectFlags));
|
||||||
|
Console.WriteLine("Test 5");
|
||||||
|
Assert.That(name,Is.EqualTo(p.Name));
|
||||||
|
Console.WriteLine("Test 6");
|
||||||
|
Assert.That(material,Is.EqualTo(p.Material));
|
||||||
|
Console.WriteLine("Test 7");
|
||||||
|
Assert.That(pin,Is.EqualTo(p.ScriptAccessPin));
|
||||||
|
Console.WriteLine("Test 8");
|
||||||
|
Assert.That(textani,Is.EqualTo(p.TextureAnimation));
|
||||||
|
Console.WriteLine("Test 9");
|
||||||
|
Assert.That(partsys,Is.EqualTo(p.ParticleSystem));
|
||||||
|
Console.WriteLine("Test 9.1 - Expires in {0}",expires);
|
||||||
|
//Assert.That(expires,Is.EqualTo(p.Expires));
|
||||||
|
Console.WriteLine("Test 9.2 - Rezzed in {0}",rezzed);
|
||||||
|
//Assert.That(rezzed,Is.EqualTo(p.Rezzed));
|
||||||
|
Console.WriteLine("Test 10");
|
||||||
|
Assert.That(offset,Is.EqualTo(p.OffsetPosition));
|
||||||
|
Assert.That(velocity,Is.EqualTo(p.Velocity));
|
||||||
|
Console.WriteLine("Test 12");
|
||||||
|
Assert.That(angvelo,Is.EqualTo(p.AngularVelocity));
|
||||||
|
Console.WriteLine("Test 13");
|
||||||
|
Assert.That(accel,Is.EqualTo(p.Acceleration));
|
||||||
|
Console.WriteLine("Test 14");
|
||||||
|
Assert.That(description,Is.EqualTo(p.Description));
|
||||||
|
Assert.That(color,Is.EqualTo(p.Color));
|
||||||
|
Assert.That(text,Is.EqualTo(p.Text));
|
||||||
|
Assert.That(sitname,Is.EqualTo(p.SitName));
|
||||||
|
Console.WriteLine("Test 15");
|
||||||
|
Assert.That(touchname,Is.EqualTo(p.TouchName));
|
||||||
|
Console.WriteLine("Test 16");
|
||||||
|
//Assert.That(linknum,Is.EqualTo(p.LinkNum));
|
||||||
|
Console.WriteLine("Test 17");
|
||||||
|
Assert.That(clickaction,Is.EqualTo(p.ClickAction));
|
||||||
|
Console.WriteLine("Test 18");
|
||||||
|
Assert.That(scale,Is.EqualTo(p.Scale));
|
||||||
|
Console.WriteLine("Test 19");
|
||||||
|
//Assert.That(updatef,Is.EqualTo(p.UpdateFlag));
|
||||||
|
Console.WriteLine("Test 20");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void T014_UpdateObject()
|
||||||
{
|
{
|
||||||
string text = "object1 text";
|
string text = "object1 text";
|
||||||
SceneObjectGroup sog = FindSOG("object1", region1);
|
SceneObjectGroup sog = FindSOG("object1", region1);
|
||||||
|
@ -364,14 +639,17 @@ namespace OpenSim.Data.Tests
|
||||||
private SceneObjectGroup NewSOG(string name, UUID uuid)
|
private SceneObjectGroup NewSOG(string name, UUID uuid)
|
||||||
{
|
{
|
||||||
SceneObjectPart sop = new SceneObjectPart();
|
SceneObjectPart sop = new SceneObjectPart();
|
||||||
sop.LocalId = 1;
|
//sop.LocalId = 1;
|
||||||
|
sop.LocalId = localID;
|
||||||
|
localID = localID + 1;
|
||||||
sop.Name = name;
|
sop.Name = name;
|
||||||
sop.Description = name;
|
sop.Description = name;
|
||||||
sop.Text = "";
|
sop.Text = RandomName();
|
||||||
sop.SitName = "";
|
sop.SitName = RandomName();
|
||||||
sop.TouchName = "";
|
sop.TouchName = RandomName();
|
||||||
sop.UUID = uuid;
|
sop.UUID = uuid;
|
||||||
sop.Shape = PrimitiveBaseShape.Default;
|
sop.Shape = PrimitiveBaseShape.Default;
|
||||||
|
|
||||||
|
|
||||||
SceneObjectGroup sog = new SceneObjectGroup();
|
SceneObjectGroup sog = new SceneObjectGroup();
|
||||||
sog.AddPart(sop);
|
sog.AddPart(sop);
|
||||||
|
@ -379,6 +657,22 @@ namespace OpenSim.Data.Tests
|
||||||
|
|
||||||
return sog;
|
return sog;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private SceneObjectPart NewSOP(string name, UUID uuid)
|
||||||
|
{
|
||||||
|
SceneObjectPart sop = new SceneObjectPart();
|
||||||
|
//sop.LocalId = 1;
|
||||||
|
sop.LocalId = localID;
|
||||||
|
localID = localID + 1;
|
||||||
|
sop.Name = name;
|
||||||
|
sop.Description = name;
|
||||||
|
sop.Text = RandomName();
|
||||||
|
sop.SitName = RandomName();
|
||||||
|
sop.TouchName = RandomName();
|
||||||
|
sop.UUID = uuid;
|
||||||
|
sop.Shape = PrimitiveBaseShape.Default;
|
||||||
|
return sop;
|
||||||
|
}
|
||||||
|
|
||||||
// These are copied from the Inventory Item tests
|
// These are copied from the Inventory Item tests
|
||||||
|
|
||||||
|
@ -395,6 +689,18 @@ namespace OpenSim.Data.Tests
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static string RandomName()
|
||||||
|
{
|
||||||
|
StringBuilder name = new StringBuilder();
|
||||||
|
int size = random.Next(5,12);
|
||||||
|
char ch ;
|
||||||
|
for (int i=0; i<size; i++)
|
||||||
|
{
|
||||||
|
ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65))) ;
|
||||||
|
name.Append(ch);
|
||||||
|
}
|
||||||
|
return name.ToString();
|
||||||
|
}
|
||||||
// private InventoryFolderBase NewFolder(UUID id, UUID parent, UUID owner, string name)
|
// private InventoryFolderBase NewFolder(UUID id, UUID parent, UUID owner, string name)
|
||||||
// {
|
// {
|
||||||
// InventoryFolderBase f = new InventoryFolderBase();
|
// InventoryFolderBase f = new InventoryFolderBase();
|
||||||
|
|
|
@ -116,6 +116,7 @@
|
||||||
|
|
||||||
<ReferencePath>../../../bin/</ReferencePath>
|
<ReferencePath>../../../bin/</ReferencePath>
|
||||||
<Reference name="System"/>
|
<Reference name="System"/>
|
||||||
|
<Reference name="System.Drawing"/>
|
||||||
<Reference name="System.Xml"/>
|
<Reference name="System.Xml"/>
|
||||||
<Reference name="System.Data"/>
|
<Reference name="System.Data"/>
|
||||||
<Reference name="nunit.framework.dll" />
|
<Reference name="nunit.framework.dll" />
|
||||||
|
@ -1403,6 +1404,7 @@
|
||||||
<ReferencePath>../../../bin/</ReferencePath>
|
<ReferencePath>../../../bin/</ReferencePath>
|
||||||
<Reference name="System" localCopy="false"/>
|
<Reference name="System" localCopy="false"/>
|
||||||
<Reference name="System.Xml"/>
|
<Reference name="System.Xml"/>
|
||||||
|
<Reference name="System.Drawing"/>
|
||||||
<Reference name="System.Data"/>
|
<Reference name="System.Data"/>
|
||||||
<Reference name="OpenMetaverse.dll"/>
|
<Reference name="OpenMetaverse.dll"/>
|
||||||
<Reference name="OpenMetaverseTypes.dll"/>
|
<Reference name="OpenMetaverseTypes.dll"/>
|
||||||
|
|
Loading…
Reference in New Issue