public void WhenAnyChainingShouldReportChanges()
        {
            var fixture = new TestView();

            var output = new List <string>();

            fixture.WhenAnyDP(x => x.ViewModel, x => x.Value)
            .Where(x => x != null)
            .Select(x => x.WhenAny(y => y.SomeProperty, y => y.Value)).Switch()
            .Subscribe(output.Add);

            Assert.Equal(0, output.Count);

            fixture.ViewModel = new TestViewModel()
            {
                SomeProperty = "Foo",
            };
            Assert.Equal(1, output.Count);

            fixture.ViewModel.SomeProperty = "Bar";
            Assert.Equal(2, output.Count);
        }