public void SuccessTest() { var flushes = new List <bool>(); Task <long> Flush(bool flushToDisk) { flushes.Add(flushToDisk); return(Task.FromResult <long>(42)); } using (var listener = new RemoteFlush.Listener(Id("test"), Flush)) { Assert.AreEqual(42, RemoteFlush.FlushAsync(Id("test"), true).Result); Assert.AreEqual(42, RemoteFlush.FlushAsync(Id("test"), false).Result); } CollectionAssert.AreEqual(new bool[] { true, false }, flushes); }
public void FailureTest() { Test().Wait(); async Task Test() { Task <long> Flush(bool flushToDisk) => throw new NotImplementedException(); using (var listener = new RemoteFlush.Listener(Id("test"), Flush)) { try { await RemoteFlush.FlushAsync(Id("test"), true); Assert.Fail("Must throw"); } catch (IOException) { } } } }
public void ManyFlushesOneFileTest() { for (long i = 0; i != 16; ++i) { async Task Flush() { Assert.AreEqual(42, await RemoteFlush.FlushAsync(Id("test"), false)); } using (var listener = new RemoteFlush.Listener(Id("test"), _ => Task.FromResult <long>(42))) { try { Task.WhenAll(Enumerable.Range(0, 2048).Select(_ => Flush())).Wait(); } catch { Environment.Exit(0); } } } }