public void TestEventStore() { // Create table SQLiteEventStore eventStore = new SQLiteEventStore(new MobileAnalyticsManagerConfig()); // Insert row string eventString = "TestEventStore-dummy-event-string"; string appId = Guid.NewGuid().ToString(); const int EVENT_COUNT = 100; // Add events for (int i = 0; i < EVENT_COUNT / 2; i++) { eventStore.PutEvent(eventString, appId); } long dbFileSizeSmall = eventStore.DatabaseSize; for (int i = 0; i < EVENT_COUNT / 2; i++) { eventStore.PutEvent(eventString, appId); } long dbFileSizeBigger = eventStore.DatabaseSize; Assert.IsTrue(dbFileSizeBigger > dbFileSizeSmall); Console.WriteLine("The num of events are {0}", eventStore.NumberOfEvents(appId)); Assert.AreEqual(EVENT_COUNT, eventStore.NumberOfEvents(appId)); // Delete EVENT_COUNT / 2 rows List <JsonData> allEventList = eventStore.GetEvents(appId, EVENT_COUNT / 2); List <string> deleteEventsIdList = new List <string>(); foreach (JsonData eventData in allEventList) { deleteEventsIdList.Add(eventData["id"].ToString()); } eventStore.DeleteEvent(deleteEventsIdList); // check row num again Assert.AreEqual(EVENT_COUNT / 2, eventStore.NumberOfEvents(appId)); // insert EVENT_COUNT / 2 rows again for (int i = 0; i < EVENT_COUNT / 2; i++) { eventStore.PutEvent(eventString, appId); } Assert.AreEqual(EVENT_COUNT, eventStore.NumberOfEvents(appId)); // remove all rows allEventList = eventStore.GetEvents(appId, EVENT_COUNT); deleteEventsIdList = new List <string>(); foreach (JsonData eventData in allEventList) { deleteEventsIdList.Add(eventData["id"].ToString()); } eventStore.DeleteEvent(deleteEventsIdList); Assert.AreEqual(0, eventStore.NumberOfEvents(appId)); }
public void Setup() { _path = Path.GetTempFileName(); _connString = string.Format("Data Source={0};", _path); File.Delete(_path); SQLiteEventStore.EnsureDatabaseExists(_connString); _store = new SQLiteEventStore(_connString); }
public void TestRecordEvent() { string appID = TestRunner.StoredSettings.AppId; MobileAnalyticsManager manager = MobileAnalyticsManager.GetOrCreateInstance(appID, CommonTests.Framework.TestRunner.Credentials, RegionEndpoint.USEast1); // sleep a while to make sure event is stored before we delete all event record before now Task.Delay(TimeSpan.FromSeconds(10)).Wait(); SQLiteEventStore eventStore = new SQLiteEventStore(new MobileAnalyticsManagerConfig()); // remove all rows submitted before var allEventList = eventStore.GetEvents(appID, 10000); var deleteEventsIdList = new List <string>(); foreach (JsonData eventData in allEventList) { deleteEventsIdList.Add(eventData["id"].ToString()); } eventStore.DeleteEvent(deleteEventsIdList); Assert.AreEqual(0, eventStore.NumberOfEvents(appID)); try { CustomEvent customEvent = new CustomEvent("TestRecordEvent"); customEvent.AddAttribute("LevelName", "Level5"); customEvent.AddAttribute("Successful", "True"); customEvent.AddMetric("Score", 12345); customEvent.AddMetric("TimeInLevel", 64); manager.RecordEvent(customEvent); MonetizationEvent monetizationEvent = new MonetizationEvent(); monetizationEvent.Quantity = 10.0; monetizationEvent.ItemPrice = 2.00; monetizationEvent.ProductId = "ProductId123"; monetizationEvent.ItemPriceFormatted = "$2.00"; monetizationEvent.Store = "Amazon"; monetizationEvent.TransactionId = "TransactionId123"; monetizationEvent.Currency = "USD"; manager.RecordEvent(monetizationEvent); } catch (Exception e) { Console.WriteLine("Catch exception: " + e.ToString()); Assert.Fail(); } // sleep a while to make sure event is stored Task.Delay(TimeSpan.FromSeconds(10)).Wait(); // Event store should have one custom event, one monetization event long num = eventStore.NumberOfEvents(appID); Assert.AreEqual(2, eventStore.NumberOfEvents(appID)); }
public void Setup() { _path = Path.GetTempFileName(); _connString = string.Format("Data Source={0};", _path); File.Delete(_path); SQLiteEventStore.EnsureDatabaseExists(_connString); _connection = new SQLiteConnection(_connString); _connection.Open(); _transaction = _connection.BeginTransaction(); _context = new ManualSQLiteContext(); _context.SetContext(_connection, _transaction); _store = new SQLiteEventStore(_context); }
public void TestRecordEvent() { // Need to make sure that background runner does not attempt to deliver events during // test (and consequently delete them from local storage). Restart Background runner // and sleep until after it checks for events to send. BackgroundRunner.AbortBackgroundThread(); System.Reflection.FieldInfo fieldInfo = typeof(MobileAnalyticsManager).GetField("_backgroundRunner", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static); BackgroundRunner backgroundRunner = fieldInfo.GetValue(null) as BackgroundRunner; backgroundRunner.StartWork(); Thread.Sleep(1000); string appID = Guid.NewGuid().ToString(); MobileAnalyticsManager manager = MobileAnalyticsManager.GetOrCreateInstance(appID, TestRunner.Credentials, RegionEndpoint.USEast1); SQLiteEventStore eventStore = new SQLiteEventStore(new MobileAnalyticsManagerConfig()); try { CustomEvent customEvent = new CustomEvent("TestRecordEvent"); customEvent.AddAttribute("LevelName", "Level5"); customEvent.AddAttribute("Successful", "True"); customEvent.AddMetric("Score", 12345); customEvent.AddMetric("TimeInLevel", 64); manager.RecordEvent(customEvent); MonetizationEvent monetizationEvent = new MonetizationEvent(); monetizationEvent.Quantity = 10.0; monetizationEvent.ItemPrice = 2.00; monetizationEvent.ProductId = "ProductId123"; monetizationEvent.ItemPriceFormatted = "$2.00"; monetizationEvent.Store = "Amazon"; monetizationEvent.TransactionId = "TransactionId123"; monetizationEvent.Currency = "USD"; manager.RecordEvent(monetizationEvent); } catch (Exception e) { Console.WriteLine("Catch exception: " + e.ToString()); Assert.Fail(); } // sleep a while to make sure event is stored Thread.Sleep(TimeSpan.FromSeconds(1)); // Event store should have one custom event, one monetization event and one session start event. Assert.AreEqual(3, eventStore.NumberOfEvents(appID)); eventStore.Dispose(); }
public SQLiteEventStoreFactory() { var directoryName = Path.GetDirectoryName(_databasePath); if (!Directory.Exists(directoryName)) { Directory.CreateDirectory(directoryName); } if (File.Exists(_databasePath)) { File.Delete(_databasePath); } _eventStore = new SQLiteEventStore(_databasePath); }
public void TestRecordEvent() { string appID = Guid.NewGuid().ToString(); MobileAnalyticsManager manager = MobileAnalyticsManager.GetOrCreateInstance(appID, CommonTests.Framework.TestRunner.Credentials, RegionEndpoint.USEast1); SQLiteEventStore eventStore = new SQLiteEventStore(new MobileAnalyticsManagerConfig()); try { CustomEvent customEvent = new CustomEvent("TestRecordEvent"); customEvent.AddAttribute("LevelName", "Level5"); customEvent.AddAttribute("Successful", "True"); customEvent.AddMetric("Score", 12345); customEvent.AddMetric("TimeInLevel", 64); manager.RecordEvent(customEvent); MonetizationEvent monetizationEvent = new MonetizationEvent(); monetizationEvent.Quantity = 10.0; monetizationEvent.ItemPrice = 2.00; monetizationEvent.ProductId = "ProductId123"; monetizationEvent.ItemPriceFormatted = "$2.00"; monetizationEvent.Store = "Amazon"; monetizationEvent.TransactionId = "TransactionId123"; monetizationEvent.Currency = "USD"; manager.RecordEvent(monetizationEvent); } catch (Exception e) { Console.WriteLine("Catch exception: " + e.ToString()); Assert.Fail(); } // sleep a while to make sure event is stored Task.Delay(TimeSpan.FromSeconds(1)).Wait(); // Event store should have one custom event, one monetization event and one session start event. Assert.AreEqual(3, eventStore.NumberOfEvents(appID)); }