-
-
Notifications
You must be signed in to change notification settings - Fork 96
Closed
Description
Hello !
I'm facing a weird issue using MatrixDataSource and Enum, here is the test snippet to reproduice the issue :
public class MyTestClass
{
// Define the enums used in the tests
public enum EnumA
{
AValueFirst = 1,
AValueSecond = 2
}
public enum EnumB
{
BValueFirst = 0,
BValueSecond = 2,
BValueThird = 12,
BValueForth = 45
}
// Case 1: Exclusion using enum values directly
// Exclusion works correctly
[Test]
[MatrixDataSource]
[MatrixExclusion(EnumA.AValueFirst, EnumB.BValueSecond)]
public async Task SecondTest(EnumA value1, EnumB value2)
{
await Assert.That((value1, value2)).IsNotEqualTo((EnumA.AValueFirst, EnumB.BValueSecond));
Console.WriteLine("Values => {0}, {1}", value1, value2);
}
// Case 2: Exclusion using enum values cast to int
// Exclusion works correctly
[Test]
[MatrixDataSource]
[MatrixExclusion((int)EnumA.AValueFirst, (int)EnumB.BValueSecond)]
public async Task ThirdTest(EnumA value1, EnumB value2)
{
await Assert.That((value1, value2)).IsNotEqualTo((EnumA.AValueFirst, EnumB.BValueSecond));
Console.WriteLine("Values => {0}, {1}", value1, value2);
}
// Case 3: Using Matrix to specify value combinations
// Exclusion doesn't work
[Test]
[MatrixDataSource]
[MatrixExclusion(EnumA.AValueFirst, EnumB.BValueSecond)]
public async Task ForthTest(
[Matrix(EnumA.AValueFirst, EnumA.AValueSecond)] EnumA value1,
[Matrix(EnumB.BValueFirst, EnumB.BValueSecond)] EnumB value2)
{
await Assert.That((value1, value2)).IsNotEqualTo((EnumA.AValueFirst, EnumB.BValueSecond));
Console.WriteLine("Value => {0}, {1}", value1, value2);
}
// Case 4: Matrix with enum values, exclusion cast to int
// Exclusion doesn't work
[Test]
[MatrixDataSource]
[MatrixExclusion((int)EnumA.AValueFirst, (int)EnumB.BValueSecond)]
public async Task FifthTest(
[Matrix(EnumA.AValueFirst, EnumA.AValueSecond)] EnumA value1,
[Matrix(EnumB.BValueFirst, EnumB.BValueSecond)] EnumB value2)
{
await Assert.That((value1, value2)).IsNotEqualTo((EnumA.AValueFirst, EnumB.BValueSecond));
Console.WriteLine("Value => {0}, {1}", value1, value2);
}
// Case 5: Matrix and exclusion both using int casts
// Exclusion works as expected
[Test]
[MatrixDataSource]
[MatrixExclusion((int)EnumA.AValueFirst, (int)EnumB.BValueSecond)]
public async Task SixthTest(
[Matrix((int)EnumA.AValueFirst, (int)EnumA.AValueSecond)] EnumA value1,
[Matrix((int)EnumB.BValueFirst, (int)EnumB.BValueSecond)] EnumB value2)
{
await Assert.That((value1, value2)).IsNotEqualTo((EnumA.AValueFirst, EnumB.BValueSecond));
Console.WriteLine("Value => {0}, {1}", value1, value2);
}
}am I doing something wrong ?
Metadata
Metadata
Assignees
Labels
No labels