Ejemplo n.º 1
0
        public void FilterValues()
        {
            var inputValues  = new IInterface1[] { new MyClass1(), new MyClass2(), new MyClass1(), new MyClass2() };
            var outputValues = new List <MyClass1>();
            var obs          = new PushSubject <IInterface1>();
            var filtered     = obs.OfType <MyClass1>();

            filtered.Subscribe(outputValues.Add);

            foreach (var item in inputValues)
            {
                obs.PushValue(item);
            }

            obs.Complete();

            Assert.IsTrue(filtered.ToTaskAsync().Wait(5000), "The filtering should complete");

            var expected = inputValues.Where(i => i is MyClass1).ToList();

            for (int i = 0; i < outputValues.Count; i++)
            {
                Assert.AreSame(expected[i], outputValues[i], "all values should match");
            }
            Assert.AreEqual(expected.Count, outputValues.Count, $"nb items from the output must match the input one");
        }