add delete prim tests. Found and fixed bugs where region
is not respected by sqlite or mysql drivers so that deleting and object in a region actually deletes that object from any region.0.6.0-stable
parent
fecbb2febd
commit
d009927194
|
@ -333,7 +333,7 @@ namespace OpenSim.Data.MySQL
|
||||||
DataTable prims = m_primTable;
|
DataTable prims = m_primTable;
|
||||||
DataTable shapes = m_shapeTable;
|
DataTable shapes = m_shapeTable;
|
||||||
|
|
||||||
string selectExp = "SceneGroupID = '" + Util.ToRawUuidString(obj) + "'";
|
string selectExp = "SceneGroupID = '" + Util.ToRawUuidString(obj) + "' and RegionUUID = '" + Util.ToRawUuidString(regionUUID) + "'";
|
||||||
lock (m_dataSet)
|
lock (m_dataSet)
|
||||||
{
|
{
|
||||||
DataRow[] primRows = prims.Select(selectExp);
|
DataRow[] primRows = prims.Select(selectExp);
|
||||||
|
@ -347,7 +347,7 @@ namespace OpenSim.Data.MySQL
|
||||||
shapeRow.Delete();
|
shapeRow.Delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
RemoveItems(uuid);
|
RemoveItems(uuid);
|
||||||
|
|
||||||
// Remove prim row
|
// Remove prim row
|
||||||
row.Delete();
|
row.Delete();
|
||||||
|
|
|
@ -348,7 +348,7 @@ namespace OpenSim.Data.SQLite
|
||||||
DataTable prims = ds.Tables["prims"];
|
DataTable prims = ds.Tables["prims"];
|
||||||
DataTable shapes = ds.Tables["primshapes"];
|
DataTable shapes = ds.Tables["primshapes"];
|
||||||
|
|
||||||
string selectExp = "SceneGroupID = '" + Util.ToRawUuidString(obj) + "'";
|
string selectExp = "SceneGroupID = '" + Util.ToRawUuidString(obj) + "' and RegionUUID = '" + Util.ToRawUuidString(regionUUID) + "'";
|
||||||
lock (ds)
|
lock (ds)
|
||||||
{
|
{
|
||||||
DataRow[] primRows = prims.Select(selectExp);
|
DataRow[] primRows = prims.Select(selectExp);
|
||||||
|
|
|
@ -42,6 +42,9 @@ namespace OpenSim.Data.Tests
|
||||||
public IRegionDataStore db;
|
public IRegionDataStore db;
|
||||||
public UUID region1;
|
public UUID region1;
|
||||||
public UUID region2;
|
public UUID region2;
|
||||||
|
public UUID prim1;
|
||||||
|
public UUID prim2;
|
||||||
|
public UUID prim3;
|
||||||
public double height1;
|
public double height1;
|
||||||
public double height2;
|
public double height2;
|
||||||
|
|
||||||
|
@ -57,10 +60,22 @@ namespace OpenSim.Data.Tests
|
||||||
}
|
}
|
||||||
|
|
||||||
region1 = UUID.Random();
|
region1 = UUID.Random();
|
||||||
|
prim1 = UUID.Random();
|
||||||
|
prim2 = UUID.Random();
|
||||||
|
prim3 = UUID.Random();
|
||||||
height1 = 20;
|
height1 = 20;
|
||||||
height2 = 100;
|
height2 = 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Test Plan
|
||||||
|
// Prims
|
||||||
|
// - empty test - 001
|
||||||
|
// - store / retrieve basic prims (most minimal we can make) - 010, 011
|
||||||
|
// - update existing prims, make sure it sticks - 012
|
||||||
|
// - add inventory items to prims make - 013
|
||||||
|
// - remove inventory items make sure it sticks - 014
|
||||||
|
// - remove prim, make sure it sticks - 020
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void T001_LoadEmpty()
|
public void T001_LoadEmpty()
|
||||||
{
|
{
|
||||||
|
@ -78,8 +93,8 @@ namespace OpenSim.Data.Tests
|
||||||
[Test]
|
[Test]
|
||||||
public void T010_StoreSimpleObject()
|
public void T010_StoreSimpleObject()
|
||||||
{
|
{
|
||||||
SceneObjectGroup sog = NewSOG("object1");
|
SceneObjectGroup sog = NewSOG("object1", prim1);
|
||||||
SceneObjectGroup sog2 = NewSOG("object2");
|
SceneObjectGroup sog2 = NewSOG("object2", prim2);
|
||||||
|
|
||||||
// in case the objects don't store
|
// in case the objects don't store
|
||||||
try
|
try
|
||||||
|
@ -132,6 +147,29 @@ namespace OpenSim.Data.Tests
|
||||||
Assert.That(text, Is.EqualTo(sog.RootPart.Text));
|
Assert.That(text, Is.EqualTo(sog.RootPart.Text));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void T013_PrimInventory()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void T021_RemoveObjectWrongRegion()
|
||||||
|
{
|
||||||
|
db.RemoveObject(prim1, UUID.Random());
|
||||||
|
SceneObjectGroup sog = FindSOG("object1", region1);
|
||||||
|
Assert.That(sog, Is.Not.Null);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void T022_RemoveObject()
|
||||||
|
{
|
||||||
|
db.RemoveObject(prim1, region1);
|
||||||
|
SceneObjectGroup sog = FindSOG("object1", region1);
|
||||||
|
Assert.That(sog, Is.Null);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void T100_DefaultRegionInfo()
|
public void T100_DefaultRegionInfo()
|
||||||
{
|
{
|
||||||
|
@ -246,9 +284,8 @@ namespace OpenSim.Data.Tests
|
||||||
// causes the application to crash at the database layer because of null values
|
// causes the application to crash at the database layer because of null values
|
||||||
// in NOT NULL fields
|
// in NOT NULL fields
|
||||||
//
|
//
|
||||||
private SceneObjectGroup NewSOG(string name)
|
private SceneObjectGroup NewSOG(string name, UUID uuid)
|
||||||
{
|
{
|
||||||
SceneObjectGroup sog = new SceneObjectGroup();
|
|
||||||
SceneObjectPart sop = new SceneObjectPart();
|
SceneObjectPart sop = new SceneObjectPart();
|
||||||
sop.LocalId = 1;
|
sop.LocalId = 1;
|
||||||
sop.Name = name;
|
sop.Name = name;
|
||||||
|
@ -256,8 +293,10 @@ namespace OpenSim.Data.Tests
|
||||||
sop.Text = "";
|
sop.Text = "";
|
||||||
sop.SitName = "";
|
sop.SitName = "";
|
||||||
sop.TouchName = "";
|
sop.TouchName = "";
|
||||||
sop.UUID = UUID.Random();
|
sop.UUID = uuid;
|
||||||
sop.Shape = PrimitiveBaseShape.Default;
|
sop.Shape = PrimitiveBaseShape.Default;
|
||||||
|
|
||||||
|
SceneObjectGroup sog = new SceneObjectGroup();
|
||||||
sog.AddPart(sop);
|
sog.AddPart(sop);
|
||||||
sog.RootPart = sop;
|
sog.RootPart = sop;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue