public void EnumerableOfGuidReturnsValue() { var attribute = new CombinatorialMemberDataAttribute(nameof(GetValuesAsEnumerableOfGuid)); var testMethod = this.GetType().GetMethod(nameof(StubGuidMethod)); var parameter = testMethod.GetParameters()[0]; var values = attribute.GetValues(parameter); Assert.Contains(values, obj => (Guid)obj != Guid.Empty); }
public void EnumerableOfIntReturnsValues() { var attribute = new CombinatorialMemberDataAttribute(nameof(GetValuesAsEnumerableOfInt)); var testMethod = this.GetType().GetMethod(nameof(StubIntMethod)); var parameter = testMethod.GetParameters()[0]; var values = attribute.GetValues(parameter); Assert.Equal(new object[] { 1, 2, 3, 4 }, values); }
public void IncompatibleMemberDataTypeThrows() { var attribute = new CombinatorialMemberDataAttribute(nameof(GetValuesAsEnumerableOfGuid)); var testMethod = this.GetType().GetMethod(nameof(StubIntMethod)); var parameter = testMethod.GetParameters()[0]; var exception = Assert.Throws <ArgumentException>(() => attribute.GetValues(parameter)); Assert.Equal("Parameter type System.Int32 is not compatible with returned member type System.Guid", exception.Message); }
public void EnumerableOfArrayThrows() { var attribute = new CombinatorialMemberDataAttribute(nameof(GetValuesAsEnumerableOfIntArray)); var testMethod = this.GetType().GetMethod(nameof(StubIntMethod)); var parameter = testMethod.GetParameters()[0]; var exception = Assert.Throws <ArgumentException>(() => attribute.GetValues(parameter)); Assert.Equal("Member GetValuesAsEnumerableOfIntArray on Xunit.Combinatorial.Tests.CombinatorialMemberDataAttributeTests returned an IEnumerable<object[]>, which is not supported", exception.Message); }