Example #1
0
        public void Capacity_Should_Double()
        {
            using (var store = GetDocumentStore())
            {
                var hiLoKeyGenerator = new AsyncHiLoKeyGenerator("users", store, store.DefaultDatabase,
                                                                 store.Conventions.IdentityPartsSeparator);

                using (var session = store.OpenSession())
                {
                    session.Store(new HiloDoc
                    {
                        Max = 64
                    }, "Raven/Hilo/users");

                    session.SaveChanges();

                    for (var i = 0; i < 32; i++)
                    {
                        hiLoKeyGenerator.GenerateDocumentKeyAsync(new User()).GetAwaiter().GetResult();
                    }
                }

                using (var session = store.OpenSession())
                {
                    var hiloDoc = session.Load <HiloDoc>("Raven/Hilo/Users");
                    var max     = hiloDoc.Max;
                    Assert.Equal(max, 96);

                    //we should be receiving a range of 64 now
                    hiLoKeyGenerator.GenerateDocumentKeyAsync(new User()).GetAwaiter().GetResult();
                }

                using (var session = store.OpenSession())
                {
                    var hiloDoc = session.Load <HiloDoc>("Raven/Hilo/users");
                    var max     = hiloDoc.Max;
                    Assert.Equal(max, 160);
                }
            }
        }
Example #2
0
        public void Can_Use_Server_Prefix()
        {
            using (var store = GetDocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    session.Store(new PrefixHiloDoc()
                    {
                        ServerPrefix = "4,"
                    }, "Raven/ServerPrefixForHilo");

                    session.SaveChanges();

                    var hiLoKeyGenerator = new AsyncHiLoKeyGenerator("users", store, store.DefaultDatabase,
                                                                     store.Conventions.IdentityPartsSeparator);

                    var generateDocumentKey = hiLoKeyGenerator.GenerateDocumentKeyAsync(new User()).GetAwaiter().GetResult();
                    Assert.Equal("users/4,1", generateDocumentKey);
                }
            }
        }