* Fixed and re-enabled CacheTests

* Added MundaneFrameworkTests.cs for the really mundane tests like testing properties,constructors, etc in OpenSim.Framework.
* Fixed LeftAxis and UpAxis unpacking from OSD to AgentPosition (copy and paste error caught while writing mundane test) (Good thing nobody uses the camera frustum from remote regions yet)
viewer-2-initial-appearance
Teravus Ovares (Dan Olivares) 2010-09-17 18:41:12 -04:00
parent 69749b81f9
commit 94f35890e7
3 changed files with 173 additions and 22 deletions

View File

@ -150,10 +150,10 @@ namespace OpenSim.Framework
Vector3.TryParse(args["at_axis"].AsString(), out AtAxis); Vector3.TryParse(args["at_axis"].AsString(), out AtAxis);
if (args["left_axis"] != null) if (args["left_axis"] != null)
Vector3.TryParse(args["left_axis"].AsString(), out AtAxis); Vector3.TryParse(args["left_axis"].AsString(), out LeftAxis);
if (args["up_axis"] != null) if (args["up_axis"] != null)
Vector3.TryParse(args["up_axis"].AsString(), out AtAxis); Vector3.TryParse(args["up_axis"].AsString(), out UpAxis);
if (args["changed_grid"] != null) if (args["changed_grid"] != null)
ChangedGrid = args["changed_grid"].AsBoolean(); ChangedGrid = args["changed_grid"].AsBoolean();

View File

@ -40,6 +40,7 @@ namespace OpenSim.Framework.Tests
public void Build() public void Build()
{ {
cache = new Cache(); cache = new Cache();
cache = new Cache(CacheMedium.Memory,CacheStrategy.Aggressive,CacheFlags.AllowUpdate);
cacheItemUUID = UUID.Random(); cacheItemUUID = UUID.Random();
MemoryCacheItem cachedItem = new MemoryCacheItem(cacheItemUUID.ToString(),DateTime.Now + TimeSpan.FromDays(1)); MemoryCacheItem cachedItem = new MemoryCacheItem(cacheItemUUID.ToString(),DateTime.Now + TimeSpan.FromDays(1));
byte[] foo = new byte[1]; byte[] foo = new byte[1];
@ -68,23 +69,7 @@ namespace OpenSim.Framework.Tests
Assert.That(citem == null, "Item should not be in Cache"); Assert.That(citem == null, "Item should not be in Cache");
} }
//NOTE: Test Case disabled until Cache is fixed
[Test]
public void TestTTLExpiredEntry()
{
UUID ImmediateExpiryUUID = UUID.Random();
MemoryCacheItem cachedItem = new MemoryCacheItem(ImmediateExpiryUUID.ToString(), TimeSpan.FromDays(-1));
byte[] foo = new byte[1];
foo[0] = 1;
cachedItem.Store(foo);
cache.Store(cacheItemUUID.ToString(), cachedItem);
cache.Get(cacheItemUUID.ToString());
//object citem = cache.Get(cacheItemUUID.ToString());
//Assert.That(citem == null, "Item should not be in Cache because the expiry time was before now");
}
//NOTE: Test Case disabled until Cache is fixed
[Test] [Test]
public void ExpireItemManually() public void ExpireItemManually()
{ {
@ -94,10 +79,45 @@ namespace OpenSim.Framework.Tests
foo[0] = 1; foo[0] = 1;
cachedItem.Store(foo); cachedItem.Store(foo);
cache.Store(cacheItemUUID.ToString(), cachedItem); cache.Store(cacheItemUUID.ToString(), cachedItem);
cache.Invalidate(ImmediateExpiryUUID.ToString()); cache.Invalidate(cacheItemUUID.ToString());
cache.Get(cacheItemUUID.ToString()); cache.Get(cacheItemUUID.ToString());
//object citem = cache.Get(cacheItemUUID.ToString()); object citem = cache.Get(cacheItemUUID.ToString());
//Assert.That(citem == null, "Item should not be in Cache because we manually invalidated it"); Assert.That(citem == null, "Item should not be in Cache because we manually invalidated it");
}
[Test]
public void ClearCacheTest()
{
UUID ImmediateExpiryUUID = UUID.Random();
MemoryCacheItem cachedItem = new MemoryCacheItem(ImmediateExpiryUUID.ToString(), DateTime.Now - TimeSpan.FromDays(1));
byte[] foo = new byte[1];
foo[0] = 1;
cachedItem.Store(foo);
cache.Store(cacheItemUUID.ToString(), cachedItem);
cache.Clear();
object citem = cache.Get(cacheItemUUID.ToString());
Assert.That(citem == null, "Item should not be in Cache because we manually invalidated it");
}
[Test]
public void CacheItemMundane()
{
UUID Random1 = UUID.Random();
UUID Random2 = UUID.Random();
byte[] data = new byte[0];
CacheItemBase cb1 = new CacheItemBase(Random1.ToString(), DateTime.Now + TimeSpan.FromDays(1));
CacheItemBase cb2 = new CacheItemBase(Random2.ToString(), DateTime.Now + TimeSpan.FromDays(1));
CacheItemBase cb3 = new CacheItemBase(Random1.ToString(), DateTime.Now + TimeSpan.FromDays(1));
cb1.Store(data);
Assert.That(cb1.Equals(cb3), "cb1 should equal cb3, their uuids are the same");
Assert.That(!cb2.Equals(cb1), "cb2 should not equal cb1, their uuids are NOT the same");
Assert.That(cb1.IsLocked() == false, "CacheItemBase default is false");
Assert.That(cb1.Retrieve() == null, "Virtual Retrieve method should return null");
} }
} }

