Port tests to .Net Core (#2156)

* Rewrite tests with XUnit and .Net Core
* Add better "because" message
* Skipping test that was not ready & convert the fact to a theory
* Tweak casing
* Convert select date tests to theories
* Make the GetStringList load lock safer
This commit is contained in:
Evan Dixon 2018-11-06 17:25:35 -06:00 committed by Kurt
parent d5c22b1e51
commit 9c87ad2977
131 changed files with 931 additions and 1073 deletions

View File

@ -32,7 +32,7 @@ public static IEnumerable<PKM> GeneratePKMs(PKM pk, ITrainerInfo info, int[] mov
#if DEBUG
var la = new LegalityAnalysis(result);
if (!la.Valid)
throw new Exception();
throw new Exception("Legality analysis of generated Pokémon is invalid");
#endif
yield return result;
}

View File

@ -15,6 +15,8 @@ public static partial class Util
private static readonly Dictionary<string, string> resourceNameMap = new Dictionary<string, string>();
private static readonly Dictionary<string, string[]> stringListCache = new Dictionary<string, string[]>();
private static object getStringListLoadLock = new object();
#region String Lists
/// <summary>
@ -85,7 +87,15 @@ public static string[] GetStringList(string f)
string[] rawlist = txt.Split('\n');
for (int i = 0; i < rawlist.Length; i++)
rawlist[i] = rawlist[i].TrimEnd('\r');
stringListCache.Add(f, rawlist);
lock (getStringListLoadLock) // Make sure only one thread can write to the cache
{
if (!stringListCache.ContainsKey(f)) // Check cache again in case of race condition
{
stringListCache.Add(f, rawlist);
}
}
return (string[])rawlist.Clone();
}

View File

