Skip to content

Commit d030345

Browse files
Tests updated. Minimum classes required updated too
1 parent 388ad8f commit d030345

File tree

4 files changed

+54
-37
lines changed

4 files changed

+54
-37
lines changed

SplitTests/Collections/BlockingQueueTest.swift

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class BlockingQueueTest: XCTestCase {
2525
while true {
2626
do {
2727
let event = try queue.take()
28-
local.append(event)
28+
local.append(event.type)
2929
if local.count == 4 {
3030
endExp.fulfill()
3131
}
@@ -60,7 +60,7 @@ class BlockingQueueTest: XCTestCase {
6060
while true {
6161
do {
6262
let event = try queue.take()
63-
local.append(event)
63+
local.append(event.type)
6464
} catch {
6565
endExp.fulfill()
6666
interrupted = true
@@ -105,8 +105,8 @@ class BlockingQueueTest: XCTestCase {
105105
for _ in 0..<50000 {
106106
do {
107107
let event = try queue.take()
108-
local.append(event)
109-
print("Took: \(event)")
108+
local.append(event.type)
109+
print("Took: \(event.type)")
110110
} catch {
111111
}
112112
}
@@ -117,8 +117,8 @@ class BlockingQueueTest: XCTestCase {
117117
for _ in 0..<50000 {
118118
do {
119119
let event = try queue.take()
120-
local.append(event)
121-
print("Took QA1: \(event)")
120+
local.append(event.type)
121+
print("Took QA1: \(event.type)")
122122
} catch {
123123
print("\n\n\nERROR!!!!: \(error) \n\n\n")
124124
}
@@ -129,9 +129,9 @@ class BlockingQueueTest: XCTestCase {
129129
for _ in 0..<50000 {
130130
do {
131131
let event = try queue.take()
132-
local.append(event)
132+
local.append(event.type)
133133
Thread.sleep(forTimeInterval: 0.3)
134-
print("Took QA2: \(event)")
134+
print("Took QA2: \(event.type)")
135135
} catch {
136136
}
137137
}
@@ -142,8 +142,8 @@ class BlockingQueueTest: XCTestCase {
142142
do {
143143
Thread.sleep(forTimeInterval: 0.5)
144144
let event = try queue.take()
145-
local.append(event)
146-
print("Took QA3: \(event)")
145+
local.append(event.type)
146+
print("Took QA3: \(event.type)")
147147
} catch {
148148
}
149149
}

SplitTests/Fake/Service/SplitEventsManagerCoordinatorStub.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,13 @@ class SplitEventsManagerCoordinatorStub: SplitEventsManagerCoordinator {
2222
managers[key] = nil
2323
}
2424

25-
func register(event: SplitEvent, task: SplitEventTask) {
25+
func register(event: SplitEvent, task: SplitEventActionTask) {
2626

2727
}
28+
29+
func register(event: SplitEventWithMetadata, task: SplitEventActionTask) {}
30+
31+
func notifyInternalEvent(_ event: SplitInternalEvent, metadata: EventMetadata?) {}
2832

2933
var notifiedEvents = Set<String>()
3034
func notifyInternalEvent(_ event: SplitInternalEvent) {

SplitTests/Fake/SplitEventsManagerStub.swift

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,19 @@ class SplitEventsManagerStub: SplitEventsManager {
1515
var splitsKilledEventFiredCount = 0
1616
var splitsUpdatedEventFiredCount = 0
1717
var mySegmentsLoadedEventFiredCount = 0
18+
var metadata: EventMetadata?
1819
var mySegmentsLoadedEventExp: XCTestExpectation?
1920
var startCalled = false
2021
var stopCalled = false
2122

2223
func notifyInternalEvent(_ event: SplitInternalEvent) {
24+
notifyInternalEvent(event, metadata: nil)
25+
}
26+
27+
func notifyInternalEvent(_ event: SplitInternalEvent, metadata: EventMetadata? = nil) {
28+
29+
self.metadata = metadata
30+
2331
switch event {
2432
case .mySegmentsLoadedFromCache:
2533
mySegmentsLoadedEventFiredCount+=1
@@ -39,8 +47,12 @@ class SplitEventsManagerStub: SplitEventsManager {
3947
}
4048
}
4149

42-
var registeredEvents = [SplitEvent: SplitEventTask]()
43-
func register(event: SplitEvent, task: SplitEventTask) {
50+
var registeredEvents = [SplitEventWithMetadata: SplitEventActionTask]()
51+
func register(event: SplitEvent, task: SplitEventActionTask) {
52+
register(event: SplitEventWithMetadata(type: event), task: task)
53+
}
54+
55+
func register(event: SplitEventWithMetadata, task: SplitEventActionTask) {
4456
registeredEvents[event] = task
4557
}
4658

SplitTests/SplitEventsManagerTest.swift

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,26 @@ class SplitEventsManagerTest: XCTestCase {
315315
eventManager.stop()
316316
}
317317

318+
func testSplitEventActionTaskMetadata() {
319+
320+
// Dummy event with metadata
321+
let metadataTypeToCheck: EventMetadataType = .FLAGS_KILLED
322+
let metadataDataToCheck: String = "Test-flag-42"
323+
let dummyMetadata = EventMetadata(type: metadataTypeToCheck, data: metadataDataToCheck)
324+
325+
// This will be the task's "run()"
326+
let action: SplitActionWithMetadata = { metadata in
327+
XCTAssertEqual(metadataTypeToCheck, metadata!.type)
328+
XCTAssertEqual(metadataDataToCheck,metadata!.data)
329+
}
330+
331+
// SUT
332+
let SUT = TestTask(exp: nil, action: action, metadata: dummyMetadata)
333+
334+
SUT.run(dummyMetadata)
335+
XCTAssertTrue(SUT.taskTriggered)
336+
}
337+
318338
// MARK: Helpers
319339
func currentTimestamp() -> Int {
320340
return Int(Date().unixTimestamp())
@@ -325,40 +345,21 @@ class SplitEventsManagerTest: XCTestCase {
325345
}
326346
}
327347

328-
class TestTask: SplitEventTask {
329-
330-
var event: SplitEvent = .sdkReady
331-
332-
var runInBackground: Bool = false
333-
334-
var queue: DispatchQueue?
335-
336-
var metadata: EventMetadata? = nil
348+
class TestTask: SplitEventActionTask {
337349

338350
var taskTriggered = false
339351
let label: String
340352
var exp: XCTestExpectation?
341-
init(exp: XCTestExpectation?, label: String = "") {
353+
init(exp: XCTestExpectation?, label: String = "", action: SplitActionWithMetadata? = nil, metadata: EventMetadata? = nil) {
342354
self.exp = exp
343355
self.label = label
344-
}
345-
346-
func takeQueue() -> DispatchQueue? {
347-
return nil
348-
}
349-
350-
func run() {
351-
print("run: \(self.label)")
352-
taskTriggered = true
353-
if let exp = self.exp {
354-
exp.fulfill()
355-
}
356+
super.init(action: action ?? { _ in }, event: .sdkReady, factory: SplitFactoryStub(apiKey: IntegrationHelper.dummyApiKey))
356357
}
357358

358-
func run(_ metadata: EventMetadata) {
359+
override func run(_ metadata: EventMetadata?) {
359360
print("run: \(self.label)")
360-
self.metadata = metadata
361361
taskTriggered = true
362+
super.run(metadata)
362363
if let exp = self.exp {
363364
exp.fulfill()
364365
}

0 commit comments

Comments
 (0)