Skip to content

Commit

Permalink
Add NUnit.Analyzer, rework test assertion recommendations
Browse files Browse the repository at this point in the history
  • Loading branch information
NooNameR authored and phatboyg committed Apr 19, 2024
1 parent 9afef0d commit 4603f90
Show file tree
Hide file tree
Showing 181 changed files with 2,310 additions and 1,707 deletions.
2 changes: 2 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ indent_size = 2

[*.cs]
end_of_line = lf
dotnet_diagnostic.NUnit1032.severity = suggestion

[*.md]
trim_trailing_whitespace = false
Expand All @@ -24,3 +25,4 @@ end_of_line = lf

[*.{cmd, bat}]
end_of_line = crlf

5 changes: 4 additions & 1 deletion Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,10 @@
<PackageVersion Include="Npgsql" Version="8.0.0" />
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.0" />
<PackageVersion Include="NUnit" Version="3.14.0" />
<PackageVersion Include="NUnit.Analyzers" Version="3.3.0" />
<PackageVersion Include="NUnit.Analyzers" Version="3.10.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageVersion>
<PackageVersion Include="NUnit3TestAdapter" Version="4.5.0" />
<PackageVersion Include="OpenTelemetry.Exporter.Jaeger" Version="1.5.1" />
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.8.0" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyInjection" />
<PackageReference Include="NUnit" />
<PackageReference Include="NUnit.Analyzers">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<ProjectReference Include="..\MassTransit\MassTransit.csproj" />
</ItemGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" />
<PackageReference Include="NUnit" />
<PackageReference Include="NUnit.Analyzers">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="NUnit3TestAdapter" />
<PackageReference Include="System.Text.Json" Condition="!$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net6.0'))" />
</ItemGroup>
Expand Down
112 changes: 71 additions & 41 deletions tests/MassTransit.Abstractions.Tests/NewId/Formatter_Specs.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,63 +7,66 @@
using NewIdParsers;
using NUnit.Framework;


[TestFixture]
public class Using_the_newid_formatters
{
private readonly Dictionary<string, string[]> _testValues;
public Using_the_newid_formatters()
{
var directory = AppDomain.CurrentDomain.BaseDirectory;
var textsFileName = Path.Combine(directory, "NewId", "texts.txt");
var fileText = File.ReadAllText(textsFileName);

_testValues = System.Text.Json.JsonSerializer.Deserialize<Dictionary<string, string[]>>(fileText);
}

// Base32
[Test]
public void Should_compare_known_conversions_Base32Lower() => CompareKnownEncoding("Base32Lower", new Base32Formatter());

[Test]
public void Should_compare_known_conversions_Base32Upper() => CompareKnownEncoding("Base32Upper", new Base32Formatter(true));
[Test]
public void Should_compare_known_conversions_CustomBase32() => CompareKnownEncoding("CustomBase32", new Base32Formatter("0123456789ABCDEFGHIJKLMNOPQRSTUV"));

// ZBase32
[Test]
public void Should_compare_known_conversions_ZBase32Lower() => CompareKnownEncoding("ZBase32Lower", new ZBase32Formatter());
[Test]
public void Should_compare_known_conversions_ZBase32Upper() => CompareKnownEncoding("ZBase32Upper", new ZBase32Formatter(true));
public void Should_compare_known_conversions_CustomBase32()
{
CompareKnownEncoding("CustomBase32", new Base32Formatter("0123456789ABCDEFGHIJKLMNOPQRSTUV"));
}

// Hex
[Test]
public void Should_compare_known_conversions_HexBase16Lower() => CompareKnownEncoding("HexBase16Lower", new HexFormatter());
public void Should_compare_known_conversions_DashedHexBase16BracketsLower()
{
CompareKnownEncoding("DashedHexBase16BracketsLower", new DashedHexFormatter('{', '}'));
}

[Test]
public void Should_compare_known_conversions_HexBase16Upper() => CompareKnownEncoding("HexBase16Upper", new HexFormatter(true));
public void Should_compare_known_conversions_DashedHexBase16BracketsUpper()
{
CompareKnownEncoding("DashedHexBase16BracketsUpper", new DashedHexFormatter('{', '}', true));
}

// DashedHex
[Test]
public void Should_compare_known_conversions_DashedHexBase16Lower() => CompareKnownEncoding("DashedHexBase16Lower", new DashedHexFormatter());
[Test]
public void Should_compare_known_conversions_DashedHexBase16Upper() => CompareKnownEncoding("DashedHexBase16Upper", new DashedHexFormatter(upperCase: true));
public void Should_compare_known_conversions_DashedHexBase16Lower()
{
CompareKnownEncoding("DashedHexBase16Lower", new DashedHexFormatter());
}

[Test]
public void Should_compare_known_conversions_DashedHexBase16BracketsLower() => CompareKnownEncoding("DashedHexBase16BracketsLower", new DashedHexFormatter('{', '}'));
public void Should_compare_known_conversions_DashedHexBase16Upper()
{
CompareKnownEncoding("DashedHexBase16Upper", new DashedHexFormatter(upperCase: true));
}

// Hex
[Test]
public void Should_compare_known_conversions_DashedHexBase16BracketsUpper() => CompareKnownEncoding("DashedHexBase16BracketsUpper", new DashedHexFormatter('{', '}', upperCase: true));
public void Should_compare_known_conversions_HexBase16Lower() => CompareKnownEncoding("HexBase16Lower", new HexFormatter());

[Test]
public void Should_compare_known_conversions_HexBase16Upper() => CompareKnownEncoding("HexBase16Upper", new HexFormatter(true));

public void CompareKnownEncoding(string name, INewIdFormatter formatter)
// ZBase32
[Test]
public void Should_compare_known_conversions_ZBase32Lower()
{
var guids = _testValues["Guids"];
var expectedValues = _testValues[name];
Assert.AreEqual(guids.Length, expectedValues.Length);
CompareKnownEncoding("ZBase32Lower", new ZBase32Formatter());
}

for (var i = 0; i < guids.Length; i++)
{
var newId = new NewId(guids[i]);
var text = newId.ToString(formatter);
Assert.AreEqual(expectedValues[i], text);
}
Console.WriteLine("Compared {0} equal conversions", guids.Length);
[Test]
public void Should_compare_known_conversions_ZBase32Upper()
{
CompareKnownEncoding("ZBase32Upper", new ZBase32Formatter(true));
}

[Test]
Expand All @@ -79,7 +82,7 @@ public void Should_convert_back_using_parser()
var newId = parser.Parse(ns);


Assert.AreEqual(n, newId);
Assert.That(newId, Is.EqualTo(n));
}

