#develop (short for SharpDevelop) is a free IDE for .NET programming languages.
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

// 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);
}
}
}