예제 #1
0
        public void PuKeyValueRegionShouldAddToCache()
        {
            var expectedValue = "Updated " + TestContext.TestName;
            var key = "Key" + TestContext.TestName;
            var region = "Region" + TestContext.TestName;

            var dcf = new DataCacheFactory();
            var dc = dcf.GetDefaultCache();

            // Clean up previous entries
            dc.CreateRegion(region);
            dc.Remove(key, region);

            var sut = new DataCachePut<string> {Key = key, Value = expectedValue, Region = region};

            // Put an item in the cache using the activity
            var itemVersion = WorkflowInvoker.Invoke(sut);

            // Get it from the cache
            var value = dc.Get(key, region) as string;

            // Assert
            Assert.IsNotNull(itemVersion);
            Assert.AreEqual(expectedValue, value);
        }
예제 #2
0
        public void PutKeyValueRegionTagsShouldAddToCache()
        {
            const int expectedCount = 1;
            var expectedValue = TestContext.TestName;
            var key = "Key" + TestContext.TestName;
            var region = "Region" + TestContext.TestName;
            var tags = new List<DataCacheTag>
                           {
                               new DataCacheTag("tag1" + TestContext.TestName),
                               new DataCacheTag("tag2" + TestContext.TestName),
                               new DataCacheTag("tag3" + TestContext.TestName)
                           };
            var dcf = new DataCacheFactory();
            var dc = dcf.GetDefaultCache();

            // Clean up previous entries
            dc.CreateRegion(region);
            dc.Remove(key, region);

            var sut = new DataCachePut<string>();
            // To use Object Initialization syntax you would do the following
            // { Key = key, Value = expectedValue, Region = region, Tags = new LambdaValue<IEnumerable<DataCacheTag>>((env) =>tags)};

            // Using input arguments
            var input = new Dictionary<string, object>
                            {
                                {"Key", key},
                                {"Value", expectedValue},
                                {"Region", region},
                                {"Tags", tags},
                            };

            // Put an item in the cache using the activity
            var itemVersion = WorkflowInvoker.Invoke(sut, input);

            // Get it from the cache
            var values = dc.GetObjectsByAllTags(tags, region);

            // Assert
            Assert.IsNotNull(itemVersion);
            Assert.AreEqual(expectedCount, values.Count());
            Assert.AreEqual(expectedValue, values.First().Value);
        }
예제 #3
0
        public void PutKeyValueRegionTagsTimeoutShouldUpdateCache()
        {
            const int expectedCount = 1;
            var expectedOldValue = TestContext.TestName;
            var expectedNewValue = "Updated " + TestContext.TestName;
            var expectedOldTimeout = TimeSpan.FromMinutes(20);
            var expectedNewTimeout = TimeSpan.FromMinutes(30);

            var key = "Key" + TestContext.TestName;
            var region = "Region" + TestContext.TestName;
            var tags = new List<DataCacheTag>
                           {
                               new DataCacheTag("tag1" + TestContext.TestName),
                               new DataCacheTag("tag2" + TestContext.TestName),
                               new DataCacheTag("tag3" + TestContext.TestName)
                           };
            var dcf = new DataCacheFactory();
            var dc = dcf.GetDefaultCache();

            // Clean up previous entries
            dc.CreateRegion(region);
            dc.Remove(key, region);

            dc.Add(key, expectedOldValue, expectedOldTimeout, region);

            var sut = new DataCachePut<string>();
            // To use Object Initialization syntax you would do the following
            // { Key = key, Value = expectedValue, Region = region, Tags = new LambdaValue<IEnumerable<DataCacheTag>>((env) =>tags)};

            // Using input arguments
            var input = new Dictionary<string, object>
                            {
                                {"Key", key},
                                {"Value", expectedNewValue},
                                {"Region", region},
                                {"Tags", tags},
                                {"Timeout", expectedNewTimeout}
                            };

            // Put an item in the cache using the activity
            var itemVersion = WorkflowInvoker.Invoke(sut, input);

            // Get it from the cache
            var values = dc.GetObjectsByAllTags(tags, region);
            var item = dc.GetCacheItem(key, region);

            // Assert
            Assert.IsNotNull(itemVersion);
            Assert.AreEqual(expectedCount, values.Count());
            Assert.AreEqual(expectedNewValue, item.Value);

            // The timeout counts down so it should be greater than the old timeout
            Assert.IsTrue(item.Timeout > expectedOldTimeout);
        }
예제 #4
0
        public void PuKeyValueShouldUpdateCache()
        {
            var expectedOldValue = TestContext.TestName;
            var expectedNewValue = "Updated " + TestContext.TestName;
            var key = "Key" + TestContext.TestName;
            var dcf = new DataCacheFactory();
            var dc = dcf.GetDefaultCache();

            dc.Remove(key);
            dc.Add(key, expectedOldValue);

            var sut = new DataCachePut<string> {Key = key, Value = expectedNewValue};

            // Put an item in the cache using the activity
            var itemVersion = WorkflowInvoker.Invoke(sut);

            // Get it from the cache
            var value = dc.Get(key) as string;

            // Assert
            Assert.IsNotNull(itemVersion);
            Assert.AreEqual(expectedNewValue, value);
        }