Exemple #1
0
        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);
        }
Exemple #3
0
        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);
            }
        }
Exemple #5
0
        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);
                }
            });
        }
Exemple #6
0
        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);
                }
            });
        }