public void CanRemoveItemFromCacheWithDelegate() { var myObject1 = new TestCacheObject("test-1"); var myObject2 = new TestCacheObject("bob"); var myObject3 = new TestCacheObject("frank"); CacheProvider.AddOrChangeValue(CacheKey.Create <string>("my-1"), myObject1); CacheProvider.AddOrChangeValue(CacheKey.Create <StrongClassKey>(x => x.MyName = "bob"), myObject2); CacheProvider.AddOrChangeValue(CacheKey.Create <StrongClassKey>(x => x.MyName = "frank"), myObject3); var resultFilterClause = new ResultFilterClause(typeof(string), ResultFilterType.Any, 0); var fromClause = new FromClause(HiveId.Empty.ToString(), HierarchyScope.AncestorsOrSelf, FixedStatusTypes.Published); var fieldPredicateExpression = new FieldPredicateExpression("title", ValuePredicateType.Equal, "blah"); //var key = new HiveQueryCacheKey(new QueryDescription(resultFilterClause, fromClause, fieldPredicateExpression, Enumerable.Empty<SortClause>())); var key = CacheKey.Create(new HiveQueryCacheKey(new QueryDescription(resultFilterClause, fromClause, fieldPredicateExpression, Enumerable.Empty <SortClause>()))); CacheProvider.AddOrChangeValue(key, myObject3); Assert.NotNull(CacheProvider.GetValue(CacheKey.Create <string>("my-1"))); Assert.NotNull(CacheProvider.GetValue(CacheKey.Create <StrongClassKey>(x => x.MyName = "bob"))); Assert.NotNull(CacheProvider.GetValue(CacheKey.Create <string>("my-1"))); Assert.NotNull(CacheProvider.GetValue(key)); CacheProvider.RemoveWhereKeyMatches <string>(x => x == "my-1"); CacheProvider.RemoveWhereKeyMatches <StrongClassKey>(x => x.MyName == "bob"); CacheProvider.RemoveWhereKeyMatches <HiveQueryCacheKey>(x => x.From.HierarchyScope == HierarchyScope.AncestorsOrSelf); Assert.Null(CacheProvider.Get(CacheKey.Create <string>("my-1"))); Assert.Null(CacheProvider.GetValue(CacheKey.Create <string>("my-1"))); Assert.Null(CacheProvider.Get(CacheKey.Create <StrongClassKey>(x => x.MyName = "bob"))); Assert.NotNull(CacheProvider.Get(CacheKey.Create <StrongClassKey>(x => x.MyName = "frank"))); }
public bool Equals(TestCacheObject _obj) { if (_obj == null) return false; return _obj.Id == this.Id; }
public void CanRemoveItemFromCacheWithDelegate() { var myObject1 = new TestCacheObject("test-1"); var myObject2 = new TestCacheObject("bob"); var myObject3 = new TestCacheObject("frank"); CacheProvider.AddOrChangeValue(CacheKey.Create <string>("my-1"), myObject1); CacheProvider.AddOrChangeValue(CacheKey.Create <StrongClassKey>(x => x.MyName = "bob"), myObject2); CacheProvider.AddOrChangeValue(CacheKey.Create <StrongClassKey>(x => x.MyName = "frank"), myObject3); if (CacheIsAsync) { Thread.Sleep(500); } var resultFilterClause = new ResultFilterClause(typeof(string), ResultFilterType.Any, 0); var scopeStartId = new HiveId(Guid.NewGuid()); var fromClause = new FromClause(scopeStartId.AsEnumerableOfOne(), HierarchyScope.AncestorsOrSelf, FixedStatusTypes.Published); var fieldPredicateExpression = new FieldPredicateExpression("title", ValuePredicateType.Equal, "blah"); //var key = new HiveQueryCacheKey(new QueryDescription(resultFilterClause, fromClause, fieldPredicateExpression, Enumerable.Empty<SortClause>())); var key = CacheKey.Create(new HiveQueryCacheKey(new QueryDescription(resultFilterClause, fromClause, fieldPredicateExpression, Enumerable.Empty <SortClause>()))); CacheProvider.AddOrChangeValue(key, myObject3); if (CacheIsAsync) { Thread.Sleep(500); } Assert.NotNull(CacheProvider.GetValue <TestCacheObject>(CacheKey.Create <string>("my-1"))); Assert.NotNull(CacheProvider.GetValue <TestCacheObject>(CacheKey.Create <StrongClassKey>(x => x.MyName = "bob"))); Assert.NotNull(CacheProvider.GetValue <TestCacheObject>(CacheKey.Create <string>("my-1"))); Assert.NotNull(CacheProvider.GetValue <TestCacheObject>(key)); CacheProvider.RemoveWhereKeyMatches <string>(x => x == "my-1"); CacheProvider.RemoveWhereKeyMatches <StrongClassKey>(x => x.MyName == "bob"); CacheProvider.RemoveWhereKeyMatches <HiveQueryCacheKey>(x => x.From.HierarchyScope == HierarchyScope.AncestorsOrSelf); // No check for async as removals should be instant Assert.Null(CacheProvider.Get <TestCacheObject>(CacheKey.Create <string>("my-1"))); Assert.Null(CacheProvider.GetValue <TestCacheObject>(CacheKey.Create <string>("my-1"))); Assert.Null(CacheProvider.Get <TestCacheObject>(CacheKey.Create <StrongClassKey>(x => x.MyName = "bob"))); Assert.NotNull(CacheProvider.Get <TestCacheObject>(CacheKey.Create <StrongClassKey>(x => x.MyName = "frank"))); }
public void CanAddItemToCacheWithComplexKey() { var myObject1 = new TestCacheObject("test-1"); var myObject2 = new TestCacheObject("test-2"); var myObject3 = new TestCacheObject("test-3"); Assert.IsNull(CacheProvider.GetValue <TestCacheObject>(CacheKey.Create <string>("ah"))); Assert.IsNull(CacheProvider.GetValue <TestCacheObject>(CacheKey.Create <string>("ah"))); CacheProvider.AddOrChangeValue(CacheKey.Create("my-1"), myObject1); if (CacheIsAsync) { Thread.Sleep(500); } var retrieve1typed = CacheProvider.GetValue <TestCacheObject>(CacheKey.Create <string>("my-1")); Assert.NotNull(retrieve1typed); var retrieve1 = CacheProvider.Get <TestCacheObject>(CacheKey.Create("my-1")); Assert.That(retrieve1.Item, Is.EqualTo(myObject1)); CacheProvider.AddOrChangeValue(CacheKey.Create("my-2"), myObject2); CacheProvider.AddOrChangeValue(CacheKey.Create <StrongClassKey>(x => x.MyName = "bob"), myObject3); if (CacheIsAsync) { Thread.Sleep(500); } var retrieve2 = CacheProvider.GetValue <TestCacheObject>(CacheKey.Create("my-2")); var retrieve3 = CacheProvider.GetValue <TestCacheObject>(CacheKey.Create <StrongClassKey>(x => x.MyName = "bob")); Assert.That(retrieve1typed.Text, Is.EqualTo(myObject1.Text)); Assert.That(retrieve2, Is.EqualTo(myObject2)); Assert.That(retrieve3, Is.EqualTo(myObject3)); }
public void UpdateWhenAbsoluteExpirationTest() { var _cache = new SpatialCache<Coordinate, object, TestCacheObject>(); var _key = new Coordinate { X = 3.44, Y = 3.44 }; var _object = new TestCacheObject(); var _spatialItem = new SpatialCacheItem<Coordinate, object, TestCacheObject> { SpatialKey = _key, ObjectKeyValue = _object, SpatialValue = new object() }; var _addOrGetExisting = _cache.AddOrGetExisting(_key, _spatialItem); Assert.AreEqual(_spatialItem, _addOrGetExisting); var _key2 = new Coordinate { X = 3.445, Y = 3.445 }; var _changedSpatialItem = new SpatialCacheItem<Coordinate, object, TestCacheObject> { SpatialKey = _key2, ObjectKeyValue = _object, SpatialValue = new object() }; var _value = _cache.Update(_spatialItem.ObjectKeyValue, _changedSpatialItem, DateTimeOffset.UtcNow.AddMilliseconds(20)); Assert.AreNotEqual(_addOrGetExisting, _value); Assert.AreEqual(_changedSpatialItem, _value); Thread.Sleep(100); Assert.IsNull(_cache.Get(_key)); Assert.IsNull(_cache.Get(_key2)); }
public void GetWhenEqualsOverrideTest() { var _cache = new CollectionCache<TestCacheObject, object>(); var _key = new TestCacheObject { Id = "A" }; var _value = new object(); var _addOrGetExisting = _cache.AddOrGetExisting(_key, _value); Assert.AreEqual(_value, _addOrGetExisting); var _lookupKey = new TestCacheObject { Id = "A" }; var _actual = _cache.Get(_lookupKey); Assert.AreEqual(_value, _actual.FirstOrDefault()); }