示例#1
0
        public void GenerateByTimestampAndClockSequence_InvalidClockSequence()
        {
            var guidGen = new TimeGuidGenerator(PreciseTimestampGenerator.Instance);

            Assert.Throws <InvalidOperationException>(() => guidGen.NewGuid(Timestamp.Now, ushort.MaxValue));
            Assert.Throws <InvalidOperationException>(() => guidGen.NewGuid(Timestamp.Now, TimeGuidBitsLayout.MaxClockSequence + 1));
        }
示例#2
0
        public void GenerateByTimestamp()
        {
            var guidGen = new TimeGuidGenerator(PreciseTimestampGenerator.Instance);
            var ts      = Timestamp.Now;
            var guid    = guidGen.NewGuid(ts);

            Assert.That(TimeGuidBitsLayout.GetTimestamp(guid), Is.EqualTo(ts));
        }
示例#3
0
        public void GenerateByTimestampAndClockSequence()
        {
            var guidGen       = new TimeGuidGenerator(PreciseTimestampGenerator.Instance);
            var ts            = Timestamp.Now;
            var clockSequence = TimeGuidGenerator.GenerateRandomClockSequence();
            var guid          = guidGen.NewGuid(ts, clockSequence);

            Assert.That(TimeGuidBitsLayout.GetTimestamp(guid), Is.EqualTo(ts));
            Assert.That(TimeGuidBitsLayout.GetClockSequence(guid), Is.EqualTo(clockSequence));
        }
示例#4
0
        public void TimeGuidGenerator_Collisions()
        {
            var guidGen = new TimeGuidGenerator(CreateNewTimestampGenerator());
            var results = new Dictionary <byte[], byte>(10 * 1000 * 1000, ByteArrayComparer.Instance);

            for (var i = 0; i < 10 * 1000 * 1000; i++)
            {
                results.Add(guidGen.NewGuid(), 0);
            }
        }
        public void CompareTo_ByTimestamp()
        {
            var timestamp1    = Timestamp.Now;
            var timestamp2    = timestamp1.AddTicks(1);
            var clockSequence = TimeGuidGenerator.GenerateRandomClockSequence();
            var timeGuid1     = new TimeGuid(timestamp1, clockSequence, new byte[6]);
            var timeGuid2     = new TimeGuid(timestamp2, clockSequence, new byte[6]);

            Assert.That(timeGuid2.CompareTo(timeGuid1), Is.Positive);
            Assert.That(timeGuid1.CompareTo(timeGuid2), Is.Negative);
        }
示例#6
0
 public DateTime GetDateTime() => TimeGuidGenerator.ExtractDateTime(Value);
 private static ushort RandomClockSequence()
 {
     return(TimeGuidGenerator.GenerateRandomClockSequence());
 }
 private static byte[] RandomNode()
 {
     return(TimeGuidGenerator.GenerateRandomNode());
 }
        public void GetNode()
        {
            var node = TimeGuidGenerator.GenerateRandomNode();

            Assert.That(new TimeGuid(Timestamp.Now, TimeGuidGenerator.GenerateRandomClockSequence(), node).GetNode(), Is.EqualTo(node));
        }
        public void GetClockSequence()
        {
            var clockSequence = TimeGuidGenerator.GenerateRandomClockSequence();

            Assert.That(TimeGuid.NewGuid(Timestamp.Now, clockSequence).GetClockSequence(), Is.EqualTo(clockSequence));
        }