public void WithoutReturnsCorrectResult()
        {
            // Fixture setup
            Expression <Func <PropertyHolder <object>, object> > expectedExpression = x => x.Property;
            var expectedComposers = Enumerable.Range(1, 3).Select(i => new DelegatingComposer <PropertyHolder <object> >()).ToArray();
            var initialComposers  = (from c in expectedComposers
                                     select new DelegatingComposer <PropertyHolder <object> >
            {
                OnWithout = f => f == expectedExpression ? c : new DelegatingComposer <PropertyHolder <object> >()
            }).ToArray();
            var sut = new CompositeComposer <PropertyHolder <object> >(initialComposers);
            // Exercise system
            var result = sut.Without(expectedExpression);
            // Verify outcome
            var composite = Assert.IsAssignableFrom <CompositePostprocessComposer <PropertyHolder <object> > >(result);

            Assert.True(expectedComposers.SequenceEqual(composite.Composers));
            // Teardown
        }
 public void WithoutReturnsCorrectResult()
 {
     // Fixture setup
     Expression<Func<PropertyHolder<object>, object>> expectedExpression = x => x.Property;
     var expectedComposers = Enumerable.Range(1, 3).Select(i => new DelegatingComposer<PropertyHolder<object>>()).ToArray();
     var initialComposers = (from c in expectedComposers
                             select new DelegatingComposer<PropertyHolder<object>>
                             {
                                 OnWithout = f => f == expectedExpression ? c : new DelegatingComposer<PropertyHolder<object>>()
                             }).ToArray();
     var sut = new CompositeComposer<PropertyHolder<object>>(initialComposers);
     // Exercise system
     var result = sut.Without(expectedExpression);
     // Verify outcome
     var composite = Assert.IsAssignableFrom<CompositePostprocessComposer<PropertyHolder<object>>>(result);
     Assert.True(expectedComposers.SequenceEqual(composite.Composers));
     // Teardown
 }