public void WithNullPostprocessComposerThrows() { // Fixture setup var dummyComposer = new DelegatingComposer <object>(); var sut = new BehaviorComposer <object>(dummyComposer); // Exercise system and verify outcome Assert.Throws <ArgumentNullException>(() => sut.With((IPostprocessComposer <object>)null)); // Teardown }
public void WithPostprocessComposerReturnsResultWithCorrectComposer() { // Fixture setup var dummyComposer = new DelegatingComposer <object>(); var sut = new BehaviorComposer <object>(dummyComposer); IPostprocessComposer <object> expectedComposer = new DelegatingComposer <object>(); // Exercise system var result = sut.With(expectedComposer); // Verify outcome Assert.Equal(expectedComposer, result.Composer); // Teardown }
public void WithPostprocessComposerReturnsResultWithCorrectBehaviors() { // Fixture setup var dummyComposer1 = new DelegatingComposer <object>(); var expectedBehaviors = Enumerable.Range(1, 3) .Select(i => new DelegatingSpecimenBuilderTransformation()) .ToArray(); var sut = new BehaviorComposer <object>(dummyComposer1, expectedBehaviors); // Exercise system IPostprocessComposer <object> 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 BehaviorComposer <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 BehaviorComposer<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 WithPostprocessComposerReturnsResultWithCorrectBehaviors() { // Fixture setup var dummyComposer1 = new DelegatingComposer<object>(); var expectedBehaviors = Enumerable.Range(1, 3) .Select(i => new DelegatingSpecimenBuilderTransformation()) .ToArray(); var sut = new BehaviorComposer<object>(dummyComposer1, expectedBehaviors); // Exercise system IPostprocessComposer<object> dummyComposer2 = new DelegatingComposer<object>(); var result = sut.With(dummyComposer2); // Verify outcome Assert.True(expectedBehaviors.SequenceEqual(result.Behaviors)); // Teardown }
public void WithPostprocessComposerReturnsResultWithCorrectComposer() { // Fixture setup var dummyComposer = new DelegatingComposer<object>(); var sut = new BehaviorComposer<object>(dummyComposer); IPostprocessComposer<object> expectedComposer = new DelegatingComposer<object>(); // Exercise system var result = sut.With(expectedComposer); // Verify outcome Assert.Equal(expectedComposer, result.Composer); // Teardown }
public void WithNullPostprocessComposerThrows() { // Fixture setup var dummyComposer = new DelegatingComposer<object>(); var sut = new BehaviorComposer<object>(dummyComposer); // Exercise system and verify outcome Assert.Throws<ArgumentNullException>(() => sut.With((IPostprocessComposer<object>)null)); // Teardown }