コード例 #1
0
        public void TestPutTakeMany()
        {
            using (MSMQStorage s = new MSMQStorage(@".\Private$\SnowplowTrackerTestPutTakeMany"))
            {
                s.Purge();
                Assert.AreEqual(0, s.TotalItems);

                var expected = new List <string>();
                for (var i = 0; i < 100; i++)
                {
                    s.Put("" + i);
                    expected.Insert(0, "" + i);
                }

                Assert.AreEqual(100, s.TotalItems);

                var items = s.TakeLast(100);
                Assert.AreEqual(100, s.TotalItems);
                Assert.AreEqual(100, items.Count);

                var values = (from item in items
                              select item.Item).ToList();

                CollectionAssert.AreEqual(expected, values);

                var ids = from item in items
                          select item.Id;

                s.Delete(ids.ToList());
                Assert.AreEqual(0, s.TotalItems);
            }
        }
コード例 #2
0
        public void TestMultipleTakesReturnSame()
        {
            using (MSMQStorage s = new MSMQStorage(@".\Private$\SnowplowTrackerTestTakeMultipleReturnsSame"))
            {
                s.Purge();
                Assert.AreEqual(0, s.TotalItems);

                var expected = new List <string>();
                for (var i = 0; i < 100; i++)
                {
                    s.Put("" + i);
                    expected.Insert(0, "" + i);
                }

                for (var i = 0; i < 10; i++)
                {
                    var items  = s.TakeLast(100);
                    var values = (from item in items
                                  select item.Item).ToList();
                    CollectionAssert.AreEqual(expected, values);
                }

                Assert.AreEqual(100, s.TotalItems);
            }
        }
コード例 #3
0
        public void TestDeleteRemovesItems()
        {
            using (MSMQStorage s = new MSMQStorage(@".\Private$\SnowplowTrackerTestDeleteRemovesItems"))
            {
                s.Purge();
                Assert.AreEqual(0, s.TotalItems);

                var expected = new List <string>();
                for (var i = 0; i < 100; i++)
                {
                    s.Put("" + i);
                    expected.Insert(0, "" + i);
                }

                var taken          = s.TakeLast(100);
                var expectedLength = s.TotalItems;

                Assert.AreEqual(100, expectedLength);

                foreach (var item in taken)
                {
                    Assert.AreEqual(true, s.Delete(new List <string>()
                    {
                        item.Id
                    }));
                    expectedLength -= 1;
                    Assert.AreEqual(expectedLength, s.TotalItems);
                }

                Assert.AreEqual(0, s.TotalItems);
            }
        }
コード例 #4
0
 public void TestTakeWithNoElementsInQueue()
 {
     using (MSMQStorage s = new MSMQStorage(@".\Private$\SnowplowTrackerTestTakeWithNoElementsInQueue"))
     {
         s.Purge();
         var items = s.TakeLast(1);
         Assert.AreEqual(0, items.Count);
         Assert.AreEqual(0, s.TotalItems);
     }
 }
コード例 #5
0
        public void TestPutTakeOne()
        {
            using (MSMQStorage s = new MSMQStorage(@".\Private$\SnowplowTrackerTestPutTakeOne"))
            {
                s.Purge();
                Assert.AreEqual(0, s.TotalItems);

                s.Put("hello world");
                Assert.AreEqual(1, s.TotalItems);

                var items = s.TakeLast(1);
                Assert.AreEqual(1, s.TotalItems); // not deleted yet
                Assert.AreEqual(1, items.Count);
                Assert.AreEqual("hello world", items[0].Item);

                s.Delete(new List <string>()
                {
                    items[0].Id
                });
                Assert.AreEqual(0, s.TotalItems);
            }
        }