Esempio n. 1
0
        public void New_TestSource()
        {
            Guid source = Guid.NewGuid();

            Guid g1 = GuidSequential.New(source);

            System.Threading.Thread.Sleep(10);
            Guid g2 = GuidSequential.New(source);

            Assert.AreEqual(15, countSameBytes(g1, g2));

            g1 = GuidSequential.New(source, forMsSql: false);
            System.Threading.Thread.Sleep(10);
            g2 = GuidSequential.New(source, forMsSql: false);
            Assert.AreEqual(15, countSameBytes(g1, g2));

            DateTime now  = DateTime.UtcNow;
            DateTime next = now.AddYears(150).AddMonths(5).AddDays(1).AddMinutes(124).AddSeconds(15);

            g1 = GuidSequential.New(source, now);
            g2 = GuidSequential.New(source, next);
            // Due to issues around the time of day, result may either be
            // 10 or 11 (due to leading zeros in the milliseconds)
            int[] testArr = new int[] { 10, 11 };
            Assert.IsTrue(testArr.Contains(countSameBytes(g1, g2)));
        }
        public void New_TestSeed_NotEqual()
        {
            // Arrange
            Guid g1 = GuidSequential.New(10);
            Guid g2 = GuidSequential.New(101);

            // Assert
            Assert.AreNotEqual(g1, g2);
        }
        public void New_TestSeed_NotEqual_noCTimeProvided()
        {
            // Arrange
            Guid g1 = GuidSequential.New(10);

            System.Threading.Thread.Sleep(10);
            Guid g2 = GuidSequential.New(10);

            Assert.AreNotEqual(g1, g2);
        }
        public void New_TestSeed_Equal_CTimeProvided()
        {
            int      seed  = 10202;
            DateTime cTime = DateTime.UtcNow;

            Guid g1 = GuidSequential.New(seed, cTime);
            Guid g2 = GuidSequential.New(seed, cTime);

            Assert.AreEqual(g1, g2);
        }
Esempio n. 5
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="isNew">Is a new entity being created?</param>
 protected Entity(bool isNew = false)
 {
     InstantiateCollections();
     if (isNew)
     {
         Uid = GuidSequential.New();
         if (typeof(ISoftDeleted).IsAssignableFrom(GetType()))
         {
             (this as ISoftDeleted).IsDeleted = false;
         }
     }
 }
        public void GetCreateTime_Test_CTimeProvided_NotMS()
        {
            DateTime now = new DateTime(2010, 1, 2);
            Guid     g1  = GuidSequential.New(cTime: now, forMsSql: false);

            // Act
            DateTime?cTime = g1.GetCreateTime(false);

            // Assert
            Assert.IsTrue(cTime.HasValue);
            Assert.AreEqual(now.Date, cTime.Value.Date);
            Assert.AreEqual(now.Hour, cTime.Value.Hour);
            Assert.AreEqual(now.Minute, cTime.Value.Minute);
            Assert.AreEqual(now.Second, cTime.Value.Second);
        }
Esempio n. 7
0
        public void NewTest1()
        {
            // Arrange
            Guid g1 = GuidSequential.New();
            Guid g2 = GuidSequential.New();

            byte[] b1 = new byte[6];
            byte[] b2 = new byte[6];
            Array.Copy(g1.ToByteArray(), 10, b1, 0, 6);
            Array.Copy(g2.ToByteArray(), 10, b2, 0, 6);
            string s1 = _bytesToString(b1);
            string s2 = _bytesToString(b2);

            // Assert
            Assert.AreEqual(s1, s2);
        }
        public void GetCreateTime_Test_CTimeProvided()
        {
            DateTime now = new DateTime(2010, 1, 2, 12, 30, 9, 10);
            Guid     g1  = GuidSequential.New(cTime: now);

            // Act
            DateTime?cTime = g1.GetCreateTime();

            // Assert
            Assert.IsTrue(cTime.HasValue);
            Assert.AreEqual(now.Date, cTime.Value.Date);
            Assert.AreEqual(now.Hour, cTime.Value.Hour);
            Assert.AreEqual(now.Minute, cTime.Value.Minute);
            Assert.AreEqual(now.Second, cTime.Value.Second);
            // We skip testing Milliseconds due to rounding errors from
            // the division by 3.33333
        }
