Skip to content

Commit d01387a

Browse files
committed
Added a unit test in for Custom Event Filtering
`BasicEventListenerTests` now contains new test `testEventListenerCustomFilter` which verifies that Custom Event Filtering is working for `EventListener`
1 parent e95a164 commit d01387a

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

Tests/EventDrivenSwiftTests/BasicEventListenerTests.swift

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ final class BasicEventListenerTests: XCTestCase, EventListening {
3737
var myFoo = 0
3838
var listenerHandler: EventListenerHandling? = nil
3939
let testOne = TestEventTypeOne(foo: 1000) // Create the Event
40+
let testZero = TestEventTypeOne(foo: 2000) // Create the Event
4041
var awaiter = DispatchSemaphore(value: 0)
4142

4243
func testEventListenerOnListenerThread() throws {
@@ -76,4 +77,29 @@ final class BasicEventListenerTests: XCTestCase, EventListening {
7677

7778
listenerHandler?.remove()
7879
}
80+
81+
func testEventListenerCustomFilter() throws {
82+
XCTAssertEqual(myFoo, 0, "Expect initial value of eventThread.foo to be 0, but it's \(myFoo)")
83+
84+
listenerHandler = TestEventTypeOne.addListener(self, { (event: TestEventTypeOne, priority, dispatchTime) in
85+
self.myFoo = event.foo
86+
self.awaiter.signal()
87+
}, executeOn: .taskThread, interestedIn: .custom, customFilter: { (event: TestEventTypeOne, priority, dispatchTime) in
88+
if event.foo == 1000 {
89+
print("Accepting Event because foo = 1000")
90+
return true
91+
}
92+
print("Ignoring Event where foo = \(event.foo)")
93+
return false
94+
})
95+
96+
testOne.queue()
97+
testZero.queue()
98+
99+
let result = awaiter.wait(timeout: DispatchTime.now().advanced(by: DispatchTimeInterval.seconds(10)))
100+
XCTAssertEqual(result, .success, "The Event Handler was not invoked in time!")
101+
XCTAssertEqual(self.myFoo, testOne.foo, "Expect new value of eventThread.foo to be \(testOne.foo), but it's \(self.myFoo)")
102+
103+
listenerHandler?.remove()
104+
}
79105
}

0 commit comments

Comments
 (0)