Esempio n. 1
0
        public void TestClass_SerializeDeserialize_Test()
        {
            PopReceipt            key   = PopReceipt.NewPopReceipt(0);
            QueueItem <TestClass> qitc1 = new QueueItem <TestClass>(key, 0, tc1, TimeSpan.FromSeconds(30), DateTimeOffset.UtcNow.Add(TimeSpan.FromSeconds(30)), DateTimeOffset.UtcNow.Add(TimeSpan.FromMinutes(20)), DateTimeOffset.UtcNow, 0);
            QueueItem <TestClass> qitc2;

            using (MemoryStream ms = new MemoryStream())
            {
                using (BinaryWriter writer = new BinaryWriter(ms, Encoding.Default, true))
                {
                    QueueItemSerializer <TestClass> serializer = new QueueItemSerializer <TestClass>();
                    serializer.Write(qitc1, writer);
                }

                ms.Seek(0, SeekOrigin.Begin);

                using (BinaryReader reader = new BinaryReader(ms, Encoding.Default, true))
                {
                    QueueItemSerializer <TestClass> serializer = new QueueItemSerializer <TestClass>();
                    qitc2 = serializer.Read(reader);
                }
            }

            Assert.IsNotNull(qitc2);
            Assert.AreEqual(qitc1.Key, qitc2.Key);
            Assert.AreEqual(qitc1.Queue, qitc2.Queue);
            Assert.AreEqual(qitc1.DequeueCount, qitc2.DequeueCount);
            Assert.IsTrue(qitc1.EnqueueTime.Subtract(qitc2.EnqueueTime).TotalSeconds < 1, "EnqueueTime is off by more than 1 second.");
            Assert.IsTrue(qitc1.ExpirationTime.Subtract(qitc2.ExpirationTime).TotalSeconds < 1, "ExpirationTime is off by more than 1 second.");
            Assert.IsTrue(qitc1.LeasedUntil.Subtract(qitc2.LeasedUntil).TotalSeconds < 1, "LeasedUntil is off by more than 1 second.");
            Assert.AreEqual(qitc1.LeaseDuration, qitc2.LeaseDuration);
            Assert.AreEqual(qitc1.Item.d_value, qitc2.Item.d_value);
            Assert.AreEqual(qitc1.Item.i_value, qitc2.Item.i_value);
            Assert.AreEqual(qitc1.Item.s_value, qitc2.Item.s_value);
        }
Esempio n. 2
0
        public void QueueItemEquals_Test()
        {
            PopReceipt     key        = PopReceipt.NewPopReceipt(0);
            DateTimeOffset now        = DateTimeOffset.UtcNow;
            TimeSpan       lease      = TimeSpan.FromMinutes(2);
            DateTimeOffset leaseUntil = now.Add(lease);
            TimeSpan       expiration = TimeSpan.FromMinutes(10);
            DateTimeOffset expiresAt  = now.Add(expiration);

            // Create some items
            QueueItem <TestClass> qi1  = new QueueItem <TestClass>(key, 3, tc1, lease, leaseUntil, expiresAt, now, 2);
            QueueItem <TestClass> qi1a = new QueueItem <TestClass>(key, 3, tc1, lease, leaseUntil, expiresAt, now, 2);
            QueueItem <TestClass> qi2  = new QueueItem <TestClass>(key, 3, tc2, lease, leaseUntil, expiresAt, now, 2);
            object o = qi1a;

            // Test Equals codes paths.
            Assert.IsFalse(qi1.Equals(null));
            Assert.IsFalse(qi1.Equals("Not equal string"));
            Assert.IsTrue(qi1.Equals(o));
            Assert.IsTrue(qi1.Equals(qi1a));
            Assert.IsFalse(qi1.Equals(qi2));

            // Test equals/not equals operators.
            Assert.IsFalse(qi1 == qi2);
            Assert.IsFalse(qi1 != qi1a);
            Assert.IsTrue(qi1 != qi2);
            Assert.IsTrue(qi1 == qi1a);
        }
