public void PopFromMultipleConnectionsWithGrowingEventsWorks() { var queue = new NetworkEventQueue(1); var cq = queue.ToConcurrent(); int offset, size; for (int con = 0; con < 16; ++con) { for (int i = 0; i < con; ++i) { queue.PushEvent(new NetworkEvent { connectionId = con, offset = con, size = i, type = NetworkEvent.Type.Data }); } } for (int con = 0; con < 16; ++con) { for (int i = 0; i < con; ++i) { Assert.AreEqual(NetworkEvent.Type.Data, cq.PopEventForConnection(con, out offset, out size)); Assert.AreEqual(con, offset); Assert.AreEqual(i, size); } Assert.AreEqual(NetworkEvent.Type.Empty, cq.PopEventForConnection(con, out offset, out size)); } queue.Dispose(); }
public void PopFromEmptyQueueReturnsEmpty() { var queue = new NetworkEventQueue(1); var cq = queue.ToConcurrent(); int offset, size; Assert.AreEqual(NetworkEvent.Type.Empty, cq.PopEventForConnection(0, out offset, out size)); queue.Dispose(); }
public void PopFromSingleConnectionWorks() { var queue = new NetworkEventQueue(1); var cq = queue.ToConcurrent(); int offset, size; queue.PushEvent(new NetworkEvent { connectionId = 0, offset = 0, size = 0, type = NetworkEvent.Type.Data }); Assert.AreEqual(NetworkEvent.Type.Data, cq.PopEventForConnection(0, out offset, out size)); Assert.AreEqual(NetworkEvent.Type.Empty, cq.PopEventForConnection(0, out offset, out size)); queue.Dispose(); }