wabbajack/Wabbajack.Test/AVortexCompilerTest.cs

69 lines
2.0 KiB
C#
Raw Normal View History

using System;
using System.IO;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Wabbajack.Common;
using Wabbajack.Lib;
namespace Wabbajack.Test
{
public abstract class AVortexCompilerTest
{
public TestContext TestContext { get; set; }
protected TestUtils utils { get; set; }
[TestInitialize]
public void TestInitialize()
{
Consts.TestMode = true;
utils = new TestUtils
{
2019-11-16 22:02:36 +00:00
Game = Game.DarkestDungeon
};
Utils.LogMessages.Subscribe(f => TestContext.WriteLine(f));
}
[TestCleanup]
public void TestCleanup()
{
utils.Dispose();
}
protected VortexCompiler ConfigureAndRunCompiler()
{
var vortexCompiler = MakeCompiler();
vortexCompiler.DownloadsFolder = utils.DownloadsFolder;
vortexCompiler.StagingFolder = utils.InstallFolder;
Directory.CreateDirectory(utils.InstallFolder);
Assert.IsTrue(vortexCompiler.Compile());
return vortexCompiler;
}
protected VortexCompiler MakeCompiler()
{
2019-11-16 22:02:36 +00:00
var vortexCompiler = new VortexCompiler(GameRegistry.Games[utils.Game].NexusName, utils.GameFolder);
return vortexCompiler;
}
protected ModList CompileAndInstall()
{
var vortexCompiler = ConfigureAndRunCompiler();
Install(vortexCompiler);
return vortexCompiler.ModList;
}
protected void Install(VortexCompiler vortexCompiler)
{
var modList = Installer.LoadFromFile(vortexCompiler.ModListOutputFile);
var installer = new Installer(vortexCompiler.ModListOutputFile, modList, utils.InstallFolder)
{
DownloadFolder = utils.DownloadsFolder,
GameFolder = utils.GameFolder,
};
installer.Install();
}
}
}