public void CreateFromTypeWhenParentCanGenerateBothParametersWillReturnCorrectResult() { // Fixture setup var expectedParameterValues = new object[] { 1, 2m }; var parameterQueue = new Queue<object>(expectedParameterValues); var requestedType = typeof(DoubleParameterType<int, decimal>); var parameters = requestedType.GetConstructors().Single().GetParameters(); var container = new DelegatingSpecimenContext(); container.OnResolve = r => { if (parameters.Any(r.Equals)) { return parameterQueue.Dequeue(); } return null; }; var sut = new MethodInvoker(new ModestConstructorQuery()); // Exercise system var result = sut.Create(requestedType, container); // Verify outcome var actual = (DoubleParameterType<int, decimal>)result; Assert.Equal(expectedParameterValues[0], actual.Parameter1); Assert.Equal(expectedParameterValues[1], actual.Parameter2); // Teardown }
public void ExecuteNullSpecimenThrows() { var sut = new DictionaryFiller(); var dummyContext = new DelegatingSpecimenContext(); Assert.Throws<ArgumentNullException>(() => sut.Execute(null, dummyContext)); }
public static IEnumerable<ITestCase> CreateWithInvalidRequestReturnsNoSpecimen() { var invalidRequests = new[] { null, new object(), string.Empty, 123, typeof(int), typeof(object[]), typeof(string[][]) }; return invalidRequests.Select(r => new TestCase(() => { var sut = new MultidimensionalArrayRelay(); var dummyContext = new DelegatingSpecimenContext(); #pragma warning disable 618 var expected = new NoSpecimen(r); #pragma warning restore 618 var actual = sut.Create(r, dummyContext); Assert.Equal(expected, actual); })); }
public void CreateWillReturnCorrectResult() { // Fixture setup var expectedSpecimen = new object(); var param1 = new { ExpectedRequest = typeof(decimal), Specimen = (object)1m }; var param2 = new { ExpectedRequest = typeof(TimeSpan), Specimen = (object)TimeSpan.FromDays(1) }; var subRequests = new[] { param1, param2 }; var container = new DelegatingSpecimenContext(); container.OnResolve = r => (from x in subRequests where x.ExpectedRequest.Equals(r) #pragma warning disable 618 select x.Specimen).DefaultIfEmpty(new NoSpecimen(r)).SingleOrDefault(); #pragma warning restore 618 Func<decimal, TimeSpan, object> f = (d, ts) => param1.Specimen.Equals(d) && param2.Specimen.Equals(ts) ? expectedSpecimen : new NoSpecimen(); var sut = new SpecimenFactory<decimal, TimeSpan, object>(f); // Exercise system var dummyRequest = new object(); var result = sut.Create(dummyRequest, container); // Verify outcome Assert.Equal(expectedSpecimen, result); // Teardown }
public void CreateWillReturnCorrectResult() { // Fixture setup var expectedSpecimen = new object(); var param1 = new { ExpectedRequest = typeof(decimal), Specimen = (object)1m }; var param2 = new { ExpectedRequest = typeof(TimeSpan), Specimen = (object)TimeSpan.FromDays(1) }; var param3 = new { ExpectedRequest = typeof(string), Specimen = (object)"Anonymous value - with Foo!" }; var param4 = new { ExpectedRequest = typeof(int), Specimen = (object)7 }; var subRequests = new[] { param1, param2, param3, param4 }; var container = new DelegatingSpecimenContext(); container.OnResolve = r => (from x in subRequests where x.ExpectedRequest.Equals(r) select x.Specimen).DefaultIfEmpty(new NoSpecimen(r)).SingleOrDefault(); Func<decimal, TimeSpan, string, int, object> f = (d, ts, s, i) => param1.Specimen.Equals(d) && param2.Specimen.Equals(ts) && param3.Specimen.Equals(s) && param4.Specimen.Equals(i) ? expectedSpecimen : new NoSpecimen(); var sut = new SpecimenFactory<decimal, TimeSpan, string, int, object>(f); // Exercise system var dummyRequest = new object(); var result = sut.Create(dummyRequest, container); // Verify outcome Assert.Equal(expectedSpecimen, result); // Teardown }
public void CreateWithMailAddressRequestReturnsCorrectResultUsingLocalPartAndDomainNameFromContext() { // Fixture setup var request = typeof(MailAddress); var expectedLocalPart = new EmailAddressLocalPart(Guid.NewGuid().ToString()); var expectedDomainName = new DomainName(Guid.NewGuid().ToString()); var context = new DelegatingSpecimenContext() { OnResolve = r => { Assert.True(typeof(EmailAddressLocalPart).Equals(r) || typeof(DomainName).Equals(r)); if (typeof(EmailAddressLocalPart).Equals(r)) { return expectedLocalPart; } else { return expectedDomainName; } } }; var sut = new MailAddressGenerator(); // Exercise system var result = (MailAddress)sut.Create(request, context); // Verify outcome Assert.Equal(expectedLocalPart.LocalPart, result.User); Assert.Equal(expectedDomainName.Domain, result.Host); // Teardown }
public void ExecutesEveryChildCommandWithCorrectSpecimen() { // Fixture setup var specimen = new object(); var dummyContext = new DelegatingSpecimenContext(); var command1Verified = false; var command1 = new DelegatingSpecimenCommand { OnExecute = (req, ctx) => { command1Verified = true; Assert.Same(specimen, req); } }; var command2Verified = false; var command2 = new DelegatingSpecimenCommand { OnExecute = (req, ctx) => { command2Verified = true; Assert.Same(specimen, req); } }; var sut = new CompositeSpecimenCommand(command1, command2); // Exercise system sut.Execute(specimen, dummyContext); // Verify outcome Assert.True(command1Verified); Assert.True(command2Verified); // Teardown }
public void CreateFromMultipleRequestReturnsCorrectResult( Type itemType, int arrayLength) { // Fixture setup var sut = new MultipleToEnumerableRelay(); var context = new DelegatingSpecimenContext { OnResolve = r => { Assert.Equal( typeof(IEnumerable<>).MakeGenericType(itemType), r); return Array.CreateInstance((Type)itemType, arrayLength); } }; // Exercise system var request = new MultipleRequest(itemType); var actual = sut.Create(request, context); // Verify outcome Assert.IsAssignableFrom( typeof(IEnumerable<>).MakeGenericType(itemType), actual); var enumerable = Assert.IsAssignableFrom<System.Collections.IEnumerable>(actual); Assert.Equal(arrayLength, enumerable.Cast<object>().Count()); // Teardown }
public void CreateWithEnumerableParameterReturnsCorrectResult( Type argumentType) { var parameterInfo = typeof(SingleParameterType<>) .MakeGenericType(new[] { argumentType }) .GetConstructors() .First() .GetParameters() .First(); var expected = new object(); var context = new DelegatingSpecimenContext { OnResolve = r => { Assert.Equal( new SeededRequest( parameterInfo.ParameterType, parameterInfo.Name), r); return expected; } }; var sut = new OmitArrayParameterRequestRelay(); var actual = sut.Create(parameterInfo, context); Assert.Equal(expected, actual); }
public void AddManyToNonDictionaryThrows(object specimen) { // Fixture setup var dummyContext = new DelegatingSpecimenContext(); // Exercise system and verify outcome Assert.Throws<ArgumentException>(() => DictionaryFiller.AddMany(specimen, dummyContext)); // Teardown }
public void ExecuteWithNullSpecimenThrows() { // Fixture setup var sut = new AutoPropertiesCommand<object>(); var dummyContainer = new DelegatingSpecimenContext(); // Exercise system and verify outcome Assert.Throws<ArgumentNullException>(() => sut.Execute(null, dummyContainer)); // Teardown }
public void CreateFromIntPtrRequestThrows() { // Fixture setup var sut = new IntPtrGuard(); var dummyContext = new DelegatingSpecimenContext(); // Exercise system and verify outcome Assert.Throws<IllegalRequestException>(() => sut.Create(typeof(IntPtr), dummyContext)); // Teardown }
public void CreateWithNullRequestThrows() { // Fixture setup var sut = new Omitter(); // Exercise system and verify outcome var dummyContext = new DelegatingSpecimenContext(); Assert.Throws<ArgumentNullException>(() => sut.Create(null, dummyContext)); // Teardown }
public void CreateWithCorrectTypeRequestWillReturnCorrectTypeSpecimen() { // Fixture setup var dummyContext = new DelegatingSpecimenContext(); var sut = new ElementsBuilder<int>(42); // Exercise system var result = sut.Create(typeof(int), dummyContext); // Verify outcome Assert.Equal(typeof(int), result.GetType()); // Teardown }
public void CreateWithNullRequestReturnsCorrectResult() { // Fixture setup var sut = new CharSequenceGenerator(); // Exercise system var dummyContext = new DelegatingSpecimenContext(); var result = sut.Create(null, dummyContext); // Verify outcome Assert.Equal(new NoSpecimen(), result); // Teardown }
public void CreateWithNonCorrectTypeRequestWillReturnNoSpecimen() { // Fixture setup var dummyContext = new DelegatingSpecimenContext(); var sut = new ElementsBuilder<int>(42); // Exercise system var result = sut.Create(typeof(string), dummyContext); // Verify outcome Assert.True(result is NoSpecimen); // Teardown }
public void CreateWithNullRequestWillReturnCorrectResult() { // Fixture setup var sut = new BooleanSwitch(); // Exercise system var dummyContainer = new DelegatingSpecimenContext(); var result = sut.Create(null, dummyContainer); // Verify outcome Assert.Equal(new NoSpecimen(), result); // Teardown }
public void CreateAnonymousOnContainerReturnsCorrectResult() { // Fixture setup object expectedResult = 1; var container = new DelegatingSpecimenContext { OnResolve = r => r.Equals(new SeededRequest(typeof(int), 0)) ? expectedResult : new NoSpecimen(r) }; // Exercise system var result = container.CreateAnonymous<int>(); // Verify outcome Assert.Equal(expectedResult, result); // Teardown }
public void CreateWithNullRequestReturnsCorrectResult() { // Fixture setup var sut = new RegularExpressionAttributeRelay(); // Exercise system var dummyContext = new DelegatingSpecimenContext(); var result = sut.Create(null, dummyContext); // Verify outcome Assert.Equal(new NoSpecimen(), result); // Teardown }
public void CreateThrowsCorrectException() { // Fixture setup var sut = new MutableValueTypeWarningThrower(); var dummyRequest = new object(); var dummyContext = new DelegatingSpecimenContext(); // Exercise system and verify outcome Assert.Throws<ObjectCreationException>(() => sut.Create(dummyRequest, dummyContext)); // Teardown }
public void RequestForEnumTypeReturnsCorrectResult(Type enumType, int requestCount, object expectedResult) { // Fixture setup var sut = new EnumGenerator(); // Exercise system var dummyContext = new DelegatingSpecimenContext(); var result = Enumerable.Repeat<Func<object>>(() => sut.Create(enumType, dummyContext), requestCount).Select(f => f()).Last(); // Verify outcome Assert.Equal(expectedResult, result); // Teardown }
public void CreateWithOneElementCollectionWillReturnThatElement() { // Fixture setup var dummyContext = new DelegatingSpecimenContext(); var sut = new ElementsBuilder<int>(42); // Exercise system var result = sut.Create(typeof(int), dummyContext); // Verify outcome Assert.Equal(42, result); // Teardown }
public void CreateWithNonTypeRequestReturnsNoSpecimen(object request) { // Fixture setup var sut = new RandomDateTimeSequenceGenerator(); // Exercise system var dummyContainer = new DelegatingSpecimenContext(); var result = sut.Create(request, dummyContainer); // Verify outcome Assert.Equal(new NoSpecimen(request), result); // Teardown }
public void CreateWithNoneArrayRequestReturnsCorrectResult(object request) { // Fixture setup var sut = new ArrayRelay(); // Exercise system var dummyContext = new DelegatingSpecimenContext(); var result = sut.Create(request, dummyContext); // Verify outcome var expectedResult = new NoSpecimen(request); Assert.Equal(expectedResult, result); // Teardown }
public void CreateWithCharRequestReturnsCorrectResult() { // Fixture setup var charRequest = typeof(char); var sut = new CharSequenceGenerator(); // Exercise system var dummyContext = new DelegatingSpecimenContext(); var result = sut.Create(charRequest, dummyContext); // Verify outcome Assert.Equal('!', result); // Teardown }
public void CreateWithUInt16RequestWillReturnCorrectResult() { // Fixture setup var uInt16Request = typeof(ushort); var sut = new UInt16SequenceGenerator(); // Exercise system var dummyContainer = new DelegatingSpecimenContext(); var result = sut.Create(uInt16Request, dummyContainer); // Verify outcome Assert.Equal((ushort)1, result); // Teardown }
public void CreateWithNullRequestReturnsNoSpecimen() { // Fixture setup var seed = DateTime.Now; var sut = new StrictlyMonotonicallyIncreasingDateTimeGenerator(seed); // Exercise system var dummyContainer = new DelegatingSpecimenContext(); var result = sut.Create(null, dummyContainer); // Verify outcome Assert.Equal(new NoSpecimen(), result); // Teardown }
public void CreateWithNullRequestWillReturnNull() { // Fixture setup var sut = new StringSeedRelay(); // Exercise system var dummyContainer = new DelegatingSpecimenContext(); var result = sut.Create(null, dummyContainer); // Verify outcome var expectedResult = new NoSpecimen(); Assert.Equal(expectedResult, result); // Teardown }
public void ThrowsAtRecursionPoint() { // Fixture setup var builder = new DelegatingSpecimenBuilder(); builder.OnCreate = (r, c) => c.Resolve(r); var sut = new ThrowingRecursionGuard(builder); var container = new DelegatingSpecimenContext(); container.OnResolve = r => sut.Create(r, container); // Provoke recursion // Exercise system Assert.Throws(typeof(ObjectCreationException), () => sut.Create(Guid.NewGuid(), container)); }
public void CreateWithInvalidRequestReturnsCorrectResult(object request) { // Fixture setup var sut = new SeededFactory<int>(s => s); // 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 CreateFromNonMatchingRequestReturnsCorrectResult( object request) { // Fixture setup var from = typeof(OperatingSystem); var dummyTo = typeof(object); var sut = new TypeRelay(from, dummyTo); // Exercise system var dummyContext = new DelegatingSpecimenContext(); var actual = sut.Create(request, dummyContext); // Verify outcome #pragma warning disable 618 var expected = new NoSpecimen(request); #pragma warning restore 618 Assert.Equal(expected, actual); // Teardown }
public void CreateFromMatchingRequestReturnsCorrectResult( Type from, Type to) { // Fixture setup var sut = new TypeRelay(from, to); var expected = new object(); var context = new DelegatingSpecimenContext { OnResolve = r => to.Equals(r) ? expected : new object() }; // Exercise system var actual = sut.Create(from, context); // Verify outcome Assert.Equal(expected, actual); // Teardown }
public void ExecuteCorrectlyInvokeDoubleAction() { // Fixture setup var specimen = this.CreateSpecimen(); var context = new DelegatingSpecimenContext(); var verified = false; Action <T, ISpecimenContext> mock = (s, c) => verified = specimen.Equals(s) && c == context; var sut = new ActionSpecimenCommand <T>(mock); // Exercise system sut.Execute(specimen, context); // Verify outcome Assert.True(verified, "Action not invoked with expected specimen."); // Teardown }
public void CreateReturnsCorrectResult() { // Fixture setup var request = new object(); var context = new DelegatingSpecimenContext(); var expectedResult = new object(); var builder = new DelegatingSpecimenBuilder { OnCreate = (r, c) => r == request && c == context ? expectedResult : new NoSpecimen(r) }; var sut = new NoSpecimenOutputGuard(builder); // Exercise system var result = sut.Create(request, context); // Verify outcome Assert.Equal(expectedResult, result); // Teardown }
public void CreateWithReturnValueParameterlessDelegateRequestReturnsDelegateReturningValueSpecimen() { // Fixture setup var delegateRequest = typeof(Func <int>); var expectedResult = 3; var sut = new DelegateGenerator(); // Exercise system var dummyContainer = new DelegatingSpecimenContext { OnResolve = arg => expectedResult }; var result = sut.Create(delegateRequest, dummyContainer); // Verify outcome var actualResult = ((Func <int>)result).Invoke(); Assert.Equal(expectedResult, actualResult); // Teardown }
public void ExecuteWillQuerySpecificationWithCorrectFieldInfo() { // Fixture setup var expectedFieldInfo = typeof(FieldHolder <string>).GetField("Field"); var verified = false; var specMock = new DelegatingRequestSpecification { OnIsSatisfiedBy = r => verified = expectedFieldInfo.Equals(r) }; var sut = new AutoPropertiesCommand <FieldHolder <string> >(specMock); // Exercise system var specimen = new FieldHolder <string>(); var dummyContainer = new DelegatingSpecimenContext(); sut.Execute(specimen, dummyContainer); // Verify outcome Assert.True(verified, "Mock verified"); // Teardown }
public void CreateReturnsCorrectResultWhenContextReturnsNonEnumerableResult(object response) { // Fixture setup var request = typeof(object[]); var context = new DelegatingSpecimenContext { OnResolve = r => response }; var sut = new ArrayRelay(); // Exercise system var result = sut.Create(request, context); // Verify outcome #pragma warning disable 618 var expectedResult = new NoSpecimen(request); #pragma warning restore 618 Assert.Equal(expectedResult, result); // Teardown }
public void CreateReturnsCorrectResultOnSutWithDoubleAction() { // Fixture setup var expectedResult = 1m; var builder = new DelegatingSpecimenBuilder { OnCreate = (r, c) => expectedResult }; Action <decimal, ISpecimenContext> dummyAction = (s, c) => { }; var sut = new Postprocessor <decimal>(builder, dummyAction); // 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 CreateWillNotTrackFilteredRequest() { // Fixture setup object tracked = null; object requestedObject = new object(); var sut = new DelegatingTracingBuilder(); sut.Filter = new DelegatingRequestSpecification { OnIsSatisfiedBy = r => false }; // Exercise system var dummyContainer = new DelegatingSpecimenContext(); sut.Create(requestedObject, dummyContainer); // Verify outcome Assert.Null(tracked); // Teardown }
public void CreateWillTrackCreatedSpecimen() { // Fixture setup object tracked = null; object createdSpecimen = Guid.NewGuid(); var container = new DelegatingSpecimenContext { OnResolve = r => createdSpecimen }; var sut = new DelegatingTracingBuilder(); // Exercise system object res = sut.Create(new object(), container); // Verify outcome Assert.Equal(res, tracked); // Teardown }
public void CreateFromMultipleSeededRequestWithNonTypeRequestReturnsCorrectResult( object innerRequest) { // Fixture setup var sut = new MultipleToEnumerableRelay(); var request = new MultipleRequest( new SeededRequest( innerRequest, new object())); // Exercise system var dummyContext = new DelegatingSpecimenContext(); var actual = sut.Create(request, dummyContext); // Verify outcome var expected = new NoSpecimen(request); Assert.Equal(expected, actual); // Teardown }
public void CreateReturnsCorrectResult() { // Fixture setup var expectedResult = new object(); var builder = new DelegatingSpecimenBuilder { OnCreate = (r, c) => expectedResult }; var dummyCommand = new DelegatingSpecimenCommand(); var sut = new Postprocessor(builder, dummyCommand); // 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 CreateReturnsCorrectResultWhenBuilderReturnsNoSpecimen() { // Fixture setup var builder = new DelegatingSpecimenBuilder { OnCreate = (r, c) => new NoSpecimen() }; Action <int> dummyAction = s => { }; var sut = new Postprocessor <int>(builder, dummyAction); // Exercise system var dummyRequest = new object(); var dummyContainer = new DelegatingSpecimenContext(); var result = sut.Create(dummyRequest, dummyContainer); // Verify outcome Assert.IsAssignableFrom <NoSpecimen>(result); // Teardown }
public void ExecuteWillAssignCorrectPropertyValue() { // Fixture setup var expectedPropertyValue = new object(); var container = new DelegatingSpecimenContext { OnResolve = r => expectedPropertyValue }; var sut = new AutoPropertiesCommand <PropertyHolder <object> >(); var specimen = new PropertyHolder <object>(); // Exercise system sut.Execute(specimen, container); // Verify outcome Assert.Equal(expectedPropertyValue, specimen.Property); // Teardown }
public void SpecimenFormatterIsGivenCorrectTextWriter() { // Fixture setup var expectedWriter = new StringWriter(); var sut = new TraceWriter(expectedWriter, new DelegatingTracingBuilder()); bool verified = false; sut.TraceSpecimenFormatter = (tw, r, i) => verified = tw == expectedWriter; // Exercise system var dummyRequest = new object(); var dummyContainer = new DelegatingSpecimenContext(); sut.Create(dummyRequest, dummyContainer); // Verify outcome Assert.True(verified); // Teardown }
public void CreateWillPassThroughToDecoratedBuilder() { // Fixture setup object expectedSpecimen = Guid.NewGuid(); var decoratedBuilder = new DelegatingSpecimenBuilder { OnCreate = (r, c) => r }; var sut = new DelegatingTracingBuilder(decoratedBuilder); // Exercise system var dummyContainer = new DelegatingSpecimenContext(); object result = sut.Create(expectedSpecimen, dummyContainer); // Verify outcome Assert.Equal(expectedSpecimen, result); // Teardown }
public void CreateWithCorrectSeedWillReturnCorrectResult() { // Fixture setup var seed = 7m; var seededRequest = new SeededRequest(typeof(decimal), seed); var expectedResult = 3m; Func <decimal, decimal> factoryStub = s => s == seed ? expectedResult : 0m; var sut = new SeededFactory <decimal>(factoryStub); // Exercise system var dummyContext = new DelegatingSpecimenContext(); var result = sut.Create(seededRequest, dummyContext); // Verify outcome Assert.Equal(expectedResult, result); // Teardown }
public void ExecuteWillSetCorrectFieldOnSpecimenWhenAnonymousValueIsImplied() { // Fixture setup var expectedValue = new object(); var expectedRequest = typeof(FieldHolder <object>).GetField("Field"); var container = new DelegatingSpecimenContext { OnResolve = r => expectedRequest.Equals(r) ? expectedValue : new NoSpecimen() }; var sut = new BindingCommand <FieldHolder <object>, object>(ph => ph.Field); var specimen = new FieldHolder <object>(); // Exercise system sut.Execute(specimen, container); // Verify outcome Assert.Equal(expectedValue, specimen.Field); // Teardown }
public void CreateFromSeedWhenContainerCanSatisfyWrappedRequestWillReturnCorrectResult() { // Fixture setup var anonymousSeed = new SeededRequest(typeof(object), new object()); var expectedResult = new object(); var container = new DelegatingSpecimenContext { OnResolve = r => expectedResult }; var sut = new SeedIgnoringRelay(); // Exercise system var result = sut.Create(anonymousSeed, container); // Verify outcome Assert.Equal(expectedResult, result); // Teardown }
public void DecoratedDisposableResultIsOnlyAddedToDisposablesOnce() { // Fixture setup var disposable = new DisposableSpy(); var builder = new DelegatingSpecimenBuilder { OnCreate = (r, c) => disposable }; var sut = new DisposableTracker(builder); // Exercise system var dummyRequest = new object(); var dummyContext = new DelegatingSpecimenContext(); sut.Create(dummyRequest, dummyContext); sut.Create(dummyRequest, dummyContext); // Verify outcome Assert.Equal(1, sut.Disposables.Count(d => d == disposable)); // Teardown }
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 ExecuteDoesNotAssignFieldWhenSpecificationIsNotSatisfied() { // Fixture setup var spec = new DelegatingRequestSpecification { OnIsSatisfiedBy = r => false }; var sut = new AutoPropertiesCommand <FieldHolder <object> >(spec); var specimen = new FieldHolder <object>(); var container = new DelegatingSpecimenContext { OnResolve = r => new object() }; // Exercise system sut.Execute(specimen, container); // Verify outcome Assert.Null(specimen.Field); // Teardown }
public void CreateConvertsEnumerableToCorrectGenericType() { // Fixture setup var request = typeof(IEnumerable <int>); var expectedRequest = new MultipleRequest(typeof(int)); var enumerable = Enumerable.Range(1, 3).Cast <object>(); var context = new DelegatingSpecimenContext { OnResolve = r => expectedRequest.Equals(r) ? (object)enumerable : new NoSpecimen(r) }; var sut = new EnumerableRelay(); // Exercise system var result = sut.Create(request, context); // Verify outcome var e = Assert.IsAssignableFrom <IEnumerable <int> >(result); Assert.True(enumerable.Cast <int>().SequenceEqual(e)); // Teardown }
public void CreateWithArrayRequestReturnsCorrectResult(Type request, Type itemType) { // Fixture setup var expectedRequest = new MultipleRequest(itemType); object expectedResult = Array.CreateInstance(itemType, 0); #pragma warning disable 618 var context = new DelegatingSpecimenContext { OnResolve = r => expectedRequest.Equals(r) ? expectedResult : new NoSpecimen(r) }; #pragma warning restore 618 var sut = new ArrayRelay(); // Exercise system var result = sut.Create(request, context); // Verify outcome Assert.Equal(expectedResult, result); // Teardown }
public void CreateWithListRequestReturnsCorrectResult(Type request, Type itemType) { // Fixture setup var expectedRequest = typeof(List <>).MakeGenericType(itemType); object contextResult = typeof(List <>).MakeGenericType(itemType).GetConstructor(Type.EmptyTypes).Invoke(new object[0]); #pragma warning disable 618 var context = new DelegatingSpecimenContext { OnResolve = r => expectedRequest.Equals(r) ? contextResult : new NoSpecimen(r) }; #pragma warning restore 618 var sut = new CollectionRelay(); // Exercise system var result = sut.Create(request, context); // Verify outcome Assert.Equal(contextResult, result); // Teardown }
public void MultipleDecoratedDisposablesAreAddedToDisposables() { // Fixture setup var disposables = Enumerable.Repeat <Func <DisposableSpy> >(() => new DisposableSpy(), 3).Select(f => f()).ToList(); var q = new Queue <DisposableSpy>(disposables); var builder = new DelegatingSpecimenBuilder { OnCreate = (r, c) => q.Dequeue() }; var sut = new DisposableTracker(builder); // Exercise system var dummyRequest = new object(); var dummyContext = new DelegatingSpecimenContext(); disposables.ForEach(d => sut.Create(dummyRequest, dummyContext)); // Verify outcome Assert.True(disposables.All(ds => sut.Disposables.Any(d => d == ds))); // Teardown }
public void CreateWithNonEnumerableParameterRequestReturnsCorrectResult( Type argumentType) { var parameterInfo = typeof(SingleParameterType <>) .MakeGenericType(new[] { argumentType }) .GetConstructors() .First() .GetParameters() .First(); var sut = new OmitEnumerableParameterRequestRelay(); var dummyContext = new DelegatingSpecimenContext(); var actual = sut.Create(parameterInfo, dummyContext); var expected = new NoSpecimen(parameterInfo); Assert.Equal(expected, actual); }
public void CreateWillReturnCorrectResult() { // Fixture setup var expectedSpecimen = new object(); var stubBuilder = new TracingBuilder(new DelegatingSpecimenBuilder { OnCreate = (r, c) => expectedSpecimen }); var sut = new TerminatingWithPathSpecimenBuilder(stubBuilder); // Exercise system var dummyRequest = new object(); var dummyContainer = new DelegatingSpecimenContext(); var result = sut.Create(dummyRequest, dummyContainer); // Verify outcome Assert.Equal(expectedSpecimen, result); // Teardown }
public void CreateReturnsCorrectResultWhenQueryReturnsEmptyConstructors() { // Fixture setup var dummyRequest = typeof(object); var query = new DelegatingMethodQuery { OnSelectMethods = t => Enumerable.Empty <IMethod>() }; var sut = new MethodInvoker(query); // Exercise system var dummyContext = new DelegatingSpecimenContext(); var result = sut.Create(dummyRequest, dummyContext); // Verify outcome #pragma warning disable 618 var expectedResult = new NoSpecimen(dummyRequest); #pragma warning restore 618 Assert.Equal(expectedResult, result); // Teardown }
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 }