public void InsertToList_AddsARecord_WithGivenValues() { UseConnection(repository => { Commit(repository, x => x.InsertToList("my-key", "my-value")); using (var session = repository.OpenSession()) { RavenList record = session.Query <RavenList>().Single(); var id = repository.GetId(typeof(RavenList), "my-key"); Assert.Equal(id, record.Id); Assert.Equal("my-value", record.Values.Single()); } }); }
public override void InsertToList(string key, string value) { var list = _session.Query <RavenList>().FirstOrDefault(t => t.Key == key && t.Value == value); if (list == null) { list = new RavenList { Id = Guid.NewGuid().ToString(), Key = key }; } list.Value = value; _session.Store(list); }
public void PersistList_ClearsTheListExpirationData() { UseConnection(repository => { var list1 = new RavenList { Id = repository.GetId(typeof(RavenList), "List1"), Values = new List <string> { "value1" } }; var list2 = new RavenList { Id = repository.GetId(typeof(RavenList), "List2"), Values = new List <string> { "value2" } }; using (var session = repository.OpenSession()) { session.Store(list1); session.Advanced.AddExpire(list1, DateTime.UtcNow); session.Store(list2); session.Advanced.AddExpire(list2, DateTime.UtcNow); session.SaveChanges(); } Commit(repository, x => x.PersistList("List1")); using (var session = repository.OpenSession()) { var testList1 = GetTestList(session, list1.Id); var expireAt = session.Advanced.GetExpire(testList1); Assert.Null(expireAt); var testList2 = GetTestList(session, list2.Id); expireAt = session.Advanced.GetExpire(testList2); Assert.NotNull(expireAt); } }); }
public override void InsertToList(string key, string value) { using (var repository = new Repository()) { var list = repository.Session.Query <RavenList>().FirstOrDefault(t => t.Key == key && t.Value == value); if (list == null) { list = new RavenList { Id = Guid.NewGuid().ToString(), Key = key }; } list.Value = value; repository.Save(list); } }
public void ExpireList_SetsListExpirationData() { UseConnection(repository => { var list1 = new RavenList { Id = repository.GetId(typeof(RavenList), "List1"), Values = new List <string> { "value1" } }; var list2 = new RavenList { Id = repository.GetId(typeof(RavenList), "List2"), Values = new List <string> { "value2" } }; using (var session = repository.OpenSession()) { session.Store(list1); session.Store(list2); session.SaveChanges(); } Commit(repository, x => x.ExpireList("List1", TimeSpan.FromDays(1))); using (var session = repository.OpenSession()) { var testList1 = GetTestList(session, list1.Id); var expireAt = session.Advanced.GetExpire(testList1); Assert.True(DateTime.UtcNow.AddMinutes(-1) < expireAt && expireAt <= DateTime.UtcNow.AddDays(1)); var testList2 = GetTestList(session, list2.Id); expireAt = session.Advanced.GetExpire(testList2); Assert.Null(expireAt); } }); }
public void InsertToList_AddsAnotherRecord_WhenBothKeyAndValueAreExist() { UseConnection(repository => { Commit(repository, x => { x.InsertToList("my-key", "my-value"); x.InsertToList("my-key", "my-value"); }); using (var session = repository.OpenSession()) { RavenList record = session.Query <RavenList>().Single(); var recordCount = record.Values.Count; Assert.Equal(2, recordCount); } }); }