[Test]
Expand All @@ -95,7 +98,7 @@ public void Should_convert_back_using_standard_parser()
var newId = parser.Parse(ns);


Assert.AreEqual(n, newId);
Assert.That(newId, Is.EqualTo(n));
}

[Test]
Expand All @@ -107,7 +110,7 @@ public void Should_convert_using_custom_base32_formatting_characters()

var ns = n.ToString(formatter);

Assert.AreEqual("UQP7OV4AN129HB4N79GGF8GJ10", ns);
Assert.That(ns, Is.EqualTo("UQP7OV4AN129HB4N79GGF8GJ10"));
}

[Test]
Expand All @@ -119,7 +122,7 @@ public void Should_convert_using_standard_base32_formatting_characters()

var ns = n.ToString(formatter);

Assert.AreEqual("62ZHY7EKXBCJRLEXHJQQPIQTBA", ns);
Assert.That(ns, Is.EqualTo("62ZHY7EKXBCJRLEXHJQQPIQTBA"));
}

[Test]
Expand All @@ -131,7 +134,7 @@ public void Should_convert_using_the_optimized_human_readable_formatter()

var ns = n.ToString(formatter);

Assert.AreEqual("6438A9RKZBNJTMRZ8JOOXEOUBY", ns);
Assert.That(ns, Is.EqualTo("6438A9RKZBNJTMRZ8JOOXEOUBY"));
}

[Test]
Expand All @@ -145,7 +148,34 @@ public void Should_translate_often_transposed_characters_to_proper_values()
var newId = parser.Parse(ns);


Assert.AreEqual(n, newId);
Assert.That(newId, Is.EqualTo(n));
}

readonly Dictionary<string, string[]> _testValues;

public Using_the_newid_formatters()
{
var directory = AppDomain.CurrentDomain.BaseDirectory;
var textsFileName = Path.Combine(directory, "NewId", "texts.txt");
var fileText = File.ReadAllText(textsFileName);

_testValues = System.Text.Json.JsonSerializer.Deserialize<Dictionary<string, string[]>>(fileText);
}

public void CompareKnownEncoding(string name, INewIdFormatter formatter)
{
var guids = _testValues["Guids"];
var expectedValues = _testValues[name];
Assert.That(expectedValues, Has.Length.EqualTo(guids.Length));

for (var i = 0; i < guids.Length; i++)
{
var newId = new NewId(guids[i]);
var text = newId.ToString(formatter);
Assert.That(text, Is.EqualTo(expectedValues[i]));
}

Console.WriteLine("Compared {0} equal conversions", guids.Length);
}
}
}
Loading

0 comments on commit 4603f90

Please sign in to comment.