public void RemoveSet_ClearsTheSetData() { UseConnection(database => { var set1Val1 = new LiteSet { Key = "Set1", Value = "value1", ExpireAt = DateTime.Now }; database.StateDataSet.Insert(set1Val1); var set1Val2 = new LiteSet { Key = "Set1", Value = "value2", ExpireAt = DateTime.Now }; database.StateDataSet.Insert(set1Val2); var set2 = new LiteSet { Key = "Set2", Value = "value2", ExpireAt = DateTime.Now }; database.StateDataSet.Insert(set2); Commit(database, x => x.RemoveSet(set1Val1.Key)); var testSet1 = GetTestSet(database, set1Val1.Key); Assert.Equal(0, testSet1.Count); var testSet2 = GetTestSet(database, set2.Key); Assert.Equal(1, testSet2.Count); }); }
/// <summary> /// /// </summary> /// <param name="key"></param> /// <param name="items"></param> /// <exception cref="ArgumentNullException"></exception> public override void AddRangeToSet(string key, IList <string> items) { if (key == null) { throw new ArgumentNullException(nameof(key)); } if (items == null) { throw new ArgumentNullException(nameof(items)); } foreach (var item in items) { QueueCommand(x => { var state = new LiteSet { Key = key, Value = item, ExpireAt = null, Score = 0.0 }; var oldSet = x.StateDataSet.Find(Query.And(Query.EQ("Key", key), Query.EQ("Value", item))).FirstOrDefault(); if (oldSet == null) { x.StateDataSet.Insert(state); } else { state.Id = oldSet.Id; x.StateDataSet.Update(state); } }); } }
public void AddToSet_WithScore_AddsARecordWithScore_WhenBothKeyAndValueAreNotExist() { UseConnection(database => { Commit(database, x => x.AddToSet("my-key", "my-value", 3.2)); LiteSet record = database.StateDataSet.FindAll().ToList().Single(); Assert.Equal("my-key", record.Key); Assert.Equal("my-value", record.Value); Assert.Equal(3.2, record.Score, 3); }); }
public void AddToSet_AddsARecord_IfThereIsNo_SuchKeyAndValue() { UseConnection(database => { Commit(database, x => x.AddToSet("my-key", "my-value")); LiteSet record = database.StateDataSet.FindAll().ToList().Single(); Assert.Equal("my-key", record.Key); Assert.Equal("my-value", record.Value); Assert.Equal(0.0, record.Score, 2); }); }
public void AddRangeToSet_AddToExistingSetData() { UseConnection(database => { var set1Val1 = new LiteSet { Key = "Set1", Value = "value1", ExpireAt = DateTime.Now }; database.StateDataSet.Insert(set1Val1); var set1Val2 = new LiteSet { Key = "Set1", Value = "value2", ExpireAt = DateTime.Now }; database.StateDataSet.Insert(set1Val2); var set2 = new LiteSet { Key = "Set2", Value = "value2", ExpireAt = DateTime.Now }; database.StateDataSet.Insert(set2); var values = new[] { "test1", "test2", "test3" }; Commit(database, x => x.AddRangeToSet(set1Val1.Key, values)); var testSet1 = GetTestSet(database, set1Val1.Key); var valuesToTest = new List <string>(values) { "value1", "value2" }; Assert.NotNull(testSet1); // verify all values are present in testSet1 Assert.True(testSet1.Select(s => s.Value.ToString()).All(value => valuesToTest.Contains(value))); Assert.Equal(5, testSet1.Count); var testSet2 = GetTestSet(database, set2.Key); Assert.NotNull(testSet2); Assert.Equal(1, testSet2.Count); }); }
public void PersistSet_ClearsTheSetExpirationData() { UseConnection(database => { var set1 = new LiteSet { Key = "Set1", Value = "value1", ExpireAt = DateTime.Now }; database.StateDataSet.Insert(set1); var set2 = new LiteSet { Key = "Set2", Value = "value2", ExpireAt = DateTime.Now }; database.StateDataSet.Insert(set2); Commit(database, x => x.PersistSet(set1.Key)); var testSet1 = GetTestSet(database, set1.Key).First(); Assert.Null(testSet1.ExpireAt); var testSet2 = GetTestSet(database, set2.Key).First(); Assert.NotNull(testSet2.ExpireAt); }); }
/// <summary> /// /// </summary> /// <param name="key"></param> /// <param name="value"></param> /// <param name="score"></param> public override void AddToSet(string key, string value, double score) { QueueCommand(x => { var liteSet = new LiteSet { Score = score, Key = key, Value = value, ExpireAt = null }; var oldSet = x.StateDataSet.Find(Query.And(Query.EQ("Key", key), Query.EQ("Value", value))).FirstOrDefault(); if (oldSet == null) { x.StateDataSet.Insert(liteSet); } else { liteSet.Id = oldSet.Id; x.StateDataSet.Update(liteSet); } }); }
/// <summary> /// /// </summary> /// <param name="key"></param> /// <param name="value"></param> /// <param name="score"></param> public override void AddToSet(string key, string value, double score) { QueueCommand(x => { var liteSet = new LiteSet { Score = score, Key = key, Value = value, ExpireAt = null }; var oldSet = x.StateDataSet.Find(_ => _.Key == key && Convert.ToString(_.Value) == value).FirstOrDefault(); if (oldSet == null) { x.StateDataSet.Insert(liteSet); } else { liteSet.Id = oldSet.Id; x.StateDataSet.Update(liteSet); } }); }
public void ExpireSet_SetsSetExpirationData() { UseConnection(database => { var set1 = new LiteSet { Key = "Set1", Value = "value1" }; database.StateDataSet.Insert(set1); var set2 = new LiteSet { Key = "Set2", Value = "value2" }; database.StateDataSet.Insert(set2); Commit(database, x => x.ExpireSet(set1.Key, TimeSpan.FromDays(1))); var testSet1 = GetTestSet(database, set1.Key).FirstOrDefault(); Assert.True(DateTime.UtcNow.AddMinutes(-1) < testSet1.ExpireAt && testSet1.ExpireAt <= DateTime.UtcNow.AddDays(1)); var testSet2 = GetTestSet(database, set2.Key).FirstOrDefault(); Assert.NotNull(testSet2); Assert.Null(testSet2.ExpireAt); }); }