Skip to content

Commit 037f222

Browse files
Bump NUnit from 3.14.0 to 4.0.0 (#196)
* Bump NUnit from 3.14.0 to 4.0.0 Bumps [NUnit](https://github.com/nunit/nunit) from 3.14.0 to 4.0.0. - [Release notes](https://github.com/nunit/nunit/releases) - [Changelog](https://github.com/nunit/nunit/blob/master/CHANGES.md) - [Commits](nunit/nunit@v3.14.0...v4.0.0) --- updated-dependencies: - dependency-name: NUnit dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> * Add NUnit Analyzers * Update for NUnit 4.0 * Fix Failing Unit Tests * Fix Failing Unit Tests --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Brandon Minnick <[email protected]>
1 parent 30c3bbd commit 037f222

19 files changed

+683
-501
lines changed

Directory.Build.props

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@
3131
CS1711: XML comment has a typeparam tag, but there is no type parameter by that name
3232
CS1712: Type parameter has no matching typeparam tag in the XML comment
3333
CS1723: XML comment has cref attribute that refers to a type parameter
34-
CS1734: XML comment has a paramref tag, but there is no parameter by that name -->
35-
<WarningsAsErrors>nullable,CS0419,CS1570,CS1571,CS1572,CS1573,CS1574,CS1580,CS1581,CS1584,CS1587,CS1589,CS1590,CS1591,CS1592,CS1598,CS1658,CS1710,CS1711,CS1712,CS1723,CS1734</WarningsAsErrors>
34+
CS1734: XML comment has a paramref tag, but there is no parameter by that name
35+
NUnit2007: Warning NUnit2007 : The actual value should not be a constant - perhaps the actual value and the expected value have switched places
36+
NUnit2045: Hosting Asserts inside an Assert.Multiple allows detecting more than one failure-->
37+
<WarningsAsErrors>nullable,CS0419,CS1570,CS1571,CS1572,CS1573,CS1574,CS1580,CS1581,CS1584,CS1589,CS1590,CS1592,CS1598,CS1658,CS1734,NUnit2007,NUnit2045</WarningsAsErrors>
3638
</PropertyGroup>
3739
</Project>

src/AsyncAwaitBestPractices.UnitTests/AsyncAwaitBestPractices.UnitTests.csproj

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project Sdk="Microsoft.NET.Sdk">
33
<PropertyGroup>
4-
<TargetFrameworks>net45;netcoreapp2.1;netcoreapp3.0;net6.0;net7.0;net8.0</TargetFrameworks>
4+
<TargetFrameworks>net462;net6.0;net7.0;net8.0</TargetFrameworks>
55
<IsPackable>false</IsPackable>
66
</PropertyGroup>
77
<ItemGroup>
8-
<PackageReference Include="NUnit" Version="3.14.0" />
8+
<PackageReference Include="NUnit" Version="4.0.0" />
99
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0">
1010
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1111
<PrivateAssets>all</PrivateAssets>
1212
</PackageReference>
13+
<PackageReference Include="NUnit.Analyzers" Version="3.9.0">
14+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
15+
<PrivateAssets>all</PrivateAssets>
16+
</PackageReference>
1317
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
1418
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3" PrivateAssets="All" />
1519
<PackageReference Include="coverlet.collector" Version="6.0.0" PrivateAssets="All" />
Lines changed: 146 additions & 141 deletions
Original file line numberDiff line numberDiff line change
@@ -1,145 +1,150 @@
11
using System;
22
using System.Threading.Tasks;
3-
using AsyncAwaitBestPractices.MVVM;
3+
using AsyncAwaitBestPractices.MVVM;
44
using NUnit.Framework;
5-
6-
namespace AsyncAwaitBestPractices.UnitTests;
7-
8-
class Tests_AsyncCommand : BaseAsyncCommandTest
9-
{
10-
[Test]
11-
public void AsyncCommand_NullExecuteParameter()
12-
{
13-
//Arrange
14-
15-
//Act
16-
17-
//Assert
18-
#pragma warning disable CS8625 //Cannot convert null literal to non-nullable reference type
19-
Assert.Throws<ArgumentNullException>(() => new AsyncCommand(null));
20-
Assert.Throws<ArgumentNullException>(() => new AsyncCommand<string>(null));
21-
Assert.Throws<ArgumentNullException>(() => new AsyncCommand<string, string?>(null));
22-
#pragma warning restore CS8625
23-
}
24-
25-
[TestCase(500)]
26-
[TestCase(default)]
27-
public async Task AsyncCommand_ExecuteAsync_IntParameter_Test(int parameter)
28-
{
29-
//Arrange
30-
AsyncCommand<int> command = new AsyncCommand<int>(IntParameterTask);
31-
AsyncCommand<int, int> command2 = new AsyncCommand<int, int>(IntParameterTask);
32-
33-
//Act
34-
await command.ExecuteAsync(parameter);
35-
await command2.ExecuteAsync(parameter);
36-
37-
//Assert
38-
39-
}
40-
41-
[TestCase("Hello")]
42-
[TestCase(default)]
43-
public async Task AsyncCommand_ExecuteAsync_StringParameter_Test(string parameter)
44-
{
45-
//Arrange
46-
AsyncCommand<string> command = new AsyncCommand<string>(StringParameterTask);
47-
AsyncCommand<string, string> command2 = new AsyncCommand<string, string>(StringParameterTask);
48-
49-
//Act
50-
await command.ExecuteAsync(parameter);
51-
await command2.ExecuteAsync(parameter);
52-
53-
//Assert
54-
55-
}
56-
57-
[Test]
58-
public void AsyncCommand_Parameter_CanExecuteTrue_Test()
59-
{
60-
//Arrange
61-
AsyncCommand<int> command = new AsyncCommand<int>(IntParameterTask, CanExecuteTrue);
62-
AsyncCommand<int, bool> command2 = new AsyncCommand<int, bool>(IntParameterTask, CanExecuteTrue);
63-
64-
//Act
65-
66-
//Assert
67-
Assert.IsTrue(command.CanExecute(null));
68-
Assert.IsTrue(command2.CanExecute(true));
69-
}
70-
71-
[Test]
72-
public void AsyncCommand_Parameter_CanExecuteFalse_Test()
73-
{
74-
//Arrange
75-
AsyncCommand<int> command = new AsyncCommand<int>(IntParameterTask, CanExecuteFalse);
76-
AsyncCommand<int, int> command2 = new AsyncCommand<int, int>(IntParameterTask, CanExecuteFalse);
77-
78-
//Act
79-
80-
//Assert
81-
82-
Assert.False(command.CanExecute(null));
83-
Assert.False(command2.CanExecute(0));
84-
}
85-
86-
[Test]
87-
public void AsyncCommand_NoParameter_CanExecuteTrue_Test()
88-
{
89-
//Arrange
90-
AsyncCommand command = new AsyncCommand(NoParameterTask, CanExecuteTrue);
91-
92-
//Act
93-
94-
//Assert
95-
96-
Assert.IsTrue(command.CanExecute(null));
97-
}
98-
99-
[Test]
100-
public void AsyncCommand_NoParameter_CanExecuteFalse_Test()
101-
{
102-
//Arrange
103-
AsyncCommand command = new AsyncCommand(NoParameterTask, CanExecuteFalse);
104-
105-
//Act
106-
107-
//Assert
108-
Assert.False(command.CanExecute(null));
109-
}
110-
111-
112-
[Test]
113-
public void AsyncCommand_CanExecuteChanged_Test()
114-
{
115-
//Arrange
116-
bool canCommandExecute = false;
117-
bool didCanExecuteChangeFire = false;
118-
119-
AsyncCommand command = new AsyncCommand(NoParameterTask, commandCanExecute);
120-
command.CanExecuteChanged += handleCanExecuteChanged;
121-
122-
void handleCanExecuteChanged(object? sender, EventArgs e) => didCanExecuteChangeFire = true;
123-
bool commandCanExecute(object? parameter) => canCommandExecute;
124-
125-
126-
Assert.False(command.CanExecute(null));
127-
128-
129-
//Act
130-
canCommandExecute = true;
131-
132-
//Assert
133-
134-
Assert.True(command.CanExecute(null));
135-
136-
Assert.False(didCanExecuteChangeFire);
137-
138-
//Act
139-
command.RaiseCanExecuteChanged();
140-
141-
//Assert
142-
Assert.True(didCanExecuteChangeFire);
143-
Assert.True(command.CanExecute(null));
144-
}
5+
6+
namespace AsyncAwaitBestPractices.UnitTests;
7+
8+
class Tests_AsyncCommand : BaseAsyncCommandTest
9+
{
10+
[Test]
11+
public void AsyncCommand_NullExecuteParameter()
12+
{
13+
//Arrange
14+
15+
//Act
16+
17+
//Assert
18+
#pragma warning disable CS8625 //Cannot convert null literal to non-nullable reference type
19+
Assert.Throws<ArgumentNullException>(() => new AsyncCommand(null));
20+
Assert.Throws<ArgumentNullException>(() => new AsyncCommand<string>(null));
21+
Assert.Throws<ArgumentNullException>(() => new AsyncCommand<string, string?>(null));
22+
#pragma warning restore CS8625
23+
}
24+
25+
[TestCase(500)]
26+
[TestCase(0)]
27+
public async Task AsyncCommand_ExecuteAsync_IntParameter_Test(int parameter)
28+
{
29+
//Arrange
30+
AsyncCommand<int> command = new AsyncCommand<int>(IntParameterTask);
31+
AsyncCommand<int, int> command2 = new AsyncCommand<int, int>(IntParameterTask);
32+
33+
//Act
34+
await command.ExecuteAsync(parameter);
35+
await command2.ExecuteAsync(parameter);
36+
37+
//Assert
38+
39+
}
40+
41+
[TestCase("Hello")]
42+
[TestCase(null)]
43+
public async Task AsyncCommand_ExecuteAsync_StringParameter_Test(string? parameter)
44+
{
45+
//Arrange
46+
AsyncCommand<string?> command = new(StringParameterTask);
47+
AsyncCommand<string?, string> command2 = new(StringParameterTask);
48+
49+
//Act
50+
await command.ExecuteAsync(parameter);
51+
await command2.ExecuteAsync(parameter);
52+
53+
//Assert
54+
55+
}
56+
57+
[Test]
58+
public void AsyncCommand_Parameter_CanExecuteTrue_Test()
59+
{
60+
//Arrange
61+
AsyncCommand<int> command = new AsyncCommand<int>(IntParameterTask, CanExecuteTrue);
62+
AsyncCommand<int, bool> command2 = new AsyncCommand<int, bool>(IntParameterTask, CanExecuteTrue);
63+
64+
Assert.Multiple(() =>
65+
{
66+
//Assert
67+
Assert.That(command.CanExecute(null), Is.True);
68+
Assert.That(command2.CanExecute(true), Is.True);
69+
});
70+
}
71+
72+
[Test]
73+
public void AsyncCommand_Parameter_CanExecuteFalse_Test()
74+
{
75+
//Arrange
76+
AsyncCommand<int> command = new AsyncCommand<int>(IntParameterTask, CanExecuteFalse);
77+
AsyncCommand<int, int> command2 = new AsyncCommand<int, int>(IntParameterTask, CanExecuteFalse);
78+
79+
Assert.Multiple(() =>
80+
{
81+
//Assert
82+
Assert.That(command.CanExecute(null), Is.False);
83+
Assert.That(command2.CanExecute(0), Is.False);
84+
});
85+
}
86+
87+
[Test]
88+
public void AsyncCommand_NoParameter_CanExecuteTrue_Test()
89+
{
90+
//Arrange
91+
AsyncCommand command = new AsyncCommand(NoParameterTask, CanExecuteTrue);
92+
93+
//Act
94+
95+
//Assert
96+
97+
Assert.That(command.CanExecute(null), Is.True);
98+
}
99+
100+
[Test]
101+
public void AsyncCommand_NoParameter_CanExecuteFalse_Test()
102+
{
103+
//Arrange
104+
AsyncCommand command = new AsyncCommand(NoParameterTask, CanExecuteFalse);
105+
106+
//Act
107+
108+
//Assert
109+
Assert.That(command.CanExecute(null), Is.False);
110+
}
111+
112+
113+
[Test]
114+
public void AsyncCommand_CanExecuteChanged_Test()
115+
{
116+
//Arrange
117+
bool canCommandExecute = false;
118+
bool didCanExecuteChangeFire = false;
119+
120+
AsyncCommand command = new AsyncCommand(NoParameterTask, commandCanExecute);
121+
command.CanExecuteChanged += handleCanExecuteChanged;
122+
123+
void handleCanExecuteChanged(object? sender, EventArgs e) => didCanExecuteChangeFire = true;
124+
bool commandCanExecute(object? parameter) => canCommandExecute;
125+
126+
127+
Assert.That(command.CanExecute(null), Is.False);
128+
129+
130+
//Act
131+
canCommandExecute = true;
132+
133+
Assert.Multiple(() =>
134+
{
135+
//Assert
136+
Assert.That(command.CanExecute(null), Is.True);
137+
Assert.That(didCanExecuteChangeFire, Is.False);
138+
});
139+
140+
//Act
141+
command.RaiseCanExecuteChanged();
142+
143+
Assert.Multiple(() =>
144+
{
145+
//Assert
146+
Assert.That(didCanExecuteChangeFire, Is.True);
147+
Assert.That(command.CanExecute(null), Is.True);
148+
});
149+
}
145150
}

0 commit comments

Comments
 (0)