View File

@ -0,0 +1,131 @@
/*
* 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 NUnit.Framework;
using OpenSim.Framework;
using OpenMetaverse;
using OpenMetaverse.StructuredData;
namespace OpenSim.Framework.Tests
{
[TestFixture]
public class MundaneFrameworkTests
{
[Test]
public void ChildAgentDataUpdate01()
{
// code coverage
ChildAgentDataUpdate cadu = new ChildAgentDataUpdate();
Assert.IsFalse(cadu.alwaysrun, "Default is false");
}
[Test]
public void AgentPositionTest01()
{
UUID AgentId1 = UUID.Random();
UUID SessionId1 = UUID.Random();
uint CircuitCode1 = uint.MinValue;
Vector3 Size1 = Vector3.UnitZ;
Vector3 Position1 = Vector3.UnitX;
Vector3 LeftAxis1 = Vector3.UnitY;
Vector3 UpAxis1 = Vector3.UnitZ;
Vector3 AtAxis1 = Vector3.UnitX;
ulong RegionHandle1 = ulong.MinValue;
byte[] Throttles1 = new byte[] {0, 1, 0};
Vector3 Velocity1 = Vector3.Zero;
float Far1 = 256;
bool ChangedGrid1 = false;
Vector3 Center1 = Vector3.Zero;
AgentPosition position1 = new AgentPosition();
position1.AgentID = AgentId1;
position1.SessionID = SessionId1;
position1.CircuitCode = CircuitCode1;
position1.Size = Size1;
position1.Position = Position1;
position1.LeftAxis = LeftAxis1;
position1.UpAxis = UpAxis1;
position1.AtAxis = AtAxis1;
position1.RegionHandle = RegionHandle1;
position1.Throttles = Throttles1;
position1.Velocity = Velocity1;
position1.Far = Far1;
position1.ChangedGrid = ChangedGrid1;
position1.Center = Center1;
ChildAgentDataUpdate cadu = new ChildAgentDataUpdate();
cadu.AgentID = AgentId1.Guid;
cadu.ActiveGroupID = UUID.Zero.Guid;
cadu.throttles = Throttles1;
cadu.drawdistance = Far1;
cadu.Position = Position1;
cadu.Velocity = Velocity1;
cadu.regionHandle = RegionHandle1;
cadu.cameraPosition = Center1;
cadu.AVHeight = Size1.Z;
AgentPosition position2 = new AgentPosition();
position2.CopyFrom(cadu);
Assert.IsTrue(
position2.AgentID == position1.AgentID
&& position2.Size == position1.Size
&& position2.Position == position1.Position
&& position2.Velocity == position1.Velocity
&& position2.Center == position1.Center
&& position2.RegionHandle == position1.RegionHandle
&& position2.Far == position1.Far
,"Copy From ChildAgentDataUpdate failed");
position2 = new AgentPosition();
Assert.IsFalse(position2.AgentID == position1.AgentID, "Test Error, position2 should be a blank uninitialized AgentPosition");
position2.Unpack(position1.Pack());
Assert.IsTrue(position2.AgentID == position1.AgentID, "Agent ID didn't unpack the same way it packed");
Assert.IsTrue(position2.Position == position1.Position, "Position didn't unpack the same way it packed");
Assert.IsTrue(position2.Velocity == position1.Velocity, "Velocity didn't unpack the same way it packed");
Assert.IsTrue(position2.SessionID == position1.SessionID, "SessionID didn't unpack the same way it packed");
Assert.IsTrue(position2.CircuitCode == position1.CircuitCode, "CircuitCode didn't unpack the same way it packed");
Assert.IsTrue(position2.LeftAxis == position1.LeftAxis, "LeftAxis didn't unpack the same way it packed");
Assert.IsTrue(position2.UpAxis == position1.UpAxis, "UpAxis didn't unpack the same way it packed");
Assert.IsTrue(position2.AtAxis == position1.AtAxis, "AtAxis didn't unpack the same way it packed");
Assert.IsTrue(position2.RegionHandle == position1.RegionHandle, "RegionHandle didn't unpack the same way it packed");
Assert.IsTrue(position2.ChangedGrid == position1.ChangedGrid, "ChangedGrid didn't unpack the same way it packed");
Assert.IsTrue(position2.Center == position1.Center, "Center didn't unpack the same way it packed");
Assert.IsTrue(position2.Size == position1.Size, "Size didn't unpack the same way it packed");
}
}
}