Skip to content

Commit

Permalink
Remove all ValueTask support from assertions
Browse files Browse the repository at this point in the history
  • Loading branch information
bradwilson committed Nov 1, 2023
1 parent 801790c commit fb3c3cf
Show file tree
Hide file tree
Showing 6 changed files with 178 additions and 736 deletions.
2 changes: 1 addition & 1 deletion src/xunit.assert/Asserts
13 changes: 3 additions & 10 deletions test/test.xunit.assert/Asserts/CollectionAssertsTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,11 @@
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NSubstitute;
using Xunit;
using Xunit.Sdk;

#if XUNIT_VALUETASK
using System.Threading.Tasks;
#endif

public class CollectionAssertsTests
{
public class All
Expand Down Expand Up @@ -66,15 +63,14 @@ public static void ActionCanReceiveIndex()
}
}

#if XUNIT_VALUETASK
public class AllAsync
{
[Fact]
public static async Task GuardClauses()
{
await Assert.ThrowsAsync<ArgumentNullException>("collection", () => Assert.AllAsync<object>(null!, async _ => await Task.Yield()));
await Assert.ThrowsAsync<ArgumentNullException>("action", () => Assert.AllAsync(Array.Empty<object>(), (Func<object, ValueTask>)null!));
await Assert.ThrowsAsync<ArgumentNullException>("action", () => Assert.AllAsync(Array.Empty<object>(), (Func<object, int, ValueTask>)null!));
await Assert.ThrowsAsync<ArgumentNullException>("action", () => Assert.AllAsync(new object[0], (Func<object, Task>)null!));
await Assert.ThrowsAsync<ArgumentNullException>("action", () => Assert.AllAsync(new object[0], (Func<object, int, Task>)null!));
}

[Fact]
Expand Down Expand Up @@ -118,7 +114,6 @@ public static async Task ActionCanReceiveIndex()
Assert.Equal(new[] { 0, 1, 2, 3, 4, 5 }, indices);
}
}
#endif

public class Collection
{
Expand Down Expand Up @@ -190,7 +185,6 @@ public static void MismatchedElement()
}
}

#if XUNIT_VALUETASK
public class CollectionAsync
{
[Fact]
Expand Down Expand Up @@ -274,7 +268,6 @@ public static async Task MismatchedElementAsync()
);
}
}
#endif

public class Contains
{
Expand Down
212 changes: 2 additions & 210 deletions test/test.xunit.assert/Asserts/EventAssertsTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ public static void DerivedTypeRaised_NonGeneric()
}
}

public class RaisesAnyAsync_Task
public class RaisesAnyAsync
{
[Fact]
public static async Task NoEventRaised()
Expand Down Expand Up @@ -300,140 +300,7 @@ public static async Task DerivedTypeRaised_NonGeneric()
}
}