Esempio n. 3
0
        public void PopReceipt_NewPopReceiptTests()
        {
            const string spr1 = "0000000000000000000000000000000000000000000000000000000000000000";
            const string spr2 = "00000000000000fe000000000000000000000000000000000000000000000000";
            const string spr3 = "7fffffffffffffff000000000000000000000000000000000000000000000000";

            PopReceipt pr = PopReceipt.NewPopReceipt(0);

            Assert.AreEqual(0, pr.Partition);
            Assert.AreNotEqual(spr1, pr.ToString());
            Console.WriteLine(pr);

            pr = PopReceipt.NewPopReceipt(254);
            Assert.AreEqual(254, pr.Partition);
            Assert.AreNotEqual(spr2, pr.ToString());
            Console.WriteLine(pr);

            pr = PopReceipt.NewPopReceipt(long.MaxValue);
            Assert.AreEqual(long.MaxValue, pr.Partition);
            Assert.AreNotEqual(spr3, pr.ToString());
            Console.WriteLine(pr);
        }
Esempio n. 4
0
        public void QueueItemConstructorTest()
        {
            PopReceipt     key        = PopReceipt.NewPopReceipt(0);
            DateTimeOffset now        = DateTimeOffset.UtcNow;
            TimeSpan       lease      = TimeSpan.FromMinutes(2);
            DateTimeOffset leaseUntil = now.Add(lease);
            TimeSpan       expiration = TimeSpan.FromMinutes(10);
            DateTimeOffset expiresAt  = now.Add(expiration);

            // Priority, lease duration, lease date/time, expiration date/time, enqueue date/time, dequeue count and item.
            QueueItem <TestClass> qi3 = new QueueItem <TestClass>(key, 3, tc2, lease, leaseUntil, expiresAt, now, 2);

            Assert.IsNotNull(qi3);
            Assert.AreEqual(key, qi3.Key);
            Assert.AreEqual(3, qi3.Queue);
            Assert.IsTrue(leaseUntil.Subtract(qi3.LeasedUntil).TotalSeconds < 1);
            Assert.AreEqual(lease, qi3.LeaseDuration);
            Assert.IsTrue(DateTimeOffset.UtcNow.Subtract(qi3.EnqueueTime).TotalSeconds < 1);
            Assert.IsTrue(DateTimeOffset.UtcNow.Add(expiration).Subtract(qi3.ExpirationTime).TotalSeconds < 1);
            Assert.AreEqual <int>(2, qi3.DequeueCount);
            Assert.AreEqual(tc2, qi3.Item);
        }
Esempio n. 5
0
        public void QueueItemValidateInterfaces()
        {
            // Create an empty QueueItem and compare it to the default.
            QueueItem <TestClass> qiDefault = default(QueueItem <TestClass>);

            Assert.IsTrue(QueueItem <TestClass> .Default.Equals(qiDefault));

            // Create an initialized item.
            PopReceipt     key        = PopReceipt.NewPopReceipt(0);
            DateTimeOffset now        = DateTimeOffset.UtcNow;
            TimeSpan       lease      = TimeSpan.FromMinutes(2);
            DateTimeOffset leaseUntil = now.Add(lease);
            TimeSpan       expiration = TimeSpan.FromMinutes(10);
            DateTimeOffset expiresAt  = now.Add(expiration);

            // Validate the item can be cast to the supported interfaces.
            QueueItem <TestClass> qi1 = new QueueItem <TestClass>(key, 3, tc2, lease, leaseUntil, expiresAt, now, 2);
            IEquatable <QueueItem <TestClass> > ie = (IEquatable <QueueItem <TestClass> >)qi1;

            Assert.IsNotNull(ie);

            // and use the interfaces.
            Assert.IsFalse(ie.Equals(qiDefault));
        }
Esempio n. 6
0
 public void PopReceipt_NewPopoReceiptException()
 {
     PopReceipt.NewPopReceipt(-1);
 }