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); }
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); }
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); }
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); }