Esempio n. 1
0
        public void DequeueTimeoutExceptionBrokenTest()
        {
            QueueConfig config = new QueueConfig()
            {
                QueueDirectory             = @"d:\workspace\data\test-queue",
                DataConverter              = new Utf8Converter(),
                QueueName                  = "test06",
                DequeueTimeoutMilliseconds = 5000
            };

            IFileQueue <string> fq = FileQueue <string> .Create(config);

            StringBuilder data = new StringBuilder();

            for (int j = 0; j < 1000; ++j)
            {
                data.Append(Guid.NewGuid().ToString());
            }

            fq.Enqueue(data.ToString());

            try
            {
                string result = fq.Dequeue();
                Assert.Fail();
            }
            catch (DequeueTimeoutException e)
            {
                byte[] remain = fq.DequeueRawData();

                byte[] whole = new byte[e.QueueData.Length + remain.Length];
                using (MemoryStream wholeStream = new MemoryStream(whole))
                {
                    wholeStream.Write(e.QueueData, 0, e.QueueData.Length);
                    wholeStream.Write(remain, 0, remain.Length);
                }

                string result = fq.DeserializeQueueData(whole);

                Assert.AreEqual(data.ToString(), result);
            }
        }
Esempio n. 2
0
        public void RawDataTest()
        {
            QueueConfig config = new QueueConfig()
            {
                QueueDirectory             = @"d:\workspace\data\test-queue",
                DataConverter              = new Utf8Converter(),
                QueueName                  = "test05",
                DequeueTimeoutMilliseconds = 5000
            };
            IFileQueue <string> fq = FileQueue <string> .Create(config);

            StringBuilder data = new StringBuilder();

            for (int j = 0; j < 20; ++j)
            {
                data.Append(Guid.NewGuid().ToString());
            }

            fq.Enqueue(data.ToString());
            byte[] raw    = fq.DequeueRawData();
            string result = fq.DeserializeQueueData(raw);

            Assert.AreEqual(data.ToString(), result);
        }