Exemplo n.º 1
0
        public void ShouldAllocateForDifferentCollections()
        {
            var allocator = new KeyAllocator(Store, 10);

            AssertNext(allocator, "Todos", 1);
            AssertNext(allocator, "Todos", 2);
            AssertNext(allocator, "Todos", 3);

            AssertNext(allocator, "TodoItems", 1);
            AssertNext(allocator, "TodoItems", 2);
            AssertNext(allocator, "TodoItems", 3);

            AssertNext(allocator, "Todos", 4);
            AssertNext(allocator, "Todos", 5);
        }
Exemplo n.º 2
0
        public void ShouldAllocateKeysInChunks()
        {
            var allocatorA = new KeyAllocator(Store, 10);
            var allocatorB = new KeyAllocator(Store, 10);

            // A gets 1-10
            AssertNext(allocatorA, "Todos", 1);
            AssertNext(allocatorA, "Todos", 2);
            AssertNext(allocatorA, "Todos", 3);
            AssertNext(allocatorA, "Todos", 4);
            AssertNext(allocatorA, "Todos", 5);

            // B gets 11->20
            AssertNext(allocatorB, "Todos", 11);
            AssertNext(allocatorB, "Todos", 12);
            AssertNext(allocatorB, "Todos", 13);

            // A will keep allocating
            AssertNext(allocatorA, "Todos", 6);
            AssertNext(allocatorA, "Todos", 7);
            AssertNext(allocatorA, "Todos", 8);
            AssertNext(allocatorA, "Todos", 9);
            AssertNext(allocatorA, "Todos", 10);

            // ... until it needs a new block
            AssertNext(allocatorA, "Todos", 21);
            AssertNext(allocatorA, "Todos", 22);
            AssertNext(allocatorA, "Todos", 23);

            AssertNext(allocatorB, "Todos", 14);
            AssertNext(allocatorB, "Todos", 15);
            AssertNext(allocatorB, "Todos", 16);
            AssertNext(allocatorB, "Todos", 17);
            AssertNext(allocatorB, "Todos", 18);
            AssertNext(allocatorB, "Todos", 19);
            AssertNext(allocatorB, "Todos", 20);

            // Now B needs a new block
            AssertNext(allocatorB, "Todos", 31);
        }
Exemplo n.º 3
0
 static void AssertNext(KeyAllocator allocator, string collection, int expected)
 {
     allocator.NextId(collection).Should().Be(expected);
 }
Exemplo n.º 4
0
 static void AssertNext(KeyAllocator allocator, string collection, int expected)
 {
     Assert.Equal(expected, allocator.NextId(collection));
 }