@@ -203,23 +203,23 @@ - (void)testEventsStorage {
203
203
// ---- test getOldestEvent ----
204
204
NSDictionary *result = [self .dataStore getOldestEvent: OPTLYDataStoreEventTypeImpression error: &error];
205
205
XCTAssertNotNil (result, @" Data insertion failed or invalid number of results retrieved from getOldestEvent." );
206
- XCTAssert ([result isEqualToDictionary: testEventData1], @" Invalid result data retrieved for getOldestEvent." );
206
+ XCTAssert ([result[ @" json " ] isEqualToDictionary: testEventData1], @" Invalid result data retrieved for getOldestEvent." );
207
207
208
208
// ---- test getFirstNEvents ----
209
209
NSInteger n = 3 ;
210
210
results = [self .dataStore getFirstNEvents: n eventType: OPTLYDataStoreEventTypeImpression error: &error];
211
211
XCTAssert ([results count ] == n, @" Data insertion failed or invalid number of results retrieved from getFirstNEvents." );
212
- XCTAssert ([results[0 ] isEqualToDictionary: testEventData1], @" Invalid result data 1 retrieved for getFirstNEvents." );
213
- XCTAssert ([results[1 ] isEqualToDictionary: testEventData2], @" Invalid result data 2 retrieved for getFirstNEvents." );
214
- XCTAssert ([results[2 ] isEqualToDictionary: testEventData3], @" Invalid result data 3 retrieved for getFirstNEvents." );
212
+ XCTAssert ([results[0 ][ @" json " ] isEqualToDictionary: testEventData1], @" Invalid result data 1 retrieved for getFirstNEvents." );
213
+ XCTAssert ([results[1 ][ @" json " ] isEqualToDictionary: testEventData2], @" Invalid result data 2 retrieved for getFirstNEvents." );
214
+ XCTAssert ([results[2 ][ @" json " ] isEqualToDictionary: testEventData3], @" Invalid result data 3 retrieved for getFirstNEvents." );
215
215
216
216
// ---- test getAllEntries ----
217
217
results = [self .dataStore getAllEvents: OPTLYDataStoreEventTypeImpression error: &error];
218
218
XCTAssert ([results count ] == totalEntity, @" Data insertion failed or invalid number of results retrieved from getAllEvents" );
219
- XCTAssert ([results[0 ] isEqualToDictionary: testEventData1], @" Invalid result data 1 retrieved for getAllEvents." );
220
- XCTAssert ([results[1 ] isEqualToDictionary: testEventData2], @" Invalid result data 2 retrieved for getAllEvents." );
221
- XCTAssert ([results[2 ] isEqualToDictionary: testEventData3], @" Invalid result data 3 retrieved for getAllEvents." );
222
- XCTAssert ([results[3 ] isEqualToDictionary: testEventData4], @" Invalid result data 4 retrieved for getAllEvents." );
219
+ XCTAssert ([results[0 ][ @" json " ] isEqualToDictionary: testEventData1], @" Invalid result data 1 retrieved for getAllEvents." );
220
+ XCTAssert ([results[1 ][ @" json " ] isEqualToDictionary: testEventData2], @" Invalid result data 2 retrieved for getAllEvents." );
221
+ XCTAssert ([results[2 ][ @" json " ] isEqualToDictionary: testEventData3], @" Invalid result data 3 retrieved for getAllEvents." );
222
+ XCTAssert ([results[3 ][ @" json " ] isEqualToDictionary: testEventData4], @" Invalid result data 4 retrieved for getAllEvents." );
223
223
224
224
// ---- test numberOfEvents ----
225
225
NSInteger numberOfEvents = [self .dataStore numberOfEvents: OPTLYDataStoreEventTypeImpression error: &error];
@@ -230,16 +230,16 @@ - (void)testEventsStorage {
230
230
results = [self .dataStore getAllEvents: OPTLYDataStoreEventTypeImpression error: &error];
231
231
numberOfEvents = [self .dataStore numberOfEvents: OPTLYDataStoreEventTypeImpression error: &error];
232
232
XCTAssert (numberOfEvents == totalEntity-1 , @" Invalid event count after removeOldestEvent was called." );
233
- XCTAssert ([results[0 ] isEqualToDictionary: testEventData2], @" Invalid result data 1 retrieved after removeOldestEvent was called." );
234
- XCTAssert ([results[1 ] isEqualToDictionary: testEventData3], @" Invalid result data 2 retrieved after removeOldestEvent was called." );
235
- XCTAssert ([results[2 ] isEqualToDictionary: testEventData4], @" Invalid result data 3 retrieved after removeOldestEvent was called." );
233
+ XCTAssert ([results[0 ][ @" json " ] isEqualToDictionary: testEventData2], @" Invalid result data 1 retrieved after removeOldestEvent was called." );
234
+ XCTAssert ([results[1 ][ @" json " ] isEqualToDictionary: testEventData3], @" Invalid result data 2 retrieved after removeOldestEvent was called." );
235
+ XCTAssert ([results[2 ][ @" json " ] isEqualToDictionary: testEventData4], @" Invalid result data 3 retrieved after removeOldestEvent was called." );
236
236
237
237
// ---- test removeFirstNEvents ----
238
238
NSInteger nEventsToDelete = 2 ;
239
239
[self .dataStore removeFirstNEvents: nEventsToDelete eventType: OPTLYDataStoreEventTypeImpression error: &error];
240
240
results = [self .dataStore getAllEvents: OPTLYDataStoreEventTypeImpression error: &error];
241
241
XCTAssert ([results count ] == totalEntity-1 -nEventsToDelete, @" Invalid event count when removeFirstNEvents was called." );
242
- XCTAssert ([results[0 ] isEqualToDictionary: testEventData4], @" Invalid result data 1 retrieved after removeFirstNEvents was called." );
242
+ XCTAssert ([results[0 ][ @" json " ] isEqualToDictionary: testEventData4], @" Invalid result data 1 retrieved after removeFirstNEvents was called." );
243
243
244
244
// ---- test removeAllEvents of an event type ----
245
245
[self .dataStore removeAllEvents: OPTLYDataStoreEventTypeImpression error: &error];
@@ -248,7 +248,8 @@ - (void)testEventsStorage {
248
248
249
249
// ---- test removeEvent ----
250
250
[self .dataStore saveEvent: testEventData1 eventType: OPTLYDataStoreEventTypeImpression error: &error];
251
- [self .dataStore removeEvent: testEventData1 eventType: OPTLYDataStoreEventTypeImpression error: &error];
251
+ NSDictionary *event = [self .dataStore getOldestEvent: OPTLYDataStoreEventTypeImpression error: &error];
252
+ [self .dataStore removeEvent: event eventType: OPTLYDataStoreEventTypeImpression error: &error];
252
253
results = [self .dataStore getAllEvents: OPTLYDataStoreEventTypeImpression error: &error];
253
254
XCTAssert ([results count ] == 0 , @" Invalid impression event count when removeEvent was called." );
254
255
@@ -262,6 +263,51 @@ - (void)testEventsStorage {
262
263
XCTAssert ([results count ] == 0 , @" Invalid conversion event count when removeSavedEvents was called." );
263
264
}
264
265
266
+ - (void )testSingleQuoteStringSaveAndRemove {
267
+ NSDictionary *testEventData1 =
268
+ @{
269
+ @" userFeatures" : @[@{
270
+ @" value" : @" ali'`s" ,
271
+ @" shouldIndex" : @YES ,
272
+ @" name" : @" nameOfPerson" ,
273
+ @" type" : @" custom"
274
+ }],
275
+ @" timestamp" : @1478510071576 ,
276
+ @" clientVersion" : @" 0.2.0-debug" ,
277
+ @" eventEntityId" : @" 7723870635" ,
278
+ @" revision" : @" 7" ,
279
+ @" isGlobalHoldback" : @NO ,
280
+ @" accountId" : @" 4902200114" ,
281
+ @" layerStates" : @[],
282
+ @" projectId" : @" 7738070017" ,
283
+ @" eventMetrics" : @[@{
284
+ @" name" : @" revenue" ,
285
+ @" value" : @88
286
+ }],
287
+ @" visitorId" : @" 1" ,
288
+ @" eventName" : @" people" ,
289
+ @" clientEngine" : kClientEngine ,
290
+ @" eventFeatures" : @[]
291
+ };
292
+
293
+ NSError *error = nil ;
294
+
295
+ XCTAssertTrue ([self .dataStore saveEvent: testEventData1
296
+ eventType: OPTLYDataStoreEventTypeConversion
297
+ error: &error]);
298
+ XCTAssertNil (error);
299
+ NSArray *events = [self .dataStore getAllEvents: OPTLYDataStoreEventTypeConversion error: &error];
300
+
301
+ XCTAssertNil (error);
302
+
303
+ NSDictionary *event = [events lastObject ][@" json" ];
304
+ XCTAssertTrue ([event isEqual: testEventData1]);
305
+ XCTAssertTrue ([self .dataStore removeEvent: [events lastObject ]
306
+ eventType: OPTLYDataStoreEventTypeConversion
307
+ error: &error]);
308
+ XCTAssertNil (error);
309
+ }
310
+
265
311
# pragma mark - File Manager Tests
266
312
267
313
- (void )testSaveFile {
0 commit comments