public void CreateTypedNodeReturnsCorrectResult(Type targetType) { // Fixture setup var factory = new DelegatingSpecimenBuilder(); // Exercise system FilteringSpecimenBuilder actual = SpecimenBuilderNodeFactory.CreateTypedNode( targetType, factory); // Verify outcome var expected = new FilteringSpecimenBuilder( new CompositeSpecimenBuilder( new NoSpecimenOutputGuard( factory, new InverseRequestSpecification( new SeedRequestSpecification( targetType))), new SeedIgnoringRelay()), new OrRequestSpecification( new SeedRequestSpecification(targetType), new ExactTypeSpecification(targetType))); Assert.True(expected.GraphEquals(actual, new NodeComparer())); // Teardown }
internal static FilteringSpecimenBuilder ShouldContain(this FilteringSpecimenBuilder filter, Func <ISpecimenBuilder, bool> predicate) { var composite = Assert.IsAssignableFrom <CompositeSpecimenBuilder>(filter.Builder); Assert.Contains(composite, c => predicate(c)); return(filter); }
public void SutIsNode() { // Arrange var dummyBuilder = new DelegatingSpecimenBuilder(); var dummySpecification = new DelegatingRequestSpecification(); // Act var sut = new FilteringSpecimenBuilder(dummyBuilder, dummySpecification); // Assert Assert.IsAssignableFrom <ISpecimenBuilderNode>(sut); }
public void BuilderIsCorrect() { // Arrange var expectedBuilder = new DelegatingSpecimenBuilder(); var dummySpecification = new DelegatingRequestSpecification(); var sut = new FilteringSpecimenBuilder(expectedBuilder, dummySpecification); // Act ISpecimenBuilder result = sut.Builder; // Assert Assert.Equal(expectedBuilder, result); }
public void SutIsNode() { // Fixture setup var dummyBuilder = new DelegatingSpecimenBuilder(); var dummySpecification = new DelegatingRequestSpecification(); // Exercise system var sut = new FilteringSpecimenBuilder(dummyBuilder, dummySpecification); // Verify outcome Assert.IsAssignableFrom <ISpecimenBuilderNode>(sut); // Teardown }
public void SutYieldsDecoratedBuilder() { // Arrange var expected = new DelegatingSpecimenBuilder(); var dummySpecification = new DelegatingRequestSpecification(); // Act var sut = new FilteringSpecimenBuilder(expected, dummySpecification); // Assert Assert.True(new[] { expected }.SequenceEqual(sut)); Assert.True(new object[] { expected }.SequenceEqual(((System.Collections.IEnumerable)sut).Cast <object>())); }
public void SpecificationIsCorrect() { // Arrange var dummyBuilder = new DelegatingSpecimenBuilder(); var expectedSpecification = new DelegatingRequestSpecification(); var sut = new FilteringSpecimenBuilder(dummyBuilder, expectedSpecification); // Act IRequestSpecification result = sut.Specification; // Assert Assert.Equal(expectedSpecification, result); }
public void ComposePreservesSpecification() { // Arrange var dummyBuilder = new DelegatingSpecimenBuilder(); var expected = new DelegatingRequestSpecification(); var sut = new FilteringSpecimenBuilder(dummyBuilder, expected); // Act var actual = sut.Compose(new ISpecimenBuilder[0]); // Assert var f = Assert.IsAssignableFrom <FilteringSpecimenBuilder>(actual); Assert.Equal(expected, f.Specification); }
public void SutYieldsDecoratedBuilder() { // Fixture setup var expected = new DelegatingSpecimenBuilder(); var dummySpecification = new DelegatingRequestSpecification(); // Exercise system var sut = new FilteringSpecimenBuilder(expected, dummySpecification); // Verify outcome Assert.True(new[] { expected }.SequenceEqual(sut)); Assert.True(new object[] { expected }.SequenceEqual(((System.Collections.IEnumerable)sut).Cast <object>())); // Teardown }
public void SpecificationIsCorrect() { // Fixture setup var dummyBuilder = new DelegatingSpecimenBuilder(); var expectedSpecification = new DelegatingRequestSpecification(); var sut = new FilteringSpecimenBuilder(dummyBuilder, expectedSpecification); // Exercise system IRequestSpecification result = sut.Specification; // Verify outcome Assert.Equal(expectedSpecification, result); // Teardown }
public void ComposePreservesSpecification() { // Fixture setup var dummyBuilder = new DelegatingSpecimenBuilder(); var expected = new DelegatingRequestSpecification(); var sut = new FilteringSpecimenBuilder(dummyBuilder, expected); // Exercise system var actual = sut.Compose(new ISpecimenBuilder[0]); // Verify outcome var f = Assert.IsAssignableFrom <FilteringSpecimenBuilder>(actual); Assert.Equal(expected, f.Specification); // Teardown }
internal static FilteringSpecimenBuilder ShouldSpecify <T>(this FilteringSpecimenBuilder filter) { var orSpec = Assert.IsAssignableFrom <OrRequestSpecification>(filter.Specification); var seedSpec = Assert.IsAssignableFrom <SeedRequestSpecification>(orSpec.Specifications.First()); Assert.Equal(typeof(T), seedSpec.TargetType); var typeSpec = Assert.IsAssignableFrom <ExactTypeSpecification>(orSpec.Specifications.Skip(1).First()); Assert.Equal(typeof(T), typeSpec.TargetType); return(filter); }
public void ComposeSingleItemReturnsCorrectResult() { // Arrange var dummyBuilder = new DelegatingSpecimenBuilder(); var dummySpecification = new DelegatingRequestSpecification(); var sut = new FilteringSpecimenBuilder(dummyBuilder, dummySpecification); // Act var expected = new DelegatingSpecimenBuilder(); var actual = sut.Compose(new[] { expected }); // Assert var f = Assert.IsAssignableFrom <FilteringSpecimenBuilder>(actual); Assert.Equal(expected, f.Builder); }
public void ComposeSingleItemReturnsCorrectResult() { // Fixture setup var dummyBuilder = new DelegatingSpecimenBuilder(); var dummySpecification = new DelegatingRequestSpecification(); var sut = new FilteringSpecimenBuilder(dummyBuilder, dummySpecification); // Exercise system var expected = new DelegatingSpecimenBuilder(); var actual = sut.Compose(new[] { expected }); // Verify outcome var f = Assert.IsAssignableFrom <FilteringSpecimenBuilder>(actual); Assert.Equal(expected, f.Builder); // Teardown }
public void CreateReturnsCorrectResultWhenSpecificationIsNotSatisfied() { // Arrange var spec = new DelegatingRequestSpecification { OnIsSatisfiedBy = r => false }; var dummyBuilder = new DelegatingSpecimenBuilder(); var sut = new FilteringSpecimenBuilder(dummyBuilder, spec); var request = new object(); // Act var dummyContainer = new DelegatingSpecimenContext(); var result = sut.Create(request, dummyContainer); // Assert var expectedResult = new NoSpecimen(); Assert.Equal(expectedResult, result); }
public void CreateReturnsCorrectResultWhenSpecificationIsNotSatisfied() { // Fixture setup var spec = new DelegatingRequestSpecification { OnIsSatisfiedBy = r => false }; var dummyBuilder = new DelegatingSpecimenBuilder(); var sut = new FilteringSpecimenBuilder(dummyBuilder, spec); var request = new object(); // Exercise system var dummyContainer = new DelegatingSpecimenContext(); var result = sut.Create(request, dummyContainer); // Verify outcome var expectedResult = new NoSpecimen(request); Assert.Equal(expectedResult, result); // Teardown }
public void SpecificationReceivesCorrectRequest() { // Arrange var expectedRequest = new object(); var verified = false; var specMock = new DelegatingRequestSpecification { OnIsSatisfiedBy = r => verified = expectedRequest == r }; var dummyBuilder = new DelegatingSpecimenBuilder(); var sut = new FilteringSpecimenBuilder(dummyBuilder, specMock); // Act var dummyContainer = new DelegatingSpecimenContext(); sut.Create(expectedRequest, dummyContainer); // Assert Assert.True(verified, "Mock verified"); }
public void CreatePassesCorrectParametersToDecoratedBuilder() { // Arrange var expectedRequest = new object(); var expectedContainer = new DelegatingSpecimenContext(); var verified = false; var builderMock = new DelegatingSpecimenBuilder { OnCreate = (r, c) => verified = r == expectedRequest && c == expectedContainer }; var spec = new DelegatingRequestSpecification { OnIsSatisfiedBy = r => true }; var sut = new FilteringSpecimenBuilder(builderMock, spec); // Act sut.Create(expectedRequest, expectedContainer); // Assert Assert.True(verified, "Mock verified"); }
public void SpecificationReceivesCorrectRequest() { // Fixture setup var expectedRequest = new object(); var verified = false; var specMock = new DelegatingRequestSpecification { OnIsSatisfiedBy = r => verified = expectedRequest == r }; var dummyBuilder = new DelegatingSpecimenBuilder(); var sut = new FilteringSpecimenBuilder(dummyBuilder, specMock); // Exercise system var dummyContainer = new DelegatingSpecimenContext(); sut.Create(expectedRequest, dummyContainer); // Verify outcome Assert.True(verified, "Mock verified"); // Teardown }
public void CreateReturnsCorrectResultWhenFilterAllowsRequestThrough() { // Arrange var expectedResult = new object(); var spec = new DelegatingRequestSpecification { OnIsSatisfiedBy = r => true }; var builder = new DelegatingSpecimenBuilder { OnCreate = (r, c) => expectedResult }; var sut = new FilteringSpecimenBuilder(builder, spec); // Act var dummyRequest = new object(); var dummyContainer = new DelegatingSpecimenContext(); var result = sut.Create(dummyRequest, dummyContainer); // Assert Assert.Equal(expectedResult, result); }
public void ComposeReturnsCorrectResult() { // Arrange var dummyBuilder = new DelegatingSpecimenBuilder(); var dummySpecification = new DelegatingRequestSpecification(); var sut = new FilteringSpecimenBuilder(dummyBuilder, dummySpecification); // Act var expectedBuilders = new[] { new DelegatingSpecimenBuilder(), new DelegatingSpecimenBuilder(), new DelegatingSpecimenBuilder() }; var actual = sut.Compose(expectedBuilders); // Assert var f = Assert.IsAssignableFrom <FilteringSpecimenBuilder>(actual); var composite = Assert.IsAssignableFrom <CompositeSpecimenBuilder>(f.Builder); Assert.True(expectedBuilders.SequenceEqual(composite)); }
public void CreatePassesCorrectParametersToDecoratedBuilder() { // Fixture setup var expectedRequest = new object(); var expectedContainer = new DelegatingSpecimenContext(); var verified = false; var builderMock = new DelegatingSpecimenBuilder { OnCreate = (r, c) => verified = r == expectedRequest && c == expectedContainer }; var spec = new DelegatingRequestSpecification { OnIsSatisfiedBy = r => true }; var sut = new FilteringSpecimenBuilder(builderMock, spec); // Exercise system sut.Create(expectedRequest, expectedContainer); // Verify outcome Assert.True(verified, "Mock verified"); // Teardown }
public void CreateReturnsCorrectResultWhenFilterAllowsRequestThrough() { // Fixture setup var expectedResult = new object(); var spec = new DelegatingRequestSpecification { OnIsSatisfiedBy = r => true }; var builder = new DelegatingSpecimenBuilder { OnCreate = (r, c) => expectedResult }; var sut = new FilteringSpecimenBuilder(builder, spec); // Exercise system var dummyRequest = new object(); var dummyContainer = new DelegatingSpecimenContext(); var result = sut.Create(dummyRequest, dummyContainer); // Verify outcome Assert.Equal(expectedResult, result); // Teardown }
public void ComposeReturnsCorrectResult() { // Fixture setup var dummyBuilder = new DelegatingSpecimenBuilder(); var dummySpecification = new DelegatingRequestSpecification(); var sut = new FilteringSpecimenBuilder(dummyBuilder, dummySpecification); // Exercise system var expectedBuilders = new[] { new DelegatingSpecimenBuilder(), new DelegatingSpecimenBuilder(), new DelegatingSpecimenBuilder() }; var actual = sut.Compose(expectedBuilders); // Verify outcome var f = Assert.IsAssignableFrom <FilteringSpecimenBuilder>(actual); var composite = Assert.IsAssignableFrom <CompositeSpecimenBuilder>(f.Builder); Assert.True(expectedBuilders.SequenceEqual(composite)); // Teardown }