|
2 | 2 | import XCTest |
3 | 3 |
|
4 | 4 | final class EventFilterTests: XCTestCase { |
5 | | - private func genEvent( |
6 | | - title: String = "unknown", |
7 | | - tags: [String] = [], |
8 | | - allDay: Bool = false, |
9 | | - attendees: [String] = [] |
10 | | - ) -> Event { |
11 | | - let id = UUID().uuidString |
12 | | - let cal = PlanCalendar.Unknown |
13 | | - let title = Title(text: title) |
14 | | - let schedule = Schedule( |
15 | | - now: Date(), |
16 | | - startDate: Date(), |
17 | | - endDate: Date(), |
18 | | - allDay: allDay |
19 | | - ) |
20 | | - let location = "" |
21 | | - let meeting = Meeting(organizer: "", attendees: attendees) |
22 | | - let services: [Service: String] = [:] |
23 | | - |
24 | | - return Event( |
25 | | - id: id, |
26 | | - calendar: cal, |
27 | | - title: title, |
28 | | - schedule: schedule, |
29 | | - location: location, |
30 | | - meeting: meeting, |
31 | | - services: services, |
32 | | - tags: tags |
33 | | - ) |
34 | | - } |
35 | | - |
36 | 5 | func testAlwaysAccept() { |
37 | | - let event = genEvent() |
| 6 | + let event = Event.generate() |
38 | 7 | let expected = true |
39 | 8 | let actual = EventFilter.accept(event) |
40 | 9 |
|
41 | 10 | XCTAssertEqual(actual, expected, "The event was not accepted") |
42 | 11 | } |
43 | 12 |
|
44 | 13 | func testIgnoreTagsNoTags() { |
45 | | - let event = genEvent(tags: ["timeblock"]) |
| 14 | + let event = Event.generate(tags: ["timeblock"]) |
46 | 15 | let expected = true |
47 | 16 | let actual = EventFilter.ignoreTags(tags: [])(event) |
48 | 17 |
|
49 | 18 | XCTAssertEqual(actual, expected, "The event was falsely accepted") |
50 | 19 | } |
51 | 20 |
|
52 | 21 | func testIgnoreTagsMatchingTags() { |
53 | | - let event = genEvent(tags: ["timeblock"]) |
| 22 | + let event = Event.generate(tags: ["timeblock"]) |
54 | 23 | let expected = false |
55 | 24 | let actual = EventFilter.ignoreTags(tags: ["timeblock"])(event) |
56 | 25 |
|
57 | 26 | XCTAssertEqual(actual, expected, "The event was falsely accepted") |
58 | 27 | } |
59 | 28 |
|
60 | 29 | func testIgnoreTagsNotMatchingTags() { |
61 | | - let event = genEvent(tags: ["foo"]) |
| 30 | + let event = Event.generate(tags: ["foo"]) |
62 | 31 | let expected = true |
63 | 32 | let actual = EventFilter.ignoreTags(tags: ["timeblock"])(event) |
64 | 33 |
|
65 | 34 | XCTAssertEqual(actual, expected, "The event was falsely ignored") |
66 | 35 | } |
67 | 36 |
|
68 | 37 | func testIgnoreAnAllDayEvent() { |
69 | | - let event = genEvent(allDay: true) |
| 38 | + let event = Event.generate(allDay: true) |
70 | 39 | let expected = false |
71 | 40 | let actual = EventFilter.ignoreAllDay(event: event) |
72 | 41 |
|
73 | 42 | XCTAssertEqual(actual, expected, "The event was falsely accepted") |
74 | 43 | } |
75 | 44 |
|
76 | 45 | func testAcceptAnNonAllDayEvent() { |
77 | | - let event = genEvent(allDay: false) |
| 46 | + let event = Event.generate(allDay: false) |
78 | 47 | let expected = true |
79 | 48 | let actual = EventFilter.ignoreAllDay(event: event) |
80 | 49 |
|
81 | 50 | XCTAssertEqual(actual, expected, "The event was falsely ignored") |
82 | 51 | } |
83 | 52 |
|
84 | 53 | func testIgnoringEventMatchingTitle() { |
85 | | - let event = genEvent(title: "foo matching") |
| 54 | + let event = Event.generate(title: "foo matching") |
86 | 55 | let expected = false |
87 | 56 | let actual = EventFilter.ignorePatternTitle(pattern: "foo")(event) |
88 | 57 |
|
89 | 58 | XCTAssertEqual(actual, expected, "The event was falsely accepted") |
90 | 59 | } |
91 | 60 |
|
92 | 61 | func testAcceptingEventNotMatchingTitle() { |
93 | | - let event = genEvent(title: "foo matching") |
| 62 | + let event = Event.generate(title: "foo matching") |
94 | 63 | let expected = true |
95 | 64 | let actual = EventFilter.ignorePatternTitle(pattern: "bar")(event) |
96 | 65 |
|
97 | 66 | XCTAssertEqual(actual, expected, "The event was falsely ignored") |
98 | 67 | } |
99 | 68 |
|
100 | 69 | func testAcceptingEventWithAtLeastTwoAttendees() { |
101 | | - let event = genEvent(attendees: ["personA", "personB"]) |
| 70 | + let event = Event.generate(attendees: ["personA", "personB"]) |
102 | 71 | let expected = true |
103 | 72 | let actual = EventFilter.minNumAttendees(number: 2)(event) |
104 | 73 |
|
105 | 74 | XCTAssertEqual(actual, expected, "The event was falsely ignored") |
106 | 75 | } |
107 | 76 |
|
108 | 77 | func testAcceptingEventWithTooFewAttendees() { |
109 | | - let event = genEvent(attendees: ["personA", "personB"]) |
| 78 | + let event = Event.generate(attendees: ["personA", "personB"]) |
110 | 79 | let expected = false |
111 | 80 | let actual = EventFilter.minNumAttendees(number: 3)(event) |
112 | 81 |
|
113 | 82 | XCTAssertEqual(actual, expected, "The event was falsely accepted") |
114 | 83 | } |
115 | 84 |
|
116 | 85 | func testAcceptingEventWithFewAttendees() { |
117 | | - let event = genEvent(attendees: ["personA", "personB"]) |
| 86 | + let event = Event.generate(attendees: ["personA", "personB"]) |
118 | 87 | let expected = true |
119 | 88 | let actual = EventFilter.maxNumAttendees(number: 3)(event) |
120 | 89 |
|
121 | 90 | XCTAssertEqual(actual, expected, "The event was falsely ignored") |
122 | 91 | } |
123 | 92 |
|
124 | 93 | func testAcceptingEventWithTooManyAttendees() { |
125 | | - let event = genEvent(attendees: ["personA", "personB", "personC"]) |
| 94 | + let event = Event.generate(attendees: ["personA", "personB", "personC"]) |
126 | 95 | let expected = false |
127 | 96 | let actual = EventFilter.maxNumAttendees(number: 2)(event) |
128 | 97 |
|
|
0 commit comments