public void BuildAndComposeWillCarryBehaviorsForward() { // Fixture setup var sut = new Fixture(); sut.Behaviors.Clear(); var expectedBuilder = new DelegatingSpecimenBuilder(); sut.Behaviors.Add(new DelegatingSpecimenBuilderTransformation { OnTransform = b => new TaggedNode(1, b) }); // Exercise system var result = sut.Build<object>(); // Verify outcome var comparer = new TaggedNodeComparer(new TrueComparer<ISpecimenBuilder>()); var composite = Assert.IsAssignableFrom<CompositeNodeComposer<object>>(result); Assert.Equal(new TaggedNode(1), composite.Node.First(), comparer); // Teardown }
public void ComposeCorrectlyAppliesBehaviors() { // Fixture setup var sut = new Fixture(); var comparer = new TaggedNodeComparer(new TrueComparer<ISpecimenBuilder>()); sut.Behaviors.Clear(); sut.Behaviors.Add(new DelegatingSpecimenBuilderTransformation { OnTransform = b => new TaggedNode(1, b) }); sut.Behaviors.Add(new DelegatingSpecimenBuilderTransformation { OnTransform = b => comparer.Equals(new TaggedNode(1), b) ? new TaggedNode(2, b) : new TaggedNode(3, b) }); // Exercise system var result = sut.Compose(); // Verify outcome Assert.Equal(new TaggedNode(2), result, comparer); // Teardown }