blob: 8e97232f10406fac739ce794dac3b0f8530cb51b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
using System;
using NUnit.Framework;
using OpenMetaverse;
namespace OpenSim.Framework.Tests
{
[TestFixture]
public class CacheTests
{
private Cache cache;
private UUID cacheItemUUID;
[SetUp]
public void Build()
{
cache = new Cache();
cacheItemUUID = UUID.Random();
MemoryCacheItem cachedItem = new MemoryCacheItem(cacheItemUUID.ToString(),DateTime.Now + TimeSpan.FromDays(1));
byte[] foo = new byte[1];
foo[0] = 255;
cachedItem.Store(foo);
cache.Store(cacheItemUUID.ToString(), cachedItem);
}
[Test]
public void TestRetreive()
{
CacheItemBase citem = (CacheItemBase)cache.Get(cacheItemUUID.ToString());
byte[] data = (byte[]) citem.Retrieve();
Assert.That(data.Length == 1, "Cached Item should have one byte element");
Assert.That(data[0] == 255, "Cached Item element should be 255");
}
[Test]
public void TestNotInCache()
{
UUID randomNotIn = UUID.Random();
while (randomNotIn == cacheItemUUID)
{
randomNotIn = UUID.Random();
}
object citem = cache.Get(randomNotIn.ToString());
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);
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]
public void ExpireItemManually()
{
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.Invalidate(ImmediateExpiryUUID.ToString());
object citem = cache.Get(cacheItemUUID.ToString());
//Assert.That(citem == null, "Item should not be in Cache because we manually invalidated it");
}
}
}
|