@@ -171,23 +171,23 @@ - (void)testEventsStorage {
171171 // ---- test getOldestEvent ----
172172 NSDictionary *result = [self .dataStore getOldestEvent: OPTLYDataStoreEventTypeImpression error: &error];
173173 XCTAssertNotNil (result, @" Data insertion failed or invalid number of results retrieved from getOldestEvent." );
174- XCTAssert ([result isEqualToDictionary: testEventData1], @" Invalid result data retrieved for getOldestEvent." );
174+ XCTAssert ([result[ @" json " ] isEqualToDictionary: testEventData1], @" Invalid result data retrieved for getOldestEvent." );
175175
176176 // ---- test getFirstNEvents ----
177177 NSInteger n = 3 ;
178178 results = [self .dataStore getFirstNEvents: n eventType: OPTLYDataStoreEventTypeImpression error: &error];
179179 XCTAssert ([results count ] == n, @" Data insertion failed or invalid number of results retrieved from getFirstNEvents." );
180- XCTAssert ([results[0 ] isEqualToDictionary: testEventData1], @" Invalid result data 1 retrieved for getFirstNEvents." );
181- XCTAssert ([results[1 ] isEqualToDictionary: testEventData2], @" Invalid result data 2 retrieved for getFirstNEvents." );
182- XCTAssert ([results[2 ] isEqualToDictionary: testEventData3], @" Invalid result data 3 retrieved for getFirstNEvents." );
180+ XCTAssert ([results[0 ][ @" json " ] isEqualToDictionary: testEventData1], @" Invalid result data 1 retrieved for getFirstNEvents." );
181+ XCTAssert ([results[1 ][ @" json " ] isEqualToDictionary: testEventData2], @" Invalid result data 2 retrieved for getFirstNEvents." );
182+ XCTAssert ([results[2 ][ @" json " ] isEqualToDictionary: testEventData3], @" Invalid result data 3 retrieved for getFirstNEvents." );
183183
184184 // ---- test getAllEntries ----
185185 results = [self .dataStore getAllEvents: OPTLYDataStoreEventTypeImpression error: &error];
186186 XCTAssert ([results count ] == totalEntity, @" Data insertion failed or invalid number of results retrieved from getAllEvents" );
187- XCTAssert ([results[0 ] isEqualToDictionary: testEventData1], @" Invalid result data 1 retrieved for getAllEvents." );
188- XCTAssert ([results[1 ] isEqualToDictionary: testEventData2], @" Invalid result data 2 retrieved for getAllEvents." );
189- XCTAssert ([results[2 ] isEqualToDictionary: testEventData3], @" Invalid result data 3 retrieved for getAllEvents." );
190- XCTAssert ([results[3 ] isEqualToDictionary: testEventData4], @" Invalid result data 4 retrieved for getAllEvents." );
187+ XCTAssert ([results[0 ][ @" json " ] isEqualToDictionary: testEventData1], @" Invalid result data 1 retrieved for getAllEvents." );
188+ XCTAssert ([results[1 ][ @" json " ] isEqualToDictionary: testEventData2], @" Invalid result data 2 retrieved for getAllEvents." );
189+ XCTAssert ([results[2 ][ @" json " ] isEqualToDictionary: testEventData3], @" Invalid result data 3 retrieved for getAllEvents." );
190+ XCTAssert ([results[3 ][ @" json " ] isEqualToDictionary: testEventData4], @" Invalid result data 4 retrieved for getAllEvents." );
191191
192192 // ---- test numberOfEvents ----
193193 NSInteger numberOfEvents = [self .dataStore numberOfEvents: OPTLYDataStoreEventTypeImpression error: &error];
@@ -198,16 +198,16 @@ - (void)testEventsStorage {
198198 results = [self .dataStore getAllEvents: OPTLYDataStoreEventTypeImpression error: &error];
199199 numberOfEvents = [self .dataStore numberOfEvents: OPTLYDataStoreEventTypeImpression error: &error];
200200 XCTAssert (numberOfEvents == totalEntity-1 , @" Invalid event count after removeOldestEvent was called." );
201- XCTAssert ([results[0 ] isEqualToDictionary: testEventData2], @" Invalid result data 1 retrieved after removeOldestEvent was called." );
202- XCTAssert ([results[1 ] isEqualToDictionary: testEventData3], @" Invalid result data 2 retrieved after removeOldestEvent was called." );
203- XCTAssert ([results[2 ] isEqualToDictionary: testEventData4], @" Invalid result data 3 retrieved after removeOldestEvent was called." );
201+ XCTAssert ([results[0 ][ @" json " ] isEqualToDictionary: testEventData2], @" Invalid result data 1 retrieved after removeOldestEvent was called." );
202+ XCTAssert ([results[1 ][ @" json " ] isEqualToDictionary: testEventData3], @" Invalid result data 2 retrieved after removeOldestEvent was called." );
203+ XCTAssert ([results[2 ][ @" json " ] isEqualToDictionary: testEventData4], @" Invalid result data 3 retrieved after removeOldestEvent was called." );
204204
205205 // ---- test removeFirstNEvents ----
206206 NSInteger nEventsToDelete = 2 ;
207207 [self .dataStore removeFirstNEvents: nEventsToDelete eventType: OPTLYDataStoreEventTypeImpression error: &error];
208208 results = [self .dataStore getAllEvents: OPTLYDataStoreEventTypeImpression error: &error];
209209 XCTAssert ([results count ] == totalEntity-1 -nEventsToDelete, @" Invalid event count when removeFirstNEvents was called." );
210- XCTAssert ([results[0 ] isEqualToDictionary: testEventData4], @" Invalid result data 1 retrieved after removeFirstNEvents was called." );
210+ XCTAssert ([results[0 ][ @" json " ] isEqualToDictionary: testEventData4], @" Invalid result data 1 retrieved after removeFirstNEvents was called." );
211211
212212 // ---- test removeAllEvents of an event type ----
213213 [self .dataStore removeAllEvents: OPTLYDataStoreEventTypeImpression error: &error];
@@ -216,7 +216,8 @@ - (void)testEventsStorage {
216216
217217 // ---- test removeEvent ----
218218 [self .dataStore saveEvent: testEventData1 eventType: OPTLYDataStoreEventTypeImpression error: &error];
219- [self .dataStore removeEvent: testEventData1 eventType: OPTLYDataStoreEventTypeImpression error: &error];
219+ NSDictionary *event = [self .dataStore getOldestEvent: OPTLYDataStoreEventTypeImpression error: &error];
220+ [self .dataStore removeEvent: event eventType: OPTLYDataStoreEventTypeImpression error: &error];
220221 results = [self .dataStore getAllEvents: OPTLYDataStoreEventTypeImpression error: &error];
221222 XCTAssert ([results count ] == 0 , @" Invalid impression event count when removeEvent was called." );
222223
@@ -230,6 +231,51 @@ - (void)testEventsStorage {
230231 XCTAssert ([results count ] == 0 , @" Invalid conversion event count when removeSavedEvents was called." );
231232}
232233
234+ - (void )testSingleQuoteStringSaveAndRemove {
235+ NSDictionary *testEventData1 =
236+ @{
237+ @" userFeatures" : @[@{
238+ @" value" : @" ali'`s" ,
239+ @" shouldIndex" : @YES ,
240+ @" name" : @" nameOfPerson" ,
241+ @" type" : @" custom"
242+ }],
243+ @" timestamp" : @1478510071576 ,
244+ @" clientVersion" : @" 0.2.0-debug" ,
245+ @" eventEntityId" : @" 7723870635" ,
246+ @" revision" : @" 7" ,
247+ @" isGlobalHoldback" : @NO ,
248+ @" accountId" : @" 4902200114" ,
249+ @" layerStates" : @[],
250+ @" projectId" : @" 7738070017" ,
251+ @" eventMetrics" : @[@{
252+ @" name" : @" revenue" ,
253+ @" value" : @88
254+ }],
255+ @" visitorId" : @" 1" ,
256+ @" eventName" : @" people" ,
257+ @" clientEngine" : kClientEngine ,
258+ @" eventFeatures" : @[]
259+ };
260+
261+ NSError *error = nil ;
262+
263+ XCTAssertTrue ([self .dataStore saveEvent: testEventData1
264+ eventType: OPTLYDataStoreEventTypeConversion
265+ error: &error]);
266+ XCTAssertNil (error);
267+ NSArray *events = [self .dataStore getAllEvents: OPTLYDataStoreEventTypeConversion error: &error];
268+
269+ XCTAssertNil (error);
270+
271+ NSDictionary *event = [events lastObject ][@" json" ];
272+ XCTAssertTrue ([event isEqual: testEventData1]);
273+ XCTAssertTrue ([self .dataStore removeEvent: [events lastObject ]
274+ eventType: OPTLYDataStoreEventTypeConversion
275+ error: &error]);
276+ XCTAssertNil (error);
277+ }
278+
233279# pragma mark - File Manager Tests
234280
235281- (void )testSaveFile {
0 commit comments