public override IEnumerator <ISpecimenBuilder> GetEnumerator() { using (var enumerator = base.GetEnumerator()) { while (enumerator.MoveNext()) { var value = enumerator.Current; // Replace target method query var mi = value as MethodInvoker; CompositeMethodQuery cmq = mi?.Query as CompositeMethodQuery; if (mi != null && cmq?.Queries.Skip(1).FirstOrDefault() is FactoryMethodQuery) { yield return(new MethodInvoker( new CompositeMethodQuery( new ModestConstructorQuery(), new PatchedFactoryMethodQuery() ) )); } else { yield return(value); } } } }
public void SutIsMethodQuery() { // Arrange // Act var sut = new CompositeMethodQuery(); // Assert Assert.IsAssignableFrom <IMethodQuery>(sut); }
public void SutIsMethodQuery() { // Fixture setup // Exercise system var sut = new CompositeMethodQuery(); // Verify outcome Assert.IsAssignableFrom <IMethodQuery>(sut); // Teardown }
public void QueriesWillNotBeNullWhenSutIsCreatedWithDefaultConstructor() { // Arrange var sut = new CompositeMethodQuery(); // Act IEnumerable <IMethodQuery> result = sut.Queries; // Assert Assert.NotNull(result); }
public void QueriesWillNotBeNullWhenSutIsCreatedWithDefaultConstructor() { // Fixture setup var sut = new CompositeMethodQuery(); // Exercise system IEnumerable <IMethodQuery> result = sut.Queries; // Verify outcome Assert.NotNull(result); // Teardown }
public void QueriesWillNotMatchParamsArray() { // Arrange var expectedQueries = new IMethodQuery[] { new DelegatingMethodQuery(), new DelegatingMethodQuery(), new DelegatingMethodQuery() }; var sut = new CompositeMethodQuery(expectedQueries[0], expectedQueries[2], expectedQueries[1]); // Act var result = sut.Queries; // Assert Assert.False(expectedQueries.SequenceEqual(result)); }
public void QueriesWillMatchListParameter() { // Arrange var expectedQueries = new IMethodQuery[] { new DelegatingMethodQuery(), new DelegatingMethodQuery(), new DelegatingMethodQuery() }.AsEnumerable(); var sut = new CompositeMethodQuery(expectedQueries); // Act var result = sut.Queries; // Assert Assert.True(expectedQueries.SequenceEqual(result)); }
public void QueriesWillNotMatchParamsArray() { // Fixture setup var expectedQueries = new IMethodQuery[] { new DelegatingMethodQuery(), new DelegatingMethodQuery(), new DelegatingMethodQuery() }; var sut = new CompositeMethodQuery(expectedQueries[0], expectedQueries[2], expectedQueries[1]); // Exercise system var result = sut.Queries; // Verify outcome Assert.False(expectedQueries.SequenceEqual(result)); // Teardown }
public void QueriesWillMatchListParameter() { // Fixture setup var expectedQueries = new IMethodQuery[] { new DelegatingMethodQuery(), new DelegatingMethodQuery(), new DelegatingMethodQuery() }.AsEnumerable(); var sut = new CompositeMethodQuery(expectedQueries); // Exercise system var result = sut.Queries; // Verify outcome Assert.True(expectedQueries.SequenceEqual(result)); // Teardown }
public void SelectWillReturnResultsInCorrectSequence(Type type) { // Fixture setup IEnumerable <IMethod> modestConstructors = from ci in type.GetConstructors() let parameters = ci.GetParameters() orderby parameters.Length ascending select new ConstructorMethod(ci) as IMethod; IEnumerable <IMethod> greedyConstructors = from ci in type.GetConstructors() let parameters = ci.GetParameters() orderby parameters.Length descending select new ConstructorMethod(ci) as IMethod; var expectedConstructors = new List <IMethod>(); expectedConstructors.AddRange(modestConstructors); expectedConstructors.AddRange(greedyConstructors); var queries = new IMethodQuery[] { new DelegatingMethodQuery { OnSelectMethods = t => modestConstructors }, new DelegatingMethodQuery { OnSelectMethods = t => greedyConstructors }, new DelegatingMethodQuery() }; var sut = new CompositeMethodQuery(queries); // Exercise system var result = sut.SelectMethods(type); // Verify outcome Assert.True(expectedConstructors.SequenceEqual(result)); // Teardown }