Пример #1
0
        public void ShouldMaintain16BitWorkerId()
        {
            var oxidation = new UInt64Oxidation(WorkerId);
            var key       = oxidation.Oxidize();
            var id        = (ushort)(key >> 16 & 0xffff);

            Assert.AreEqual(WorkerId, id);
        }
Пример #2
0
        public void ShouldMaintain16BitWorkerId()
        {
            var oxidation = new UInt64Oxidation(WorkerId);
            var key = oxidation.Oxidize();
            var id = (ushort) (key >> 16 & 0xffff);

            Assert.AreEqual(WorkerId, id);
        }
Пример #3
0
        public void Should_maintain_16bit_worker_id()
        {
            // 16-bits = 4 hex digits
            ushort worker_id = 0xabcd;

            var oxidation = new UInt64Oxidation(worker_id);
            ulong key = oxidation.Oxidize();
            ushort id = (ushort)(key >> 16 & 0xffff);
            Assert.AreEqual(worker_id, id);
        }
Пример #4
0
        public void Sequential_keys_are_sequential()
        {
            // 32-bits = 8 hex digits
            var oxidation = new UInt64Oxidation(0xabcd);
            decimal key = oxidation.Oxidize();
            decimal key2 = oxidation.Oxidize();
            decimal key3 = oxidation.Oxidize();

            System.Threading.Thread.Sleep(10);
            decimal key4 = oxidation.Oxidize();
            decimal key5 = oxidation.Oxidize();

            Assert.IsTrue(key5 > key4 && key4 > key3 && key3 > key2 && key2 > key);
        }
Пример #5
0
        public void SequentialKeysAreSequential()
        {
            var oxidation = new UInt64Oxidation(WorkerId);

            var key  = oxidation.Oxidize();
            var key2 = oxidation.Oxidize();
            var key3 = oxidation.Oxidize();

            System.Threading.Thread.Sleep(10);
            var key4 = oxidation.Oxidize();
            var key5 = oxidation.Oxidize();

            Assert.IsTrue(key5 > key4 && key4 > key3 && key3 > key2 && key2 > key);
        }
Пример #6
0
        public void SequentialKeysAreSequential()
        {
            var oxidation = new UInt64Oxidation(WorkerId);

            var key = oxidation.Oxidize();
            var key2 = oxidation.Oxidize();
            var key3 = oxidation.Oxidize();

            System.Threading.Thread.Sleep(10);
            var key4 = oxidation.Oxidize();
            var key5 = oxidation.Oxidize();

            Assert.IsTrue(key5 > key4 && key4 > key3 && key3 > key2 && key2 > key);
        }
Пример #7
0
        public void InDefaultOxidationShouldNotMaintain32BitTimestamp()
        {
            var oxidation = new UInt64Oxidation(WorkerId);

            var key1 = oxidation.Oxidize();

            Thread.Sleep(10);
            var key2 = oxidation.Oxidize();

            Thread.Sleep(10);
            var key3 = oxidation.Oxidize();

            Thread.Sleep(10);

            var timestamp1 = (uint)(key1 >> 32);
            var timestamp2 = (uint)(key2 >> 32);
            var timestamp3 = (uint)(key3 >> 32);

            Assert.IsTrue((timestamp1 != timestamp2) && (timestamp2 != timestamp3));
        }
Пример #8
0
        public void InSlowOxidationShouldMaintain32BitTimestamp()
        {
            ushort intervalInMs = 1000; // 1 second
            var    oxidation    = new UInt64Oxidation(WorkerId, intervalInMs);

            var key1 = oxidation.Oxidize();

            Thread.Sleep(10);
            var key2 = oxidation.Oxidize();

            Thread.Sleep(10);
            var key3 = oxidation.Oxidize();

            Thread.Sleep(10);

            var timestamp1 = (uint)(key1 >> 32);
            var timestamp2 = (uint)(key2 >> 32);
            var timestamp3 = (uint)(key3 >> 32);

            Assert.IsTrue((timestamp1 == timestamp2) || (timestamp2 == timestamp3));
        }