Пример #1
0
        public void Should_be_able_to_cast()
        {
            var observer1 = new Mock <IObserver <Data> >();
            var observer2 = new Mock <IObserver <ExtendedData> >();

            UnitUnderTest.Cast <Data, Data>().Subscribe(observer1.Object);
            UnitUnderTest.Cast <Data, ExtendedData>().Subscribe(observer2.Object);

            UnitUnderTest.Emit(new ExtendedData {
                Value = 1, OtherValue = 2
            });

            observer1.Verify(f => f.OnNext(It.IsAny <Data>()), Times.Exactly(1));
            observer1.Verify(f => f.OnNext(It.Is <Data>(d => d.Value == 1)), Times.Once);

            observer2.Verify(f => f.OnNext(It.IsAny <ExtendedData>()), Times.Exactly(1));
            observer2.Verify(f => f.OnNext(It.Is <ExtendedData>(d => d.Value == 1 && d.OtherValue == 2)), Times.Once);
        }