@@ -203,23 +203,23 @@ - (void)testEventsStorage {
203203 // ---- test getOldestEvent ----
204204 NSDictionary *result = [self .dataStore getOldestEvent: OPTLYDataStoreEventTypeImpression error: &error];
205205 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." );
207207
208208 // ---- test getFirstNEvents ----
209209 NSInteger n = 3 ;
210210 results = [self .dataStore getFirstNEvents: n eventType: OPTLYDataStoreEventTypeImpression error: &error];
211211 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." );
215215
216216 // ---- test getAllEntries ----
217217 results = [self .dataStore getAllEvents: OPTLYDataStoreEventTypeImpression error: &error];
218218 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." );
223223
224224 // ---- test numberOfEvents ----
225225 NSInteger numberOfEvents = [self .dataStore numberOfEvents: OPTLYDataStoreEventTypeImpression error: &error];
@@ -230,16 +230,16 @@ - (void)testEventsStorage {
230230 results = [self .dataStore getAllEvents: OPTLYDataStoreEventTypeImpression error: &error];
231231 numberOfEvents = [self .dataStore numberOfEvents: OPTLYDataStoreEventTypeImpression error: &error];
232232 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." );
236236
237237 // ---- test removeFirstNEvents ----
238238 NSInteger nEventsToDelete = 2 ;
239239 [self .dataStore removeFirstNEvents: nEventsToDelete eventType: OPTLYDataStoreEventTypeImpression error: &error];
240240 results = [self .dataStore getAllEvents: OPTLYDataStoreEventTypeImpression error: &error];
241241 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." );
243243
244244 // ---- test removeAllEvents of an event type ----
245245 [self .dataStore removeAllEvents: OPTLYDataStoreEventTypeImpression error: &error];
@@ -248,7 +248,8 @@ - (void)testEventsStorage {
248248
249249 // ---- test removeEvent ----
250250 [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];
252253 results = [self .dataStore getAllEvents: OPTLYDataStoreEventTypeImpression error: &error];
253254 XCTAssert ([results count ] == 0 , @" Invalid impression event count when removeEvent was called." );
254255
@@ -262,6 +263,51 @@ - (void)testEventsStorage {
262263 XCTAssert ([results count ] == 0 , @" Invalid conversion event count when removeSavedEvents was called." );
263264}
264265
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+
265311# pragma mark - File Manager Tests
266312
267313- (void )testSaveFile {
0 commit comments