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); } }
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); }