public async void OnChangeGetAsync() { var expected = new Todo { name = "Execute PUSH4GET1", priority = 2 }; var changes = 0; var observer = _client.OnChangeGetAsync <Todo>("fakepath/OnGetAsync/", (events, arg) => { Interlocked.Increment(ref changes); Assert.NotNull(arg); Assert.AreEqual(expected.name, arg.name); }); await _client.SetAsync("fakepath/OnGetAsync/", expected); await Task.Delay(2000); await _client.SetAsync("fakepath/OnGetAsync", new Todo { name = "PUSH4GET1", priority = 2 }); await Task.Delay(2000); try { if (changes == 3) { Assert.Inconclusive(); } Assert.AreEqual(2, changes); } finally { observer.Result.Cancel(); } }
public async void OnChangeGetAsync() { var expected = new Todo { name = "Execute PUSH4GET1", priority = 2 }; var changes = 0; var observer = _client.OnChangeGetAsync <Todo>("fakepath/OnGetAsync/", (events, arg) => { Interlocked.Increment(ref changes); Assert.NotNull(arg); Assert.AreEqual(expected.name, arg.name); }); await _client.SetAsync("fakepath/OnGetAsync/", expected); Thread.Sleep(4000); await _client.SetAsync("fakepath/OnGetAsync/name", "PUSH4GET1"); Thread.Sleep(4000); Assert.AreEqual(2, changes); observer.Result.Cancel(); }
public Task <EventRootResponse <T> > OnChange <T>(string path, ValueRootAddedEventHandler <T> added = null) { return(_firebaseClient.OnChangeGetAsync(path, added)); }