At least the app launches

This commit is contained in:
Timothy Baldridge 2020-03-28 15:09:45 -06:00
parent b5006a0737
commit b8afcfa781
7 changed files with 64 additions and 10 deletions

View File

@ -0,0 +1,24 @@
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Threading;
using Xunit;
namespace Wabbajack.App.Test
{
public class BasicUITests
{
[StaFact]
public async Task CanCompileASimpleModlist()
{
SynchronizationContext.SetSynchronizationContext(new DispatcherSynchronizationContext(Dispatcher.CurrentDispatcher));
var window = new MainWindow();
window.Show();
await Task.Delay(1000);
window.Close();
Assert.True(true);
}
}
}

View File

@ -0,0 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.console" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
<PackageReference Include="Xunit.StaFact" Version="0.3.18" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Wabbajack\Wabbajack.csproj" />
</ItemGroup>
</Project>

View File

@ -42,11 +42,11 @@ namespace Wabbajack.Common
}); });
} }
public static T FromJSON<T>(this string filename, public static T FromJSON<T>(this AbsolutePath filename,
TypeNameHandling handling = TypeNameHandling.All, TypeNameHandling handling = TypeNameHandling.All,
TypeNameAssemblyFormatHandling format = TypeNameAssemblyFormatHandling.Full) TypeNameAssemblyFormatHandling format = TypeNameAssemblyFormatHandling.Full)
{ {
return JsonConvert.DeserializeObject<T>(File.ReadAllText(filename), return JsonConvert.DeserializeObject<T>(filename.ReadAllText(),
new JsonSerializerSettings {TypeNameHandling = handling, new JsonSerializerSettings {TypeNameHandling = handling,
TypeNameAssemblyFormatHandling = format, TypeNameAssemblyFormatHandling = format,
Converters = Converters Converters = Converters

View File

@ -218,6 +218,7 @@ namespace Wabbajack.Common
public static explicit operator AbsolutePath(string path) public static explicit operator AbsolutePath(string path)
{ {
if (string.IsNullOrEmpty(path)) return default;
return !Path.IsPathRooted(path) ? ((RelativePath)path).RelativeToEntryPoint() : new AbsolutePath(path); return !Path.IsPathRooted(path) ? ((RelativePath)path).RelativeToEntryPoint() : new AbsolutePath(path);
} }

View File

@ -17,11 +17,11 @@ namespace Wabbajack.Lib
{ {
private static MO2Compiler _mo2Compiler; private static MO2Compiler _mo2Compiler;
public static string FindzEditPath(ACompiler compiler) public static AbsolutePath FindzEditPath(ACompiler compiler)
{ {
_mo2Compiler = (MO2Compiler) compiler; _mo2Compiler = (MO2Compiler) compiler;
var executables = _mo2Compiler.MO2Ini.customExecutables; var executables = _mo2Compiler.MO2Ini.customExecutables;
if (executables.size == null) return null; if (executables.size == null) return default;
foreach (var idx in Enumerable.Range(1, int.Parse(executables.size))) foreach (var idx in Enumerable.Range(1, int.Parse(executables.size)))
{ {
@ -29,10 +29,10 @@ namespace Wabbajack.Lib
if (path == null) continue; if (path == null) continue;
if (path.EndsWith("zEdit.exe")) if (path.EndsWith("zEdit.exe"))
return Path.GetDirectoryName(path); return (AbsolutePath)path;
} }
return null; return default;
} }
public class IncludeZEditPatches : ACompilationStep public class IncludeZEditPatches : ACompilationStep
@ -52,9 +52,8 @@ namespace Wabbajack.Lib
return; return;
} }
var merges = Directory.EnumerateFiles(Path.Combine(zEditPath, "profiles"), var merges = zEditPath.Combine("profiles").EnumerateFiles()
DirectoryEnumerationOptions.Files | DirectoryEnumerationOptions.Recursive) .Where(f => f.FileName == (RelativePath)"merges.json")
.Where(f => f.EndsWith("\\merges.json"))
.SelectMany(f => f.FromJSON<List<zEditMerge>>()) .SelectMany(f => f.FromJSON<List<zEditMerge>>())
.GroupBy(f => (f.name, f.filename)); .GroupBy(f => (f.name, f.filename));

View File

@ -40,6 +40,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wabbajack.Launcher", "Wabba
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wabbajack.Common.Test", "Wabbajack.Common.Test\Wabbajack.Common.Test.csproj", "{BA8A3E49-60D2-4BA2-B285-CB09FFDB6D32}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wabbajack.Common.Test", "Wabbajack.Common.Test\Wabbajack.Common.Test.csproj", "{BA8A3E49-60D2-4BA2-B285-CB09FFDB6D32}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wabbajack.App.Test", "Wabbajack.App.Test\Wabbajack.App.Test.csproj", "{44E30B97-D4A8-40A6-81D5-5CAB1F3D45CB}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
@ -139,6 +141,14 @@ Global
{BA8A3E49-60D2-4BA2-B285-CB09FFDB6D32}.Release|x64.ActiveCfg = Release|x64 {BA8A3E49-60D2-4BA2-B285-CB09FFDB6D32}.Release|x64.ActiveCfg = Release|x64
{BA8A3E49-60D2-4BA2-B285-CB09FFDB6D32}.Release|x64.Build.0 = Release|x64 {BA8A3E49-60D2-4BA2-B285-CB09FFDB6D32}.Release|x64.Build.0 = Release|x64
{BA8A3E49-60D2-4BA2-B285-CB09FFDB6D32}.Debug|Any CPU.Build.0 = Debug|x64 {BA8A3E49-60D2-4BA2-B285-CB09FFDB6D32}.Debug|Any CPU.Build.0 = Debug|x64
{44E30B97-D4A8-40A6-81D5-5CAB1F3D45CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{44E30B97-D4A8-40A6-81D5-5CAB1F3D45CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{44E30B97-D4A8-40A6-81D5-5CAB1F3D45CB}.Debug|x64.ActiveCfg = Debug|Any CPU
{44E30B97-D4A8-40A6-81D5-5CAB1F3D45CB}.Debug|x64.Build.0 = Debug|Any CPU
{44E30B97-D4A8-40A6-81D5-5CAB1F3D45CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{44E30B97-D4A8-40A6-81D5-5CAB1F3D45CB}.Release|Any CPU.Build.0 = Release|Any CPU
{44E30B97-D4A8-40A6-81D5-5CAB1F3D45CB}.Release|x64.ActiveCfg = Release|Any CPU
{44E30B97-D4A8-40A6-81D5-5CAB1F3D45CB}.Release|x64.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE

View File

@ -35,7 +35,7 @@ namespace Wabbajack
} }
// Version check // Version check
settings = JsonConvert.DeserializeObject<MainSettings>(Consts.SettingsFile.ReadAllText()); settings = Consts.SettingsFile.FromJSON<MainSettings>();
if (settings.Version == Consts.SettingsVersion) if (settings.Version == Consts.SettingsVersion)
return true; return true;