示例#1
0
        public void Verify_NodeId_From_Generated_Matches()
        {
            var timestamp            = DateTime.UtcNow.Ticks;
            var idGenerationStrategy = new FlakeIDGenerationStrategy(100, () => timestamp);
            var idGenerator          = new IDGenerator <long>(100, idGenerationStrategy);
            var id = idGenerator.GenerateId();

            Assert.IsTrue(idGenerationStrategy.GetNodeFromId(id).Equals(100));
        }
示例#2
0
        public void Verify_GenerateIds_Increase_In_Sequence_When_TimeStamp_Same()
        {
            var timestamp            = DateTime.UtcNow.Ticks;
            var idGenerationStrategy = new FlakeIDGenerationStrategy(100, () => timestamp);
            var idGenerator          = new IDGenerator <long>(100, idGenerationStrategy);
            var id1 = idGenerator.GenerateId();
            var id2 = idGenerator.GenerateId();

            Assert.IsTrue(id2 > id1);
        }
示例#3
0
        public void Verify_GenerateId_Throws_Exception_When_Clock_Moves_Back()
        {
            var timestamp            = DateTime.UtcNow.Ticks;
            var idGenerationStrategy = new FlakeIDGenerationStrategy(100, () => timestamp);
            var idGenerator          = new IDGenerator <long>(100, idGenerationStrategy);

            idGenerator.GenerateId();
            timestamp = new DateTime(timestamp).AddMilliseconds(-1).Ticks;
            idGenerator.GenerateId();
            Assert.IsTrue(true);
        }
示例#4
0
        public void Verify_GenerateIds_Increase_In_Sequence()
        {
            var timestamp            = DateTime.UtcNow.Ticks;
            var idGenerationStrategy = new FlakeIDGenerationStrategy(100, () => timestamp);
            var idGenerator          = new IDGenerator <long>(100, idGenerationStrategy);
            var id1 = idGenerator.GenerateId();

            timestamp = new DateTime(timestamp).AddMilliseconds(1).Ticks;
            var id2 = idGenerator.GenerateId();

            Assert.IsTrue(id2 > id1);
        }
示例#5
0
        public void Verify_Sequence_From_Generated_Matches()
        {
            var timestamp            = DateTime.UtcNow.Ticks;
            var idGenerationStrategy = new FlakeIDGenerationStrategy(100, () => timestamp);
            var idGenerator          = new IDGenerator <long>(100, idGenerationStrategy);
            var id = idGenerator.GenerateId();

            Assert.IsTrue(idGenerationStrategy.GetSequenceFromId(id).Equals(1));

            for (int i = 0; i < 9; i++)
            {
                id = idGenerator.GenerateId();
            }
            Assert.IsTrue(idGenerationStrategy.GetSequenceFromId(id).Equals(10));
        }