36 changed files with 481 additions and 74 deletions
@ -0,0 +1,12 @@ |
|||||||
|
// 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; |
||||||
|
|
||||||
|
namespace ICSharpCode.PackageManagement |
||||||
|
{ |
||||||
|
public interface IAddPackageReferenceView : IDisposable |
||||||
|
{ |
||||||
|
bool? ShowDialog(); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,23 @@ |
|||||||
|
// 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 NuGet; |
||||||
|
|
||||||
|
namespace ICSharpCode.PackageManagement |
||||||
|
{ |
||||||
|
public class PackageManagementLogger : ILogger |
||||||
|
{ |
||||||
|
IPackageManagementEvents packageManagementEvents; |
||||||
|
|
||||||
|
public PackageManagementLogger(IPackageManagementEvents packageManagementEvents) |
||||||
|
{ |
||||||
|
this.packageManagementEvents = packageManagementEvents; |
||||||
|
} |
||||||
|
|
||||||
|
public void Log(MessageLevel level, string message, params object[] args) |
||||||
|
{ |
||||||
|
packageManagementEvents.OnPackageOperationMessageLogged(level, message, args); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,31 @@ |
|||||||
|
// 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 NuGet; |
||||||
|
|
||||||
|
namespace ICSharpCode.PackageManagement |
||||||
|
{ |
||||||
|
public class PackageOperationMessage |
||||||
|
{ |
||||||
|
string message; |
||||||
|
object[] args; |
||||||
|
|
||||||
|
public PackageOperationMessage( |
||||||
|
MessageLevel level, |
||||||
|
string message, |
||||||
|
params object[] args) |
||||||
|
{ |
||||||
|
this.Level = level; |
||||||
|
this.message = message; |
||||||
|
this.args = args; |
||||||
|
} |
||||||
|
|
||||||
|
public MessageLevel Level { get; private set; } |
||||||
|
|
||||||
|
public override string ToString() |
||||||
|
{ |
||||||
|
return String.Format(message, args); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,21 @@ |
|||||||
|
// 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 NuGet; |
||||||
|
|
||||||
|
namespace ICSharpCode.PackageManagement |
||||||
|
{ |
||||||
|
public class PackageOperationMessageLoggedEventArgs : EventArgs |
||||||
|
{ |
||||||
|
public PackageOperationMessageLoggedEventArgs( |
||||||
|
MessageLevel level, |
||||||
|
string message, |
||||||
|
params object[] args) |
||||||
|
{ |
||||||
|
this.Message = new PackageOperationMessage(level, message, args); |
||||||
|
} |
||||||
|
|
||||||
|
public PackageOperationMessage Message { get; private set; } |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,51 @@ |
|||||||
|
// 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 NUnit.Framework; |
||||||
|
using PackageManagement.Tests.Helpers; |
||||||
|
|
||||||
|
namespace PackageManagement.Tests |
||||||
|
{ |
||||||
|
[TestFixture] |
||||||
|
public class AddPackageReferenceCommandTests |
||||||
|
{ |
||||||
|
TestableAddPackageReferenceCommand command; |
||||||
|
FakeAddPackageReferenceView view; |
||||||
|
|
||||||
|
void CreateCommand() |
||||||
|
{ |
||||||
|
command = new TestableAddPackageReferenceCommand(); |
||||||
|
view = command.FakeAddPackageReferenceView; |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void Run_CommandExecuted_AddPackageReferenceViewIsDisplayed() |
||||||
|
{ |
||||||
|
CreateCommand(); |
||||||
|
command.Run(); |
||||||
|
|
||||||
|
Assert.IsTrue(view.IsShowDialogCalled); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void Run_CommandExecuted_AddPackageReferenceViewIsDisposed() |
||||||
|
{ |
||||||
|
CreateCommand(); |
||||||
|
command.Run(); |
||||||
|
|
||||||
|
Assert.IsTrue(view.IsDisposeCalled); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void Run_CommandExecuted_OutputMessagesViewIsCleared() |
||||||
|
{ |
||||||
|
CreateCommand(); |
||||||
|
command.Run(); |
||||||
|
|
||||||
|
bool result = command.FakeOutputMessagesView.IsClearCalled; |
||||||
|
|
||||||
|
Assert.IsTrue(result); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,26 @@ |
|||||||
|
// 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; |
||||||
|
|
||||||
|
namespace PackageManagement.Tests.Helpers |
||||||
|
{ |
||||||
|
public class FakeAddPackageReferenceView : IAddPackageReferenceView |
||||||
|
{ |
||||||
|
public bool IsShowDialogCalled; |
||||||
|
|
||||||
|
public bool? ShowDialog() |
||||||
|
{ |
||||||
|
IsShowDialogCalled = true; |
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
public bool IsDisposeCalled; |
||||||
|
|
||||||
|
public void Dispose() |
||||||
|
{ |
||||||
|
IsDisposeCalled = true; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,32 @@ |
|||||||
|
// 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 System.Windows; |
||||||
|
using ICSharpCode.PackageManagement; |
||||||
|
using ICSharpCode.PackageManagement.Design; |
||||||
|
|
||||||
|
namespace PackageManagement.Tests.Helpers |
||||||
|
{ |
||||||
|
public class TestableAddPackageReferenceCommand : AddPackageReferenceCommand |
||||||
|
{ |
||||||
|
public FakePackageManagementOutputMessagesView FakeOutputMessagesView; |
||||||
|
public FakeAddPackageReferenceView FakeAddPackageReferenceView = new FakeAddPackageReferenceView(); |
||||||
|
|
||||||
|
public TestableAddPackageReferenceCommand() |
||||||
|
: this(new FakePackageManagementOutputMessagesView()) |
||||||
|
{ |
||||||
|
} |
||||||
|
|
||||||
|
public TestableAddPackageReferenceCommand(FakePackageManagementOutputMessagesView view) |
||||||
|
: base(view) |
||||||
|
{ |
||||||
|
this.FakeOutputMessagesView = view; |
||||||
|
} |
||||||
|
|
||||||
|
protected override IAddPackageReferenceView CreateAddPackageReferenceView() |
||||||
|
{ |
||||||
|
return FakeAddPackageReferenceView; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,47 @@ |
|||||||
|
// 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; |
||||||
|
using NuGet; |
||||||
|
using NUnit.Framework; |
||||||
|
using PackageManagement.Tests.Helpers; |
||||||
|
|
||||||
|
namespace PackageManagement.Tests |
||||||
|
{ |
||||||
|
[TestFixture] |
||||||
|
public class PackageManagementLoggerTests |
||||||
|
{ |
||||||
|
FakePackageManagementEvents fakePackageManagementEvents; |
||||||
|
PackageManagementLogger logger; |
||||||
|
|
||||||
|
void CreateLogger() |
||||||
|
{ |
||||||
|
fakePackageManagementEvents = new FakePackageManagementEvents(); |
||||||
|
logger = new PackageManagementLogger(fakePackageManagementEvents); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void Log_WarningMessageLogged_RaisesMessageLoggedEventWithWarningMessageLevel() |
||||||
|
{ |
||||||
|
CreateLogger(); |
||||||
|
|
||||||
|
logger.Log(MessageLevel.Warning, "test"); |
||||||
|
|
||||||
|
Assert.AreEqual(MessageLevel.Warning, fakePackageManagementEvents.MessageLevelPassedToOnPackageOperationMessageLogged); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void Log_FormattedInfoMessageLogged_RaisesMessageLoggedEventWithFormattedMessage() |
||||||
|
{ |
||||||
|
CreateLogger(); |
||||||
|
|
||||||
|
string format = "Test {0}"; |
||||||
|
logger.Log(MessageLevel.Info, format, "C"); |
||||||
|
|
||||||
|
string message = fakePackageManagementEvents.FormattedStringPassedToOnPackageOperationMessageLogged; |
||||||
|
|
||||||
|
Assert.AreEqual("Test C", message); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,50 @@ |
|||||||
|
// 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; |
||||||
|
using NuGet; |
||||||
|
using NUnit.Framework; |
||||||
|
|
||||||
|
namespace PackageManagement.Tests |
||||||
|
{ |
||||||
|
[TestFixture] |
||||||
|
public class PackageOperationMessageTests |
||||||
|
{ |
||||||
|
[Test] |
||||||
|
public void Level_CreateInfoMessage_CreatesMessageWithMessageLevelSetToInfo() |
||||||
|
{ |
||||||
|
var message = new PackageOperationMessage(MessageLevel.Info, "test"); |
||||||
|
|
||||||
|
Assert.AreEqual(MessageLevel.Info, message.Level); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void Level_CreateWarningMessage_CreatesMessageWithMessageLevelSetToWarning() |
||||||
|
{ |
||||||
|
var message = new PackageOperationMessage(MessageLevel.Warning, "test"); |
||||||
|
|
||||||
|
Assert.AreEqual(MessageLevel.Warning, message.Level); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void ToString_CreateWarningMessage_ReturnsMessage() |
||||||
|
{ |
||||||
|
var message = new PackageOperationMessage(MessageLevel.Warning, "test"); |
||||||
|
var text = message.ToString(); |
||||||
|
|
||||||
|
Assert.AreEqual("test", text); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void ToString_CreateFormattedWarningMessage_ReturnsFormattedMessage() |
||||||
|
{ |
||||||
|
string format = "Test '{0}'."; |
||||||
|
var message = new PackageOperationMessage(MessageLevel.Warning, format, "A"); |
||||||
|
var text = message.ToString(); |
||||||
|
|
||||||
|
var expectedText = "Test 'A'."; |
||||||
|
Assert.AreEqual(expectedText, text); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue