|
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