Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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) {
                    }
                }
            }
        }
Ejemplo n.º 3
0
        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);
                    }
                }
            }
        }