Esempio n. 9
0
        public void NewTest2()
        {
            // Arrange & act
            Guid g1 = GuidSequential.New();

            System.Threading.Thread.Sleep(1000);
            Guid g2 = Guid.NewGuid();

            byte[] b1 = new byte[6];
            byte[] b2 = new byte[6];
            Array.Copy(g1.ToByteArray(), 10, b1, 0, 6);
            Array.Copy(g2.ToByteArray(), 10, b2, 0, 6);
            string s1 = _bytesToString(b1);
            string s2 = _bytesToString(b2);

            // Assert
            Assert.AreNotEqual(s1, s2);
        }
Esempio n. 10
0
        public void GetCreateTimeTest()
        {
            // Arrange
            DateTime ctime = DateTime.UtcNow;
            Guid     g1    = GuidSequential.New(ctime);

            //Act
            DateTime?c1 = g1.GetCreateTime();
            DateTime c2 = g1.GetCreateTime().Value;

            //Assert
            Assert.IsTrue(c1.HasValue);

            Assert.AreEqual(ctime.Date, c2.Date);
            Assert.AreEqual(ctime.Hour, c2.Hour);
            Assert.AreEqual(ctime.Minute, c2.Minute);
            Assert.AreEqual(ctime.Second, c2.Second);
        }
        public void GetCreateTime_Test_CTime_Defaults()
        {
            //Arrange
            DateTime now = DateTime.UtcNow;
            Guid     g1  = GuidSequential.New();

            // Act
            DateTime?cTime = g1.GetCreateTime();

            // Assert
            Assert.IsTrue(cTime.HasValue);
            Assert.AreEqual(now.Date, cTime.Value.Date);
            Assert.AreEqual(now.Hour, cTime.Value.Hour);
            Assert.AreEqual(now.Minute, cTime.Value.Minute);
            Assert.AreEqual(now.Second, cTime.Value.Second);
            // We skip testing Milliseconds due to rounding errors from
            // the division by 3.33333
        }
Esempio n. 12
0
        public void NewTest()
        {
            // Arrange
            Random r    = new Random();
            int    seed = r.Next();

            //Act
            Guid g1 = GuidSequential.New(seed);
            Guid g2 = GuidSequential.New(seed);

            byte[] b1 = new byte[8];
            byte[] b2 = new byte[8];
            Array.Copy(g1.ToByteArray(), 8, b1, 0, 8);
            Array.Copy(g2.ToByteArray(), 8, b2, 0, 8);
            string s1 = _bytesToString(b1);
            string s2 = _bytesToString(b2);

            // Assert
            Assert.AreEqual(s1, s2);
        }
        public void New_TestSource()
        {
            Guid source = Guid.NewGuid();

            Guid g1 = GuidSequential.New(source);

            System.Threading.Thread.Sleep(10);
            Guid g2 = GuidSequential.New(source);

            Assert.AreEqual(15, countSameBytes(g1, g2));

            g1 = GuidSequential.New(source, forMsSql: false);
            System.Threading.Thread.Sleep(10);
            g2 = GuidSequential.New(source, forMsSql: false);
            Assert.AreEqual(15, countSameBytes(g1, g2));

            DateTime now  = DateTime.UtcNow;
            DateTime next = now.AddYears(150).AddMonths(5).AddDays(1).AddMinutes(124).AddSeconds(15);

            g1 = GuidSequential.New(source, now);
            g2 = GuidSequential.New(source, next);
            Assert.AreEqual(11, countSameBytes(g1, g2));
        }