14
14
* limitations under the License.
15
15
*/
16
16
17
- #import " Firestore/Source/Core/FSTEventManager.h"
18
-
19
17
#import < OCMock/OCMock.h>
20
18
#import < XCTest/XCTest.h>
21
19
27
25
28
26
#import " Firestore/Example/Tests/Util/FSTHelpers.h"
29
27
28
+ #include " Firestore/core/src/firebase/firestore/core/event_manager.h"
30
29
#include " Firestore/core/src/firebase/firestore/core/view_snapshot.h"
31
30
#include " Firestore/core/src/firebase/firestore/model/document_key_set.h"
32
31
#include " Firestore/core/src/firebase/firestore/model/document_set.h"
36
35
#include " Firestore/core/test/firebase/firestore/testutil/xcgmock.h"
37
36
38
37
using firebase::firestore::core::EventListener;
38
+ using firebase::firestore::core::EventManager;
39
39
using firebase::firestore::core::ListenOptions;
40
40
using firebase::firestore::core::QueryListener;
41
+ using firebase::firestore::core::SyncEngineCallback;
41
42
using firebase::firestore::core::ViewSnapshot;
42
43
using firebase::firestore::model::DocumentKeySet;
43
44
using firebase::firestore::model::DocumentSet;
63
64
64
65
} // namespace
65
66
66
- // FSTEventManager implements this delegate privately
67
- @interface FSTEventManager () <FSTSyncEngineDelegate>
68
- @end
69
-
70
67
@interface FSTEventManagerTests : XCTestCase
71
68
@end
72
69
@@ -79,18 +76,18 @@ - (void)DISABLED_testHandlesManyListenersPerQuery {
79
76
auto listener2 = NoopQueryListener (query);
80
77
81
78
FSTSyncEngine *syncEngineMock = OCMStrictClassMock ([FSTSyncEngine class ]);
82
- OCMExpect ([syncEngineMock setSyncEngineDelegate: [OCMArg any ] ]);
83
- FSTEventManager * eventManager = [FSTEventManager eventManagerWithSyncEngine: syncEngineMock] ;
79
+ OCMExpect ([syncEngineMock setCallback: static_cast <SyncEngineCallback *>( [OCMArg anyPointer ]) ]);
80
+ EventManager eventManager ( syncEngineMock) ;
84
81
85
82
OCMExpect ([syncEngineMock listenToQuery: query]);
86
- [ eventManager addListener: listener1] ;
83
+ eventManager. AddQueryListener ( listener1) ;
87
84
OCMVerifyAll ((id )syncEngineMock);
88
85
89
- [ eventManager addListener: listener2] ;
90
- [ eventManager removeListener: listener2] ;
86
+ eventManager. AddQueryListener ( listener2) ;
87
+ eventManager. RemoveQueryListener ( listener2) ;
91
88
92
89
OCMExpect ([syncEngineMock stopListeningToQuery: query]);
93
- [ eventManager removeListener: listener1] ;
90
+ eventManager. RemoveQueryListener ( listener1) ;
94
91
OCMVerifyAll ((id )syncEngineMock);
95
92
}
96
93
@@ -99,10 +96,10 @@ - (void)testHandlesUnlistenOnUnknownListenerGracefully {
99
96
auto listener = NoopQueryListener (query);
100
97
101
98
FSTSyncEngine *syncEngineMock = OCMStrictClassMock ([FSTSyncEngine class ]);
102
- OCMExpect ([syncEngineMock setSyncEngineDelegate: [OCMArg any ] ]);
103
- FSTEventManager * eventManager = [FSTEventManager eventManagerWithSyncEngine: syncEngineMock] ;
99
+ OCMExpect ([syncEngineMock setCallback: static_cast <SyncEngineCallback *>( [OCMArg anyPointer ]) ]);
100
+ EventManager eventManager ( syncEngineMock) ;
104
101
105
- [ eventManager removeListener: listener] ;
102
+ eventManager. RemoveQueryListener ( listener) ;
106
103
OCMVerifyAll ((id )syncEngineMock);
107
104
}
108
105
@@ -129,17 +126,17 @@ - (void)DISABLED_testNotifiesListenersInTheRightOrder {
129
126
query1, [eventOrder](StatusOr<ViewSnapshot>) { [eventOrder addObject: @" listener3" ]; });
130
127
131
128
FSTSyncEngine *syncEngineMock = OCMClassMock ([FSTSyncEngine class ]);
132
- FSTEventManager * eventManager = [FSTEventManager eventManagerWithSyncEngine: syncEngineMock] ;
129
+ EventManager eventManager ( syncEngineMock) ;
133
130
134
- [ eventManager addListener: listener1] ;
135
- [ eventManager addListener: listener2] ;
136
- [ eventManager addListener: listener3] ;
131
+ eventManager. AddQueryListener ( listener1) ;
132
+ eventManager. AddQueryListener ( listener2) ;
133
+ eventManager. AddQueryListener ( listener3) ;
137
134
OCMVerify ([syncEngineMock listenToQuery: query1]);
138
135
OCMVerify ([syncEngineMock listenToQuery: query2]);
139
136
140
137
ViewSnapshot snapshot1 = [self makeEmptyViewSnapshotWithQuery: query1];
141
138
ViewSnapshot snapshot2 = [self makeEmptyViewSnapshotWithQuery: query2];
142
- [ eventManager handleViewSnapshots: {snapshot1, snapshot2}] ;
139
+ eventManager. OnViewSnapshots ( {snapshot1, snapshot2}) ;
143
140
144
141
NSArray *expected = @[ @" listener1" , @" listener3" , @" listener2" ];
145
142
XCTAssertEqualObjects (eventOrder, expected);
@@ -165,14 +162,16 @@ void OnOnlineStateChanged(OnlineState online_state) override {
165
162
auto fake_listener = std::make_shared<FakeQueryListener>(query);
166
163
167
164
FSTSyncEngine *syncEngineMock = OCMClassMock([FSTSyncEngine class ]);
168
- OCMExpect ([syncEngineMock setSyncEngineDelegate: [OCMArg any ] ]);
169
- FSTEventManager * eventManager = [FSTEventManager eventManagerWithSyncEngine: syncEngineMock] ;
165
+ OCMExpect ([syncEngineMock setCallback: static_cast <SyncEngineCallback *>( [OCMArg anyPointer ]) ]);
166
+ EventManager eventManager ( syncEngineMock) ;
170
167
171
- [ eventManager addListener: fake_listener] ;
168
+ eventManager.AddQueryListener( fake_listener) ;
172
169
XC_ASSERT_THAT (fake_listener->events, ElementsAre(OnlineState::Unknown));
173
170
174
- [ eventManager applyChangedOnlineState: OnlineState: :Online] ;
171
+ eventManager.HandleOnlineStateChange( OnlineState::Online) ;
175
172
XC_ASSERT_THAT (fake_listener->events, ElementsAre(OnlineState::Unknown, OnlineState::Online));
173
+
174
+ OCMVerifyAll ((id )syncEngineMock);
176
175
}
177
176
178
177
@end
0 commit comments