61 lines
1.6 KiB
C#
61 lines
1.6 KiB
C#
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
|
|
namespace Falcon.SugarApi.Test
|
|
{
|
|
/// <summary>
|
|
/// 任务防抖测试
|
|
/// </summary>
|
|
[TestClass()]
|
|
public class ThreadSafeFixedSizeQueueTest
|
|
{
|
|
/// <summary>
|
|
/// 出入数据测试
|
|
/// </summary>
|
|
[TestMethod()]
|
|
public void TestInOut() {
|
|
var queue = new ThreadSafeFixedSizeQueue<int>(3);
|
|
|
|
var i = queue.Dequeue();
|
|
Assert.IsTrue(i == 0);
|
|
|
|
queue.Enqueue(1);
|
|
Assert.IsTrue(queue.Count == 1);
|
|
|
|
i = queue.Dequeue();
|
|
Assert.IsTrue(i == 1);
|
|
|
|
|
|
queue.Enqueue(1);
|
|
queue.Enqueue(2);
|
|
queue.Enqueue(3);
|
|
queue.Enqueue(4);
|
|
queue.Enqueue(5);
|
|
Assert.IsTrue(queue.Count == 3);
|
|
i = queue.Dequeue();
|
|
Assert.IsTrue(i == 3);
|
|
i = queue.Dequeue();
|
|
Assert.IsTrue(i == 4);
|
|
i = queue.Dequeue();
|
|
Assert.IsTrue(i == 5);
|
|
Assert.IsTrue(queue.Count == 0);
|
|
|
|
queue.Enqueue(1);
|
|
queue.Enqueue(2);
|
|
queue.Enqueue(3);
|
|
queue.Clear();
|
|
Assert.IsTrue(queue.Count == 0);
|
|
i = queue.Dequeue();
|
|
Assert.IsTrue(i == 0);
|
|
|
|
queue.Enqueue(1);
|
|
queue.Enqueue(2);
|
|
queue.Enqueue(3);
|
|
int id = 1;
|
|
while(queue.TryDequeue(out i)) {
|
|
Assert.IsTrue(i == id++);
|
|
}
|
|
Assert.IsTrue(queue.Count == 0);
|
|
}
|
|
}
|
|
}
|