You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
3.0 KiB
91 lines
3.0 KiB
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) |
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) |
|
|
|
using System; |
|
using ICSharpCode.PackageManagement.Design; |
|
using ICSharpCode.PackageManagement.Scripting; |
|
using ICSharpCode.Scripting.Tests.Utils; |
|
using ICSharpCode.SharpDevelop.Project; |
|
using NUnit.Framework; |
|
using PackageManagement.Tests.Helpers; |
|
|
|
namespace PackageManagement.Tests.Scripting |
|
{ |
|
[TestFixture] |
|
public class RunPackageInitializationScriptsOnSolutionOpenTests |
|
{ |
|
FakePackageInitializationScriptsFactory fakeScriptsFactory; |
|
FakePackageManagementProjectService fakeProjectService; |
|
RunPackageInitializationScriptsOnSolutionOpen runner; |
|
FakePackageManagementConsoleHost fakeConsoleHost; |
|
FakeScriptingConsole fakeScriptingConsole; |
|
PackageInitializationScriptsConsole scriptsConsole; |
|
|
|
void CreateRunner() |
|
{ |
|
fakeProjectService = new FakePackageManagementProjectService(); |
|
fakeConsoleHost = new FakePackageManagementConsoleHost(); |
|
fakeScriptingConsole = new FakeScriptingConsole(); |
|
fakeConsoleHost.ScriptingConsole = fakeScriptingConsole; |
|
scriptsConsole = new PackageInitializationScriptsConsole(fakeConsoleHost); |
|
fakeScriptsFactory = new FakePackageInitializationScriptsFactory(); |
|
runner = new RunPackageInitializationScriptsOnSolutionOpen(fakeProjectService, scriptsConsole, fakeScriptsFactory); |
|
} |
|
|
|
Solution OpenSolution() |
|
{ |
|
var solution = new Solution(); |
|
solution.FileName = @"d:\projects\myprojects\test.csproj"; |
|
fakeProjectService.FireSolutionLoadedEvent(solution); |
|
return solution; |
|
} |
|
|
|
void SolutionHasPackageInitializationScripts() |
|
{ |
|
fakeScriptsFactory.FakePackageInitializationScripts.AnyReturnValue = true; |
|
} |
|
|
|
void SolutionHasNoPackageInitializationScripts() |
|
{ |
|
fakeScriptsFactory.FakePackageInitializationScripts.AnyReturnValue = false; |
|
} |
|
|
|
[Test] |
|
public void Instance_SolutionIsOpened_PackageInitializationScriptsCreatedUsingSolution() |
|
{ |
|
CreateRunner(); |
|
Solution expectedSolution = OpenSolution(); |
|
|
|
Solution actualSolution = fakeScriptsFactory.SolutionPassedToCreatePackageInitializationScripts; |
|
|
|
Assert.AreEqual(expectedSolution, actualSolution); |
|
} |
|
|
|
[Test] |
|
public void Instance_SolutionOpenedAndHasPackageInitializationScripts_InvokeInitializePackagesCmdletIsRun() |
|
{ |
|
CreateRunner(); |
|
SolutionHasPackageInitializationScripts(); |
|
fakeConsoleHost.IsRunning = true; |
|
OpenSolution(); |
|
|
|
string command = fakeConsoleHost.LastCommandExecuted; |
|
string expectedCommand = "Invoke-InitializePackages"; |
|
|
|
Assert.AreEqual(expectedCommand, command); |
|
} |
|
|
|
[Test] |
|
public void Instance_SolutionOpenedAndHasNoPackageInitializationScripts_InvokeInitializePackagesCmdletIsNotRun() |
|
{ |
|
CreateRunner(); |
|
SolutionHasNoPackageInitializationScripts(); |
|
fakeConsoleHost.IsRunning = true; |
|
OpenSolution(); |
|
|
|
bool contains = fakeConsoleHost.CommandsExecuted.Contains("Invoke-InitializePackages"); |
|
|
|
Assert.IsFalse(contains); |
|
} |
|
} |
|
}
|
|
|