public async Task FlushHistoryTest() { StorageServiceExtend sse = (StorageServiceExtend) ServiceManager.StorageService; MockStorage mockStorage = new MockStorage(); sse.SetStorage(mockStorage); mockStorage.UndeliveredActions = new List<HistoryAction> {new HistoryAction()}; mockStorage.UndeliveredEvents = new List<HistoryEvent> {new HistoryEvent()}; MockApiConnection connection = (MockApiConnection) ServiceManager.ApiConnction; IStorageService service = ServiceManager.StorageService; connection.FailNetwork = true; Assert.IsFalse(await service.FlushHistory(), "Flushing History not failed"); connection.FailNetwork = false; Assert.IsTrue(mockStorage.UndeliveredEvents.Count != 0, "Event were resetet"); Assert.IsTrue(mockStorage.UndeliveredActions.Count != 0, "Actions were resetet"); Assert.IsTrue(await service.FlushHistory(), "Flushing History not succeed"); Assert.IsTrue(mockStorage.UndeliveredEvents.Count == 0, "Event were not marked as send"); Assert.IsTrue(mockStorage.UndeliveredActions.Count == 0, "Actions were not marked as send"); }
public async Task TestSilentCampaign() { ((MockApiConnection) ServiceManager.ApiConnction).LayoutFile = "mock/mock_silent_layout.json"; ServiceManager.ReadOnlyForTests = false; MockStorage storage = new MockStorage(); ServiceManager.StorageService = new StorageService() {Storage = storage}; ServiceManager.ReadOnlyForTests = true; SdkEngine engine = new SdkEngine(false); await engine.InitializeAsync(); TaskCompletionSource<bool> action = new TaskCompletionSource<bool>(); engine.BeaconActionResolved += (sender, args) => { action.SetResult(true); }; await engine.ResolveBeaconAction(new BeaconEventArgs() { Beacon = new Beacon() {Id1 = "7367672374000000ffff0000ffff4321", Id2 = 39178, Id3 = 30929}, EventType = BeaconEventType.Enter }); if (await Task.WhenAny(action.Task, Task.Delay(500)) == action.Task) { Assert.Fail("no action should fired"); } else { Assert.AreEqual(1, storage.UndeliveredActions.Count, "Not 1 undlivered action"); Assert.AreEqual(1, storage.UndeliveredEvents.Count, "Not 1 undlivered event"); } }