public void GetArgumentsReturnsCorrectResult() { // Fixture setup var method = typeof(TypeWithOverloadedMembers).GetMethod("DoSomething", new[] { typeof(object) }); var parameters = method.GetParameters(); var expectedResult = new object(); var builder = new DelegatingSpecimenBuilder { OnCreate = (r, c) => { Assert.AreEqual(parameters.Single(), r); Assert.NotNull(c); return(expectedResult); } }; var composer = new DelegatingFixture { OnCreate = builder.OnCreate }; var sut = new DerivedAutoDataAttribute(() => composer); // Exercise system var result = sut.GetData(method); // Verify outcome Assert.True(new[] { expectedResult }.SequenceEqual(result.Single())); // Teardown }
public void ShouldRecognizeAttributesImplementingIParameterCustomizationSource() { // Fixture setup var method = typeof(TypeWithIParameterCustomizationSourceUsage) .GetMethod(nameof(TypeWithIParameterCustomizationSourceUsage.DecoratedMethod)); var parameters = method.GetParameters(); var parameterTypes = parameters.Select(p => p.ParameterType).ToArray(); var customizationLog = new List <ICustomization>(); var fixture = new DelegatingFixture(); fixture.OnCustomize = c => { customizationLog.Add(c); return(fixture); }; var sut = new DerivedAutoDataAttribute(() => fixture); // Exercise system sut.GetData(method, parameterTypes); // Verify outcome Assert.True(customizationLog[0] is TypeWithIParameterCustomizationSourceUsage.Customization); // Teardown }
public void GetDataOrdersCustomizationAttributes(string methodName) { // Fixture setup var method = typeof(TypeWithCustomizationAttributes).GetMethod(methodName, new[] { typeof(ConcreteType) }); var parameters = method.GetParameters(); var parameterTypes = (from pi in parameters select pi.ParameterType).ToArray(); var customizationLog = new List <ICustomization>(); var fixture = new DelegatingFixture(); fixture.OnCustomize = c => { customizationLog.Add(c); return(fixture); }; var sut = new DerivedAutoDataAttribute(() => fixture); // Exercise system sut.GetData(method, parameterTypes); // Verify outcome Assert.False(customizationLog[0] is FreezeOnMatchCustomization); Assert.True(customizationLog[1] is FreezeOnMatchCustomization); // Teardown }
public void GetDataReturnsCorrectResult() { // Arrange var method = typeof(TypeWithOverloadedMembers).GetMethod("DoSomething", new[] { typeof(object) }); var parameters = method.GetParameters(); var parameterTypes = (from pi in parameters select pi.ParameterType).ToArray(); var expectedResult = new object(); var builder = new DelegatingSpecimenBuilder { OnCreate = (r, c) => { Assert.Equal(parameters.Single(), r); Assert.NotNull(c); return(expectedResult); } }; var composer = new DelegatingFixture { OnCreate = builder.OnCreate }; var sut = new DerivedAutoDataAttribute(() => composer); // Act var result = sut.GetData(method, parameterTypes); // Assert Assert.True(new[] { expectedResult }.SequenceEqual(result.Single())); }
public void InitializedWithFixtureFactoryConstrucorHasCorrectFixture() { // Arrange var fixture = new Fixture(); // Act var sut = new DerivedAutoDataAttribute(() => fixture); // Assert #pragma warning disable 618 Assert.Same(fixture, sut.Fixture); #pragma warning restore 618 }
public void InitializedWithFixtureFactoryConstrucorHasCorrectFixture() { // Fixture setup var fixture = new Fixture(); // Exercise system var sut = new DerivedAutoDataAttribute(() => fixture); // Verify outcome #pragma warning disable 618 Assert.AreSame(fixture, sut.Fixture); #pragma warning restore 618 // Teardown }
public void InitializedWithComposerHasCorrectComposer() { // Arrange var expectedComposer = new DelegatingFixture(); #pragma warning disable 612 var sut = new DerivedAutoDataAttribute(expectedComposer); #pragma warning restore 612 // Act #pragma warning disable 618 var result = sut.Fixture; #pragma warning restore 618 // Assert Assert.Equal(expectedComposer, result); }
public void InitializedWithComposerHasCorrectComposer() { // Fixture setup var expectedComposer = new DelegatingFixture(); #pragma warning disable 612 var sut = new DerivedAutoDataAttribute(expectedComposer); #pragma warning restore 612 // Exercise system #pragma warning disable 618 var result = sut.Fixture; #pragma warning restore 618 // Verify outcome Assert.AreEqual(expectedComposer, result); // Teardown }
public void FixtureFactoryIsNotInvokedImmediately() { // Arrange bool wasInvoked = false; Func <IFixture> fixtureFactory = () => { wasInvoked = true; return(null); }; // Act var sut = new DerivedAutoDataAttribute(fixtureFactory); // Assert Assert.False(wasInvoked); }
public void DoesntActivateFixtureImmediately() { // Arrange bool wasInvoked = false; var autoData = new DerivedAutoDataAttribute(() => { wasInvoked = true; return(null); }); // Act var sut = new DerivedInlineAutoDataAttribute(autoData); // Assert Assert.False(wasInvoked); }
public void FixtureFactoryIsNotInvokedImmediately() { // Fixture setup bool wasInvoked = false; Func <IFixture> fixtureFactory = () => { wasInvoked = true; return(null); }; // Exercise system var sut = new DerivedAutoDataAttribute(fixtureFactory); // Verify outcome Assert.False(wasInvoked); // Teardown }
public void DoesntActivateFixtureImmediately() { // Fixture setup bool wasInvoked = false; var autoData = new DerivedAutoDataAttribute(() => { wasInvoked = true; return(null); }); // Exercise system var sut = new DerivedInlineAutoDataAttribute(autoData); // Verify outcome Assert.False(wasInvoked); // Teardown }
public void DoesNotActivateFixtureImmediately() { // Arrange var memberName = Guid.NewGuid().ToString(); bool wasInvoked = false; var autoData = new DerivedAutoDataAttribute(() => { wasInvoked = true; return(new Fixture()); }); // Act var sut = new DerivedMemberAutoDataAttribute(autoData, memberName); // Assert Assert.False(wasInvoked); }
public void GetDataOrdersCustomizationAttributes(string methodName) { // Arrange var method = typeof(TypeWithCustomizationAttributes).GetMethod(methodName, new[] { typeof(ConcreteType) }); var customizationLog = new List <ICustomization>(); var fixture = new DelegatingFixture(); fixture.OnCustomize = c => { customizationLog.Add(c); return(fixture); }; var sut = new DerivedAutoDataAttribute(() => fixture); // Act sut.GetData(method); // Assert Assert.False(customizationLog[0] is FreezeOnMatchCustomization); Assert.True(customizationLog[1] is FreezeOnMatchCustomization); }
public void ShouldRecognizeAttributesImplementingIParameterCustomizationSource() { // Arrange var method = typeof(TypeWithIParameterCustomizationSourceUsage) .GetMethod(nameof(TypeWithIParameterCustomizationSourceUsage.DecoratedMethod)); var customizationLog = new List <ICustomization>(); var fixture = new DelegatingFixture(); fixture.OnCustomize = c => { customizationLog.Add(c); return(fixture); }; var sut = new DerivedAutoDataAttribute(() => fixture); // Act sut.GetData(method); // Assert Assert.True(customizationLog[0] is TypeWithIParameterCustomizationSourceUsage.Customization); }