public void WithNullComposerThrows()
        {
            // Fixture setup
            var dummyComposer = new DelegatingComposer <object>();
            var sut           = new BehaviorPostprocessComposer <object>(dummyComposer);

            // Exercise system and verify outcome
            Assert.Throws <ArgumentNullException>(() =>
                                                  sut.With(null));
            // Teardown
        }
        public void WithReturnsResultWithCorrectComposer()
        {
            // Fixture setup
            var dummyComposer    = new DelegatingComposer <object>();
            var sut              = new BehaviorPostprocessComposer <object>(dummyComposer);
            var expectedComposer = new DelegatingComposer <object>();
            // Exercise system
            var result = sut.With(expectedComposer);

            // Verify outcome
            Assert.Equal(expectedComposer, result.Composer);
            // Teardown
        }
        public void WithReturnsResultWithCorrectBehaviors()
        {
            // Fixture setup
            var dummyComposer1    = new DelegatingComposer <object>();
            var expectedBehaviors = Enumerable.Range(1, 3)
                                    .Select(i => new DelegatingSpecimenBuilderTransformation())
                                    .ToArray();
            var sut = new BehaviorPostprocessComposer <object>(dummyComposer1, expectedBehaviors);
            // Exercise system
            var dummyComposer2 = new DelegatingComposer <object>();
            var result         = sut.With(dummyComposer2);

            // Verify outcome
            Assert.True(expectedBehaviors.SequenceEqual(result.Behaviors));
            // Teardown
        }
        public void AnonymousWithReturnsCorrectResult()
        {
            // Fixture setup
            Expression <Func <PropertyHolder <object>, object> > expectedExpression = x => x.Property;
            var expectedComposer = new DelegatingComposer <PropertyHolder <object> >();
            var composer         = new DelegatingComposer <PropertyHolder <object> >
            {
                OnAnonymousWith = f => f == expectedExpression ? expectedComposer : new DelegatingComposer <PropertyHolder <object> >()
            };

            var sut = new BehaviorPostprocessComposer <PropertyHolder <object> >(composer);
            // Exercise system
            var result = sut.With(expectedExpression);
            // Verify outcome
            var behaviorComposer = Assert.IsAssignableFrom <BehaviorPostprocessComposer <PropertyHolder <object> > >(result);

            Assert.Equal(expectedComposer, behaviorComposer.Composer);
            // Teardown
        }
        public void WithReturnsCorrectResult()
        {
            // Fixture setup
            Expression<Func<PropertyHolder<object>, object>> expectedExpression = x => x.Property;
            var value = new object();

            var expectedComposer = new DelegatingComposer<PropertyHolder<object>>();
            var composer = new DelegatingComposer<PropertyHolder<object>>
            {
                OnWith = (f, v) => f == expectedExpression && v == value ? expectedComposer : new DelegatingComposer<PropertyHolder<object>>()
            };

            var sut = new BehaviorPostprocessComposer<PropertyHolder<object>>(composer);
            // Exercise system
            var result = sut.With(expectedExpression, value);
            // Verify outcome
            var behaviorComposer = Assert.IsAssignableFrom<BehaviorPostprocessComposer<PropertyHolder<object>>>(result);
            Assert.Equal(expectedComposer, behaviorComposer.Composer);
            // Teardown
        }
 public void WithReturnsResultWithCorrectBehaviors()
 {
     // Fixture setup
     var dummyComposer1 = new DelegatingComposer<object>();
     var expectedBehaviors = Enumerable.Range(1, 3)
         .Select(i => new DelegatingSpecimenBuilderTransformation())
         .ToArray();
     var sut = new BehaviorPostprocessComposer<object>(dummyComposer1, expectedBehaviors);
     // Exercise system
     var dummyComposer2 = new DelegatingComposer<object>();
     var result = sut.With(dummyComposer2);
     // Verify outcome
     Assert.True(expectedBehaviors.SequenceEqual(result.Behaviors));
     // Teardown
 }
 public void WithReturnsResultWithCorrectComposer()
 {
     // Fixture setup
     var dummyComposer = new DelegatingComposer<object>();
     var sut = new BehaviorPostprocessComposer<object>(dummyComposer);
     var expectedComposer = new DelegatingComposer<object>();
     // Exercise system
     var result = sut.With(expectedComposer);
     // Verify outcome
     Assert.Equal(expectedComposer, result.Composer);
     // Teardown
 }
 public void WithNullComposerThrows()
 {
     // Fixture setup
     var dummyComposer = new DelegatingComposer<object>();
     var sut = new BehaviorPostprocessComposer<object>(dummyComposer);
     // Exercise system and verify outcome
     Assert.Throws<ArgumentNullException>(() =>
         sut.With(null));
     // Teardown
 }