37 lines
1008 B
Swift
37 lines
1008 B
Swift
import XCTest
|
|
@testable import SharedCore
|
|
|
|
final class BoundedFIFOQueueTests: XCTestCase {
|
|
func testDisconnectReconnectFlushPreservesOrder() {
|
|
var queue = BoundedFIFOQueue<Int>(maxCount: 5)
|
|
|
|
_ = queue.enqueue(10)
|
|
_ = queue.enqueue(20)
|
|
_ = queue.enqueue(30)
|
|
|
|
XCTAssertEqual(queue.dequeueAll(), [10, 20, 30])
|
|
XCTAssertTrue(queue.isEmpty)
|
|
}
|
|
|
|
func testOverflowDropsOldestPayloads() {
|
|
var queue = BoundedFIFOQueue<Int>(maxCount: 3)
|
|
|
|
XCTAssertEqual(queue.enqueue(1), 0)
|
|
XCTAssertEqual(queue.enqueue(2), 0)
|
|
XCTAssertEqual(queue.enqueue(3), 0)
|
|
XCTAssertEqual(queue.enqueue(4), 1)
|
|
XCTAssertEqual(queue.enqueue(5), 1)
|
|
|
|
XCTAssertEqual(queue.dequeueAll(), [3, 4, 5])
|
|
}
|
|
|
|
func testMaxCountHasLowerBoundOfOne() {
|
|
var queue = BoundedFIFOQueue<Int>(maxCount: 0)
|
|
|
|
_ = queue.enqueue(1)
|
|
XCTAssertEqual(queue.enqueue(2), 1)
|
|
XCTAssertEqual(queue.dequeueAll(), [2])
|
|
}
|
|
}
|
|
|