@@ -108,7 +108,7 @@ interface SyncCompletionHandler {
108
108
void syncCompleted (@ Nullable Throwable error );
109
109
}
110
110
111
- private void sync (final @ NonNull MirroredIndex index , final @ NonNull SyncCompletionHandler completionHandler ) {
111
+ private void populate (final @ NonNull MirroredIndex index , final @ NonNull SyncCompletionHandler completionHandler ) {
112
112
// Delete the index.
113
113
client .deleteIndexAsync (index .getIndexName (), new AssertCompletionHandler () {
114
114
@ Override
@@ -131,30 +131,7 @@ public void doRequestCompleted(JSONObject content, AlgoliaException error) {
131
131
@ Override
132
132
public void doRequestCompleted (JSONObject content , AlgoliaException error ) {
133
133
assertNull (error );
134
-
135
- // Sync the offline mirror.
136
- index .setMirrored (true );
137
- Query query = new Query ();
138
- query .setNumericFilters (new JSONArray ().put ("born < 1980" ));
139
- index .setDataSelectionQueries (
140
- new MirroredIndex .DataSelectionQuery (query , 10 )
141
- );
142
-
143
- listener = new SyncListener () {
144
- @ Override
145
- public void syncDidStart (MirroredIndex index ) {
146
- // Nothing to do.
147
- }
148
-
149
- @ Override
150
- public void syncDidFinish (MirroredIndex index , Throwable error , MirroredIndex .SyncStats stats ) {
151
- Log .d (MirroredIndexTest .class .getSimpleName (), "Sync finished" );
152
- index .removeSyncListener (listener );
153
- completionHandler .syncCompleted (error );
154
- }
155
- };
156
- index .addSyncListener (listener );
157
- index .sync ();
134
+ completionHandler .syncCompleted (error );
158
135
}
159
136
});
160
137
}
@@ -165,6 +142,37 @@ public void syncDidFinish(MirroredIndex index, Throwable error, MirroredIndex.Sy
165
142
});
166
143
}
167
144
145
+ private void sync (final @ NonNull MirroredIndex index , final @ NonNull SyncCompletionHandler completionHandler ) {
146
+ populate (index , new SyncCompletionHandler () {
147
+ @ Override
148
+ public void syncCompleted (@ Nullable Throwable error ) {
149
+ // Sync the offline mirror.
150
+ index .setMirrored (true );
151
+ Query query = new Query ();
152
+ query .setNumericFilters (new JSONArray ().put ("born < 1980" ));
153
+ index .setDataSelectionQueries (
154
+ new MirroredIndex .DataSelectionQuery (query , 10 )
155
+ );
156
+
157
+ listener = new SyncListener () {
158
+ @ Override
159
+ public void syncDidStart (MirroredIndex index ) {
160
+ // Nothing to do.
161
+ }
162
+
163
+ @ Override
164
+ public void syncDidFinish (MirroredIndex index , Throwable error , MirroredIndex .SyncStats stats ) {
165
+ Log .d (MirroredIndexTest .class .getSimpleName (), "Sync finished" );
166
+ index .removeSyncListener (listener );
167
+ completionHandler .syncCompleted (error );
168
+ }
169
+ };
170
+ index .addSyncListener (listener );
171
+ index .sync ();
172
+ }
173
+ });
174
+ }
175
+
168
176
@ Test
169
177
public void testSync () throws Exception {
170
178
final CountDownLatch signal = new CountDownLatch (1 );
@@ -471,4 +479,61 @@ public void doRequestCompleted(JSONObject content, AlgoliaException error) {
471
479
}
472
480
});
473
481
}
482
+
483
+ /**
484
+ * Test that a non-mirrored index behaves like a purely online index.
485
+ */
486
+ @ Test
487
+ public void testNotMirrored () {
488
+ final CountDownLatch signal = new CountDownLatch (5 );
489
+
490
+ final MirroredIndex index = client .getIndex (Helpers .safeIndexName (Helpers .getMethodName ()));
491
+ // Check that the index is *not* mirrored by default.
492
+ assertFalse (index .isMirrored ());
493
+
494
+ populate (index , new SyncCompletionHandler () {
495
+ @ Override
496
+ public void syncCompleted (@ Nullable Throwable error ) {
497
+ // Check that a non-mirrored index returns online results without origin tagging.
498
+ index .searchAsync (new Query (), new AssertCompletionHandler () {
499
+ @ Override
500
+ public void doRequestCompleted (JSONObject content , AlgoliaException error ) {
501
+ assertNull (error );
502
+ assertEquals (5 , content .optInt ("nbHits" ));
503
+ assertNull (content .opt ("origin" ));
504
+ signal .countDown ();
505
+ }
506
+ });
507
+ index .browseAsync (new Query (), new AssertCompletionHandler () {
508
+ @ Override
509
+ public void doRequestCompleted (JSONObject content , AlgoliaException error ) {
510
+ assertNull (error );
511
+ assertEquals (5 , content .optInt ("nbHits" ));
512
+ assertNull (content .opt ("origin" ));
513
+ signal .countDown ();
514
+ }
515
+ });
516
+ index .getObjectAsync ("1" , new AssertCompletionHandler () {
517
+ @ Override
518
+ public void doRequestCompleted (JSONObject content , AlgoliaException error ) {
519
+ assertNull (error );
520
+ assertEquals ("Snoopy" , content .optString ("name" ));
521
+ assertNull (content .opt ("origin" ));
522
+ signal .countDown ();
523
+ }
524
+ });
525
+ index .getObjectsAsync (Arrays .asList ("1" , "2" ), new AssertCompletionHandler () {
526
+ @ Override
527
+ public void doRequestCompleted (JSONObject content , AlgoliaException error ) {
528
+ assertNull (error );
529
+ assertNotNull (content .optJSONArray ("results" ));
530
+ assertEquals (2 , content .optJSONArray ("results" ).length ());
531
+ assertNull (content .opt ("origin" ));
532
+ signal .countDown ();
533
+ }
534
+ });
535
+ signal .countDown ();
536
+ }
537
+ });
538
+ }
474
539
}
0 commit comments