#if XUNIT_VALUETASK
public class RaisesAnyAsync_ValueTask
{
[Fact]
public static async Task NoEventRaised()
{
var obj = new RaisingClass();

var ex = await Record.ExceptionAsync(
() => Assert.RaisesAnyAsync<object>(
h => obj.Completed += h,
h => obj.Completed -= h,
() => default(ValueTask)
)
);

Assert.IsType<RaisesAnyException>(ex);
Assert.Equal(
"Assert.RaisesAny() Failure: No event was raised" + Environment.NewLine +
"Expected: typeof(object)" + Environment.NewLine +
"Actual: No event was raised",
ex.Message
);
}

[Fact]
public static async Task NoEventRaised_NonGeneric()
{
var obj = new RaisingClass_NonGeneric();

var ex = await Record.ExceptionAsync(
() => Assert.RaisesAnyAsync(
h => obj.Completed += h,
h => obj.Completed -= h,
() => default(ValueTask)
)
);

Assert.IsType<RaisesAnyException>(ex);
Assert.Equal(
"Assert.RaisesAny() Failure: No event was raised" + Environment.NewLine +
"Expected: typeof(System.EventArgs)" + Environment.NewLine +
"Actual: No event was raised",
ex.Message
);
}

[Fact]
public static async Task ExactTypeRaised()
{
var obj = new RaisingClass();
var eventObj = new object();

var evt = await Assert.RaisesAnyAsync<object>(
h => obj.Completed += h,
h => obj.Completed -= h,
() =>
{
obj.RaiseWithArgs(eventObj);
return default(ValueTask);
}
);

Assert.NotNull(evt);
Assert.Equal(obj, evt.Sender);
Assert.Equal(eventObj, evt.Arguments);
}

[Fact]
public static async Task ExactTypeRaised_NonGeneric()
{
var obj = new RaisingClass_NonGeneric();
var eventObj = new EventArgs();

var evt = await Assert.RaisesAnyAsync(
h => obj.Completed += h,
h => obj.Completed -= h,
() =>
{
obj.RaiseWithArgs(eventObj);
return default(ValueTask);
}
);

Assert.NotNull(evt);
Assert.Equal(obj, evt.Sender);
Assert.Equal(eventObj, evt.Arguments);
}

[Fact]
public static async Task DerivedTypeRaised()
{
var obj = new RaisingClass();
var eventObj = new DerivedObject();

var evt = await Assert.RaisesAnyAsync<object>(
h => obj.Completed += h,
h => obj.Completed -= h,
() =>
{
obj.RaiseWithArgs(eventObj);
return default(ValueTask);
}
);

Assert.NotNull(evt);
Assert.Equal(obj, evt.Sender);
Assert.Equal(eventObj, evt.Arguments);
}

[Fact]
public static async Task DerivedTypeRaised_NonGeneric()
{
var obj = new RaisingClass_NonGeneric();
var eventObj = new DerivedEventArgs();

var evt = await Assert.RaisesAnyAsync(
h => obj.Completed += h,
h => obj.Completed -= h,
() =>
{
obj.RaiseWithArgs(eventObj);
return default(ValueTask);
}
);

Assert.NotNull(evt);
Assert.Equal(obj, evt.Sender);
Assert.Equal(eventObj, evt.Arguments);
}
}
#endif

public class RaisesAsync_Task
public class RaisesAsync
{
[Fact]
public static async Task NoEventRaised()
Expand Down Expand Up @@ -498,81 +365,6 @@ public static async Task DerivedTypeRaised()
}
}

#if XUNIT_VALUETASK
public class RaisesAsync_ValueTask
{
[Fact]
public static async Task NoEventRaised()
{
var obj = new RaisingClass();

var ex = await Record.ExceptionAsync(
() => Assert.RaisesAsync<object>(
h => obj.Completed += h,
h => obj.Completed -= h,
() => default(ValueTask)
)
);

Assert.IsType<RaisesException>(ex);
Assert.Equal(
"Assert.Raises() Failure: No event was raised" + Environment.NewLine +
"Expected: typeof(object)" + Environment.NewLine +
"Actual: No event was raised",
ex.Message
);
}

[Fact]
public static async Task ExactTypeRaised()
{
var obj = new RaisingClass();
var eventObj = new object();

var evt = await Assert.RaisesAsync<object>(
h => obj.Completed += h,
h => obj.Completed -= h,
() =>
{
obj.RaiseWithArgs(eventObj);
return default(ValueTask);
}
);

Assert.NotNull(evt);
Assert.Equal(obj, evt.Sender);
Assert.Equal(eventObj, evt.Arguments);
}

[Fact]
public static async Task DerivedTypeRaised()
{
var obj = new RaisingClass();
var eventObj = new DerivedObject();

var ex = await Record.ExceptionAsync(
() => Assert.RaisesAsync<object>(
h => obj.Completed += h,
h => obj.Completed -= h,
() =>
{
obj.RaiseWithArgs(eventObj);
return default(ValueTask);
}
)
);

Assert.IsType<RaisesException>(ex);
Assert.Equal(
"Assert.Raises() Failure: Wrong event type was raised" + Environment.NewLine +
"Expected: typeof(object)" + Environment.NewLine +
$"Actual: typeof({typeof(DerivedObject).FullName})",
ex.Message
);
}
}
#endif

class RaisingClass
{
public void RaiseWithArgs(object args)
Expand Down
Loading

0 comments on commit fb3c3cf

Please sign in to comment.