public void QueryIsCorrect() { // Fixture setup var expectedPicker = new DelegatingConstructorQuery(); var sut = new ConstructorInvoker(expectedPicker); // Exercise system IConstructorQuery result = sut.Query; // Verify outcome Assert.Equal(expectedPicker, result); // Teardown }
public void QueryIsCorrect() { // Fixture setup var expectedPicker = new DelegatingConstructorQuery(); var sut = new ConstructorInvoker(expectedPicker); // Exercise system IConstructorQuery result = sut.Query; // Verify outcome Assert.Equal(expectedPicker, result); // Teardown }
public void CreateReturnsCorrectResultWhenQueryReturnsEmptyConstructors() { // Fixture setup var dummyRequest = typeof(object); var query = new DelegatingConstructorQuery { OnSelectConstructors = t => Enumerable.Empty <IMethod>() }; var sut = new ConstructorInvoker(query); // Exercise system var dummyContext = new DelegatingSpecimenContext(); var result = sut.Create(dummyRequest, dummyContext); // Verify outcome var expectedResult = new NoSpecimen(dummyRequest); Assert.Equal(expectedResult, result); // Teardown }
public void CreateFromTypeWillUseFirstConstructorItCanSatisfy() { // Fixture setup var requestedType = typeof(MultiUnorderedConstructorType); var ctor1 = requestedType.GetConstructor(new[] { typeof(MultiUnorderedConstructorType.ParameterObject) }); var ctor2 = requestedType.GetConstructor(new[] { typeof(string), typeof(int) }); var picker = new DelegatingConstructorQuery { OnSelectConstructors = t => new IMethod[] { new ConstructorMethod(ctor1), new ConstructorMethod(ctor2) } }; var sut = new ConstructorInvoker(picker); var ctor2Params = ctor2.GetParameters(); var expectedText = "Anonymous text"; var expectedNumber = 14; var context = new DelegatingSpecimenContext(); context.OnResolve = r => { if (ctor2Params.Any(r.Equals)) { var pType = ((ParameterInfo)r).ParameterType; if (typeof(string) == pType) { return(expectedText); } if (typeof(int) == pType) { return(expectedNumber); } } return(new NoSpecimen(r)); }; // Exercise system var result = sut.Create(requestedType, context); // Verify outcome var actual = Assert.IsAssignableFrom <MultiUnorderedConstructorType>(result); Assert.Equal(expectedText, actual.Text); Assert.Equal(expectedNumber, actual.Number); // Teardown }
public void CreateReturnsCorrectResultWhenQueryReturnsEmptyConstructors() { // Fixture setup var dummyRequest = typeof(object); var query = new DelegatingConstructorQuery { OnSelectConstructors = t => Enumerable.Empty<IMethod>() }; var sut = new ConstructorInvoker(query); // Exercise system var dummyContext = new DelegatingSpecimenContext(); var result = sut.Create(dummyRequest, dummyContext); // Verify outcome var expectedResult = new NoSpecimen(dummyRequest); Assert.Equal(expectedResult, result); // Teardown }
public void CreateFromTypeWillUseFirstConstructorItCanSatisfy() { // Fixture setup var requestedType = typeof(MultiUnorderedConstructorType); var ctor1 = requestedType.GetConstructor(new[] { typeof(MultiUnorderedConstructorType.ParameterObject) }); var ctor2 = requestedType.GetConstructor(new[] { typeof(string), typeof(int) }); var picker = new DelegatingConstructorQuery { OnSelectConstructors = t => new IMethod[] { new ConstructorMethod(ctor1), new ConstructorMethod(ctor2) } }; var sut = new ConstructorInvoker(picker); var ctor2Params = ctor2.GetParameters(); var expectedText = "Anonymous text"; var expectedNumber = 14; var context = new DelegatingSpecimenContext(); context.OnResolve = r => { if (ctor2Params.Any(r.Equals)) { var pType = ((ParameterInfo)r).ParameterType; if (typeof(string) == pType) { return expectedText; } if (typeof(int) == pType) { return expectedNumber; } } return new NoSpecimen(r); }; // Exercise system var result = sut.Create(requestedType, context); // Verify outcome var actual = Assert.IsAssignableFrom<MultiUnorderedConstructorType>(result); Assert.Equal(expectedText, actual.Text); Assert.Equal(expectedNumber, actual.Number); // Teardown }