@ -3,8 +3,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.26430.4
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PKHeX.Tests", "Tests\PKHeX.Tests\PKHeX.Tests.csproj", "{8E2499BC-C11A-4809-8737-66D35A625425}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{7C0598C9-DDF3-4ACC-B15D-6A626ADB7530}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{0137B955-AED7-4769-BDFE-637034CA9F8A}"
@ -15,7 +13,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PKHeX.WinForms", "PKHeX.WinForms\PKHeX.WinForms.csproj", "{D1B91861-A448-4762-A313-C7BC179F4415}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PKHeX.Core", "PKHeX.Core\PKHeX.Core.csproj", "{279E59F2-50EA-475D-8BA4-FA69F0578C0D}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PKHeX.Core", "PKHeX.Core\PKHeX.Core.csproj", "{279E59F2-50EA-475D-8BA4-FA69F0578C0D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PKHeX.Core.Tests", "Tests\PKHeX.Core.Tests\PKHeX.Core.Tests.csproj", "{C3B5B74F-ACE8-4FB2-A917-0DEDBFD5703B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -31,22 +31,6 @@ Global
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{8E2499BC-C11A-4809-8737-66D35A625425}.ClickOnce|Any CPU.ActiveCfg = Release|Any CPU
{8E2499BC-C11A-4809-8737-66D35A625425}.ClickOnce|Any CPU.Build.0 = Release|Any CPU
{8E2499BC-C11A-4809-8737-66D35A625425}.ClickOnce|x86.ActiveCfg = Release|x86
{8E2499BC-C11A-4809-8737-66D35A625425}.ClickOnce|x86.Build.0 = Release|x86
{8E2499BC-C11A-4809-8737-66D35A625425}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8E2499BC-C11A-4809-8737-66D35A625425}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8E2499BC-C11A-4809-8737-66D35A625425}.Debug|x86.ActiveCfg = Debug|x86
{8E2499BC-C11A-4809-8737-66D35A625425}.Debug|x86.Build.0 = Debug|x86
{8E2499BC-C11A-4809-8737-66D35A625425}.Mono-Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8E2499BC-C11A-4809-8737-66D35A625425}.Mono-Debug|x86.ActiveCfg = Debug|x86
{8E2499BC-C11A-4809-8737-66D35A625425}.Mono-Release|Any CPU.ActiveCfg = Release|Any CPU
{8E2499BC-C11A-4809-8737-66D35A625425}.Mono-Release|x86.ActiveCfg = Release|x86
{8E2499BC-C11A-4809-8737-66D35A625425}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8E2499BC-C11A-4809-8737-66D35A625425}.Release|Any CPU.Build.0 = Release|Any CPU
{8E2499BC-C11A-4809-8737-66D35A625425}.Release|x86.ActiveCfg = Release|x86
{8E2499BC-C11A-4809-8737-66D35A625425}.Release|x86.Build.0 = Release|x86
{D1B91861-A448-4762-A313-C7BC179F4415}.ClickOnce|Any CPU.ActiveCfg = ClickOnce|Any CPU
{D1B91861-A448-4762-A313-C7BC179F4415}.ClickOnce|Any CPU.Build.0 = ClickOnce|Any CPU
{D1B91861-A448-4762-A313-C7BC179F4415}.ClickOnce|x86.ActiveCfg = Release|x86
@ -87,11 +71,34 @@ Global
{279E59F2-50EA-475D-8BA4-FA69F0578C0D}.Release|Any CPU.Build.0 = Release|Any CPU
{279E59F2-50EA-475D-8BA4-FA69F0578C0D}.Release|x86.ActiveCfg = Release|Any CPU
{279E59F2-50EA-475D-8BA4-FA69F0578C0D}.Release|x86.Build.0 = Release|Any CPU
{C3B5B74F-ACE8-4FB2-A917-0DEDBFD5703B}.ClickOnce|Any CPU.ActiveCfg = Debug|Any CPU
{C3B5B74F-ACE8-4FB2-A917-0DEDBFD5703B}.ClickOnce|Any CPU.Build.0 = Debug|Any CPU
{C3B5B74F-ACE8-4FB2-A917-0DEDBFD5703B}.ClickOnce|x86.ActiveCfg = Debug|Any CPU
{C3B5B74F-ACE8-4FB2-A917-0DEDBFD5703B}.ClickOnce|x86.Build.0 = Debug|Any CPU
{C3B5B74F-ACE8-4FB2-A917-0DEDBFD5703B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C3B5B74F-ACE8-4FB2-A917-0DEDBFD5703B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C3B5B74F-ACE8-4FB2-A917-0DEDBFD5703B}.Debug|x86.ActiveCfg = Debug|Any CPU
{C3B5B74F-ACE8-4FB2-A917-0DEDBFD5703B}.Debug|x86.Build.0 = Debug|Any CPU
{C3B5B74F-ACE8-4FB2-A917-0DEDBFD5703B}.Mono-Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C3B5B74F-ACE8-4FB2-A917-0DEDBFD5703B}.Mono-Debug|Any CPU.Build.0 = Debug|Any CPU
{C3B5B74F-ACE8-4FB2-A917-0DEDBFD5703B}.Mono-Debug|x86.ActiveCfg = Debug|Any CPU
{C3B5B74F-ACE8-4FB2-A917-0DEDBFD5703B}.Mono-Debug|x86.Build.0 = Debug|Any CPU
{C3B5B74F-ACE8-4FB2-A917-0DEDBFD5703B}.Mono-Release|Any CPU.ActiveCfg = Release|Any CPU
{C3B5B74F-ACE8-4FB2-A917-0DEDBFD5703B}.Mono-Release|Any CPU.Build.0 = Release|Any CPU
{C3B5B74F-ACE8-4FB2-A917-0DEDBFD5703B}.Mono-Release|x86.ActiveCfg = Release|Any CPU
{C3B5B74F-ACE8-4FB2-A917-0DEDBFD5703B}.Mono-Release|x86.Build.0 = Release|Any CPU
{C3B5B74F-ACE8-4FB2-A917-0DEDBFD5703B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C3B5B74F-ACE8-4FB2-A917-0DEDBFD5703B}.Release|Any CPU.Build.0 = Release|Any CPU
{C3B5B74F-ACE8-4FB2-A917-0DEDBFD5703B}.Release|x86.ActiveCfg = Release|Any CPU
{C3B5B74F-ACE8-4FB2-A917-0DEDBFD5703B}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{8E2499BC-C11A-4809-8737-66D35A625425} = {7C0598C9-DDF3-4ACC-B15D-6A626ADB7530}
{C3B5B74F-ACE8-4FB2-A917-0DEDBFD5703B} = {7C0598C9-DDF3-4ACC-B15D-6A626ADB7530}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {AAD7224E-2087-43E8-A7C9-D5555BFBB3B9}
EndGlobalSection
EndGlobal

Some files were not shown because too many files have changed in this diff Show More