29 changed files with 528 additions and 39 deletions
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
// 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; |
||||
|
||||
namespace ICSharpCode.PackageManagement.Design |
||||
{ |
||||
public class FakePackageManagementOutputMessagesView : IPackageManagementOutputMessagesView |
||||
{ |
||||
public bool IsClearCalled; |
||||
|
||||
public void Clear() |
||||
{ |
||||
IsClearCalled = true; |
||||
} |
||||
|
||||
public void Log(MessageLevel level, string message, params object[] args) |
||||
{ |
||||
|
||||
} |
||||
} |
||||
} |
@ -0,0 +1,14 @@
@@ -0,0 +1,14 @@
|
||||
// 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 ICompilerMessageView |
||||
{ |
||||
IMessageViewCategory Create(string categoryName, string categoryDisplayName); |
||||
|
||||
IMessageViewCategory GetExisting(string name); |
||||
} |
||||
} |
@ -0,0 +1,13 @@
@@ -0,0 +1,13 @@
|
||||
// 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 IMessageViewCategory |
||||
{ |
||||
void AppendLine(string text); |
||||
void Clear(); |
||||
} |
||||
} |
@ -0,0 +1,13 @@
@@ -0,0 +1,13 @@
|
||||
// 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 interface IPackageManagementOutputMessagesView : ILogger |
||||
{ |
||||
void Clear(); |
||||
} |
||||
} |
@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
|
||||
// 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.SharpDevelop.Gui; |
||||
|
||||
namespace ICSharpCode.PackageManagement |
||||
{ |
||||
public class PackageManagementCompilerMessageView : ICompilerMessageView |
||||
{ |
||||
public IMessageViewCategory Create(string categoryName, string categoryDisplayName) |
||||
{ |
||||
MessageViewCategory view = null; |
||||
MessageViewCategory.Create(ref view, categoryName, categoryDisplayName); |
||||
return new PackageManagementMessageViewCategory(view); |
||||
} |
||||
|
||||
public IMessageViewCategory GetExisting(string categoryName) |
||||
{ |
||||
MessageViewCategory view = CompilerMessageView.Instance.GetCategory(categoryName); |
||||
if (view != null) { |
||||
return new PackageManagementMessageViewCategory(view); |
||||
} |
||||
return null; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,28 @@
@@ -0,0 +1,28 @@
|
||||
// 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.SharpDevelop.Gui; |
||||
|
||||
namespace ICSharpCode.PackageManagement |
||||
{ |
||||
public class PackageManagementMessageViewCategory : IMessageViewCategory |
||||
{ |
||||
MessageViewCategory messageViewCategory; |
||||
|
||||
public PackageManagementMessageViewCategory(MessageViewCategory messageViewCategory) |
||||
{ |
||||
this.messageViewCategory = messageViewCategory; |
||||
} |
||||
|
||||
public void AppendLine(string text) |
||||
{ |
||||
messageViewCategory.AppendLine(text); |
||||
} |
||||
|
||||
public void Clear() |
||||
{ |
||||
messageViewCategory.ClearText(); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,49 @@
@@ -0,0 +1,49 @@
|
||||
// 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 PackageManagementOutputMessagesView : IPackageManagementOutputMessagesView |
||||
{ |
||||
public static readonly string CategoryName = "PackageManagement"; |
||||
|
||||
IMessageViewCategory messageViewCategory; |
||||
|
||||
public PackageManagementOutputMessagesView() |
||||
: this(new PackageManagementCompilerMessageView()) |
||||
{ |
||||
} |
||||
|
||||
public PackageManagementOutputMessagesView(ICompilerMessageView compilerMessageView) |
||||
{ |
||||
CreatePackageManagementMessageCategoryIfNoneExists(compilerMessageView); |
||||
} |
||||
|
||||
void CreatePackageManagementMessageCategoryIfNoneExists(ICompilerMessageView compilerMessageView) |
||||
{ |
||||
messageViewCategory = compilerMessageView.GetExisting(CategoryName); |
||||
if (messageViewCategory == null) { |
||||
CreatePackageManagementMessageCategory(compilerMessageView); |
||||
} |
||||
} |
||||
|
||||
void CreatePackageManagementMessageCategory(ICompilerMessageView compilerMessageView) |
||||
{ |
||||
messageViewCategory = compilerMessageView.Create(CategoryName, "Package Management"); |
||||
} |
||||
|
||||
public void Clear() |
||||
{ |
||||
messageViewCategory.Clear(); |
||||
} |
||||
|
||||
public void Log(MessageLevel level, string message, params object[] args) |
||||
{ |
||||
string formattedMessage = String.Format(message, args); |
||||
messageViewCategory.AppendLine(formattedMessage); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,33 @@
@@ -0,0 +1,33 @@
|
||||
// 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.Collections.Generic; |
||||
using ICSharpCode.PackageManagement; |
||||
|
||||
namespace PackageManagement.Tests.Helpers |
||||
{ |
||||
public class FakeCompilerMessageView : ICompilerMessageView |
||||
{ |
||||
public FakeMessageCategoryView FakeMessageCategoryView = new FakeMessageCategoryView(); |
||||
public List<string> MessageViewCategoriesCreated = new List<string>(); |
||||
public FakeMessageCategoryView GetExistingReturnValue; |
||||
public string CategoryNamePassedToCategoryExists; |
||||
|
||||
public string FirstMessageViewCategoryCreated { |
||||
get { return MessageViewCategoriesCreated[0]; } |
||||
} |
||||
|
||||
public IMessageViewCategory Create(string categoryName, string categoryDisplayName) |
||||
{ |
||||
MessageViewCategoriesCreated.Add(categoryName); |
||||
return FakeMessageCategoryView; |
||||
} |
||||
|
||||
public IMessageViewCategory GetExisting(string categoryName) |
||||
{ |
||||
CategoryNamePassedToCategoryExists = categoryName; |
||||
return GetExistingReturnValue; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
// 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.Collections.Generic; |
||||
using ICSharpCode.PackageManagement; |
||||
|
||||
namespace PackageManagement.Tests.Helpers |
||||
{ |
||||
public class FakeMessageCategoryView : IMessageViewCategory |
||||
{ |
||||
public bool IsClearCalled; |
||||
|
||||
public List<string> LinesAppended = new List<string>(); |
||||
|
||||
public string FirstLineAppended { |
||||
get { return LinesAppended[0]; } |
||||
} |
||||
|
||||
public void AppendLine(string text) |
||||
{ |
||||
LinesAppended.Add(text); |
||||
} |
||||
|
||||
public void Clear() |
||||
{ |
||||
IsClearCalled = true; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,104 @@
@@ -0,0 +1,104 @@
|
||||
// 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 PackageManagementOutputMessagesViewTests |
||||
{ |
||||
PackageManagementOutputMessagesView view; |
||||
FakeCompilerMessageView fakeCompilerMessageView; |
||||
FakeMessageCategoryView fakeMessageCategoryView; |
||||
|
||||
void CreateView() |
||||
{ |
||||
CreateCompilerMessageView(); |
||||
CreateView(fakeCompilerMessageView); |
||||
} |
||||
|
||||
void CreateCompilerMessageView() |
||||
{ |
||||
fakeCompilerMessageView = new FakeCompilerMessageView(); |
||||
fakeMessageCategoryView = fakeCompilerMessageView.FakeMessageCategoryView; |
||||
} |
||||
|
||||
void CreateView(FakeCompilerMessageView fakeCompilerMessageView) |
||||
{ |
||||
view = new PackageManagementOutputMessagesView(fakeCompilerMessageView); |
||||
} |
||||
|
||||
void LogInfoMessage(string message) |
||||
{ |
||||
view.Log(MessageLevel.Info, message); |
||||
} |
||||
|
||||
[Test] |
||||
public void Log_InfoMessage_CreatesMessageViewCategoryForPackageManagement() |
||||
{ |
||||
CreateView(); |
||||
LogInfoMessage("Test"); |
||||
|
||||
string expectedCategryName = PackageManagementOutputMessagesView.CategoryName; |
||||
string actualCategoryName = fakeCompilerMessageView.FirstMessageViewCategoryCreated; |
||||
|
||||
Assert.AreEqual(expectedCategryName, actualCategoryName); |
||||
} |
||||
|
||||
[Test] |
||||
public void Log_InfoMessage_MessageLoggedToMessageCategoryView() |
||||
{ |
||||
CreateView(); |
||||
LogInfoMessage("Test"); |
||||
|
||||
Assert.AreEqual("Test", fakeMessageCategoryView.FirstLineAppended); |
||||
} |
||||
|
||||
[Test] |
||||
public void Clear_AttemptingToClearMessages_MessagesClearedFromMessageViewCategory() |
||||
{ |
||||
CreateView(); |
||||
view.Clear(); |
||||
|
||||
Assert.IsTrue(fakeMessageCategoryView.IsClearCalled); |
||||
} |
||||
|
||||
[Test] |
||||
public void Constructor_MessageViewCategoryAlreadyCreated_MessageViewCategoryNotCreatedAgain() |
||||
{ |
||||
CreateCompilerMessageView(); |
||||
fakeCompilerMessageView.GetExistingReturnValue = new FakeMessageCategoryView(); |
||||
CreateView(fakeCompilerMessageView); |
||||
|
||||
Assert.AreEqual(0, fakeCompilerMessageView.MessageViewCategoriesCreated.Count); |
||||
} |
||||
|
||||
[Test] |
||||
public void Constructor_MessageViewCategoryAlreadyCreated_PackageManagementMessageCategoryNameCheckedToSeeIfItExists() |
||||
{ |
||||
CreateCompilerMessageView(); |
||||
fakeCompilerMessageView.GetExistingReturnValue = new FakeMessageCategoryView(); |
||||
CreateView(fakeCompilerMessageView); |
||||
|
||||
string expectedCategryName = PackageManagementOutputMessagesView.CategoryName; |
||||
string actualCategoryName = fakeCompilerMessageView.CategoryNamePassedToCategoryExists; |
||||
|
||||
Assert.AreEqual(expectedCategryName, actualCategoryName); |
||||
} |
||||
|
||||
[Test] |
||||
public void Log_InfoMessageUsingFormatStringPassed_FullyFormattedStringAddedToMessageViewCategory() |
||||
{ |
||||
CreateView(); |
||||
|
||||
view.Log(MessageLevel.Info, "Test {0}", 1); |
||||
|
||||
Assert.AreEqual("Test 1", fakeMessageCategoryView.FirstLineAppended); |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue