Fix bad serials (#304)
- [X] Fixes bad serial calculations - [X] Tightens HexStrings Bumps release version Updates documentation
This commit is contained in:
parent
b0c1076cb5
commit
ae436cb55f
46 changed files with 76 additions and 51 deletions
|
|
@ -0,0 +1,95 @@
|
|||
using Server.Utilities;
|
||||
using Xunit;
|
||||
|
||||
namespace Server.Tests
|
||||
{
|
||||
public class ActivatorExtensionsTests
|
||||
{
|
||||
[Fact]
|
||||
public void TestZeroParamsActivator()
|
||||
{
|
||||
var result = typeof(TestZeroParamsClass).CreateInstance<TestZeroParamsClass>();
|
||||
Assert.IsType<TestZeroParamsClass>(result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestZeroParamsNullActivator()
|
||||
{
|
||||
var result = typeof(TestZeroParamsClass).CreateInstance<TestZeroParamsClass>(null, null);
|
||||
Assert.IsType<TestZeroParamsClass>(result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestTwoParamsActivator()
|
||||
{
|
||||
var result = typeof(TestTwoParamsClass).CreateInstance<TestTwoParamsClass>(10, "ModernUO");
|
||||
Assert.IsType<TestTwoParamsClass>(result);
|
||||
Assert.Equal(10, result.Amount);
|
||||
Assert.Equal("ModernUO", result.Name);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestAllParamsOptionalActivator()
|
||||
{
|
||||
var result = typeof(TestTwoOptionalParamsClass).CreateInstance<TestTwoOptionalParamsClass>();
|
||||
Assert.IsType<TestTwoOptionalParamsClass>(result);
|
||||
Assert.Equal(1, result.Amount);
|
||||
Assert.Equal("Test ModernUO", result.Name);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestAllParamsNullOptionalActivator()
|
||||
{
|
||||
var result = typeof(TestTwoOptionalParamsClass).CreateInstance<TestTwoOptionalParamsClass>(null);
|
||||
Assert.IsType<TestTwoOptionalParamsClass>(result);
|
||||
Assert.Equal(1, result.Amount);
|
||||
Assert.Equal("Test ModernUO", result.Name);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestLessParamsOptionalActivator()
|
||||
{
|
||||
var result = typeof(TestTwoOptionalParamsClass).CreateInstance<TestTwoOptionalParamsClass>(10);
|
||||
Assert.IsType<TestTwoOptionalParamsClass>(result);
|
||||
Assert.Equal(10, result.Amount);
|
||||
Assert.Equal("Test ModernUO", result.Name);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestTwoParamsOptionalActivator()
|
||||
{
|
||||
var result = typeof(TestTwoOptionalParamsClass).CreateInstance<TestTwoOptionalParamsClass>(10, "Prod ModernUO");
|
||||
Assert.IsType<TestTwoOptionalParamsClass>(result);
|
||||
Assert.Equal(10, result.Amount);
|
||||
Assert.Equal("Prod ModernUO", result.Name);
|
||||
}
|
||||
|
||||
private class TestZeroParamsClass
|
||||
{
|
||||
}
|
||||
|
||||
private class TestTwoParamsClass
|
||||
{
|
||||
public int Amount;
|
||||
public string Name;
|
||||
|
||||
public TestTwoParamsClass(int amount, string name)
|
||||
{
|
||||
Amount = amount;
|
||||
Name = name;
|
||||
}
|
||||
}
|
||||
|
||||
private class TestTwoOptionalParamsClass
|
||||
{
|
||||
public int Amount;
|
||||
public string Name;
|
||||
|
||||
public TestTwoOptionalParamsClass(int amount = 1, string name = "Test ModernUO")
|
||||
{
|
||||
Amount = amount;
|
||||
Name = name;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
using System;
|
||||
using Xunit;
|
||||
|
||||
namespace Server.Tests.Accounting
|
||||
{
|
||||
public class HexStringConverterTest
|
||||
{
|
||||
[Theory]
|
||||
[InlineData("ABCDEF1234", new byte[] { 0xAB, 0xCD, 0xEF, 0x12, 0x34 })]
|
||||
public void TestGetBytes(string input, byte[] bytes)
|
||||
{
|
||||
Span<byte> outputBytes = stackalloc byte[input.Length / 2];
|
||||
HexStringConverter.GetBytes(input, outputBytes);
|
||||
|
||||
Assert.Equal(bytes, outputBytes.ToArray());
|
||||
Assert.Equal(input, bytes.ToHexString());
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("[AB, CD, EF, 12, 34]", new byte[] { 0xAB, 0xCD, 0xEF, 0x12, 0x34 })]
|
||||
public void TestsGetStringDelimited(string expected, byte[] bytes)
|
||||
{
|
||||
Assert.Equal(expected, bytes.ToDelimitedHexString());
|
||||
}
|
||||
}
|
||||
}
|
||||
18
Projects/Server.Tests/Tests/Utility/StringHelperTests.cs
Normal file
18
Projects/Server.Tests/Tests/Utility/StringHelperTests.cs
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
using Xunit;
|
||||
|
||||
namespace Server.Tests
|
||||
{
|
||||
public class TestStringHelpers
|
||||
{
|
||||
[Theory]
|
||||
[InlineData(null, "default value", "default value")]
|
||||
[InlineData("", "default value", "default value")]
|
||||
[InlineData("this is a valid string", "default value", "this is a valid string")]
|
||||
public void TestIsNullOrDefault(string value, string defaultValue, string expected)
|
||||
{
|
||||
var actual = value.DefaultIfNullOrEmpty(defaultValue);
|
||||
|
||||
Assert.Equal(expected, actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue