|
|
|
@ -25,109 +25,21 @@ namespace NzbDrone.Integration.Test
|
|
|
|
|
protected ReleaseClient Releases;
|
|
|
|
|
protected IndexerClient Indexers;
|
|
|
|
|
|
|
|
|
|
private NzbDroneRunner _runner;
|
|
|
|
|
|
|
|
|
|
[SetUp]
|
|
|
|
|
public void SmokeTestSetup()
|
|
|
|
|
{
|
|
|
|
|
new StartupArguments();
|
|
|
|
|
|
|
|
|
|
KillNzbDrone();
|
|
|
|
|
_runner = new NzbDroneRunner();
|
|
|
|
|
_runner.KillAll();
|
|
|
|
|
|
|
|
|
|
InitRestClients();
|
|
|
|
|
|
|
|
|
|
PackageStart();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static void KillNzbDrone()
|
|
|
|
|
{
|
|
|
|
|
foreach (var p in Process.GetProcessesByName("NzbDrone.Console"))
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
p.Kill();
|
|
|
|
|
}
|
|
|
|
|
catch (Win32Exception)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private string AppDate;
|
|
|
|
|
|
|
|
|
|
private void PackageStart()
|
|
|
|
|
{
|
|
|
|
|
AppDate = Path.Combine(Directory.GetCurrentDirectory(), "_intg_" + DateTime.Now.Ticks);
|
|
|
|
|
|
|
|
|
|
if (BuildInfo.IsDebug)
|
|
|
|
|
{
|
|
|
|
|
Start("..\\..\\..\\..\\_output\\NzbDrone.Console.exe");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Start("bin\\NzbDrone.Console.exe");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
while (RestClient.Get(new RestRequest("system/status")).ResponseStatus != ResponseStatus.Completed)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
Thread.Sleep(1000);
|
|
|
|
|
}
|
|
|
|
|
_runner.Start();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private Process Start(string path)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
var args = "-nobrowser -data=\"" + AppDate + "\"";
|
|
|
|
|
|
|
|
|
|
var startInfo = new ProcessStartInfo(path, args)
|
|
|
|
|
{
|
|
|
|
|
CreateNoWindow = true,
|
|
|
|
|
UseShellExecute = false,
|
|
|
|
|
RedirectStandardError = true,
|
|
|
|
|
RedirectStandardOutput = true,
|
|
|
|
|
RedirectStandardInput = true
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Console.WriteLine("Starting {0} {1}", path, args);
|
|
|
|
|
|
|
|
|
|
var process = new Process
|
|
|
|
|
{
|
|
|
|
|
StartInfo = startInfo
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
process.OutputDataReceived += (sender, eventArgs) =>
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrWhiteSpace(eventArgs.Data)) return;
|
|
|
|
|
|
|
|
|
|
if (eventArgs.Data.Contains("Press enter to exit"))
|
|
|
|
|
{
|
|
|
|
|
process.StandardInput.WriteLine(" ");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Console.WriteLine(eventArgs.Data);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
process.ErrorDataReceived += (sender, eventArgs) =>
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrWhiteSpace(eventArgs.Data)) return;
|
|
|
|
|
|
|
|
|
|
if (eventArgs.Data.Contains("Press enter to exit"))
|
|
|
|
|
{
|
|
|
|
|
process.StandardInput.WriteLine(" ");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Console.WriteLine(eventArgs.Data);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
process.Start();
|
|
|
|
|
|
|
|
|
|
process.BeginErrorReadLine();
|
|
|
|
|
process.BeginOutputReadLine();
|
|
|
|
|
|
|
|
|
|
process.Exited += (sender, eventArgs) => Assert.Fail("Process exited");
|
|
|
|
|
|
|
|
|
|
return process;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void InitRestClients()
|
|
|
|
|
{
|
|
|
|
@ -142,7 +54,7 @@ namespace NzbDrone.Integration.Test
|
|
|
|
|
[TearDown]
|
|
|
|
|
public void SmokeTestTearDown()
|
|
|
|
|
{
|
|
|
|
|
KillNzbDrone();
|
|
|
|
|
_runner.KillAll();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|