Browse Source

Move package view model logging to separate class.

pull/15/head
Matt Ward 14 years ago
parent
commit
aecbb026b4
  1. 1
      src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj
  2. 71
      src/AddIns/Misc/PackageManagement/Project/Src/PackageViewModel.cs
  3. 86
      src/AddIns/Misc/PackageManagement/Project/Src/PackageViewModelOperationLogger.cs
  4. 15
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestablePackageViewModel.cs
  5. 10
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestableUpdatedPackageViewModel.cs
  6. 12
      src/AddIns/Misc/PackageManagement/Test/Src/PackageViewModelTests.cs

1
src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj

@ -74,6 +74,7 @@ @@ -74,6 +74,7 @@
<Compile Include="Src\PackageOperationExceptionEventArgs.cs" />
<Compile Include="Src\PackageOperationMessage.cs" />
<Compile Include="Src\PackageOperationMessageLoggedEventArgs.cs" />
<Compile Include="Src\PackageViewModelOperationLogger.cs" />
<Compile Include="Src\ParentPackageOperationEventArgs.cs" />
<Compile Include="Src\ProjectBrowserRefresher.cs" />
<Compile Include="Src\RegisteredPackageRepositories.cs" />

71
src/AddIns/Misc/PackageManagement/Project/Src/PackageViewModel.cs

@ -20,7 +20,7 @@ namespace ICSharpCode.PackageManagement @@ -20,7 +20,7 @@ namespace ICSharpCode.PackageManagement
IEnumerable<PackageOperation> packageOperations = new PackageOperation[0];
IPackageRepository sourceRepository;
bool? hasDependencies;
ILogger logger;
PackageViewModelOperationLogger logger;
public PackageViewModel(
IPackage package,
@ -33,11 +33,16 @@ namespace ICSharpCode.PackageManagement @@ -33,11 +33,16 @@ namespace ICSharpCode.PackageManagement
this.sourceRepository = sourceRepository;
this.packageManagementService = packageManagementService;
this.packageManagementEvents = packageManagementEvents;
this.logger = logger;
this.logger = CreateLogger(logger);
CreateCommands();
}
protected virtual PackageViewModelOperationLogger CreateLogger(ILogger logger)
{
return new PackageViewModelOperationLogger(logger, package);
}
void CreateCommands()
{
addPackageCommand = new DelegateCommand(param => AddPackage());
@ -152,9 +157,9 @@ namespace ICSharpCode.PackageManagement @@ -152,9 +157,9 @@ namespace ICSharpCode.PackageManagement
public void AddPackage()
{
ClearReportedMessages();
LogAddingPackage();
logger.LogAddingPackage();
TryInstallingPackage();
LogAfterPackageOperationCompletes();
logger.LogAfterPackageOperationCompletes();
}
void ClearReportedMessages()
@ -162,49 +167,6 @@ namespace ICSharpCode.PackageManagement @@ -162,49 +167,6 @@ namespace ICSharpCode.PackageManagement
packageManagementEvents.OnPackageOperationsStarting();
}
void LogAddingPackage()
{
string message = GetFormattedStartPackageOperationMessage(AddingPackageMessageFormat);
Log(message);
}
void Log(string message)
{
logger.Log(MessageLevel.Info, message);
}
string GetFormattedStartPackageOperationMessage(string format)
{
string message = String.Format(format, package.ToString());
return GetStartPackageOperationMessage(message);
}
string GetStartPackageOperationMessage(string message)
{
return String.Format("------- {0} -------", message);
}
protected virtual string AddingPackageMessageFormat {
get { return "Installing...{0}"; }
}
void LogAfterPackageOperationCompletes()
{
LogEndMarkerLine();
LogEmptyLine();
}
void LogEndMarkerLine()
{
string message = new String('=', 30);
Log(message);
}
void LogEmptyLine()
{
Log(String.Empty);
}
void GetPackageOperations()
{
ISharpDevelopPackageManager packageManager = CreatePackageManagerForActiveProject();
@ -263,7 +225,7 @@ namespace ICSharpCode.PackageManagement @@ -263,7 +225,7 @@ namespace ICSharpCode.PackageManagement
}
} catch (Exception ex) {
ReportError(ex);
Log(ex.ToString());
logger.LogError(ex);
}
}
@ -293,21 +255,16 @@ namespace ICSharpCode.PackageManagement @@ -293,21 +255,16 @@ namespace ICSharpCode.PackageManagement
public void RemovePackage()
{
ClearReportedMessages();
LogRemovingPackage();
logger.LogRemovingPackage();
TryUninstallingPackage();
LogAfterPackageOperationCompletes();
logger.LogAfterPackageOperationCompletes();
OnPropertyChanged(model => model.IsAdded);
}
void LogRemovingPackage()
{
string message = GetFormattedStartPackageOperationMessage(RemovingPackageMessageFormat);
Log(message);
}
protected virtual string RemovingPackageMessageFormat {
get { return "Uninstalling...{0}"; }
logger.LogRemovingPackage();
}
void TryUninstallingPackage()
@ -319,7 +276,7 @@ namespace ICSharpCode.PackageManagement @@ -319,7 +276,7 @@ namespace ICSharpCode.PackageManagement
action.Execute();
} catch (Exception ex) {
ReportError(ex);
Log(ex.ToString());
logger.LogError(ex);
}
}
}

86
src/AddIns/Misc/PackageManagement/Project/Src/PackageViewModelOperationLogger.cs

@ -0,0 +1,86 @@ @@ -0,0 +1,86 @@
// 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 PackageViewModelOperationLogger : ILogger
{
ILogger logger;
IPackage package;
public PackageViewModelOperationLogger(ILogger logger, IPackage package)
{
this.logger = logger;
this.package = package;
GetMessageFormats();
}
void GetMessageFormats()
{
AddingPackageMessageFormat = "Installing...{0}";
RemovingPackageMessageFormat = "Uninstalling...{0}";
}
public string AddingPackageMessageFormat { get; set; }
public string RemovingPackageMessageFormat { get; set; }
public void Log(MessageLevel level, string message, params object[] args)
{
logger.Log(level, message, args);
}
public void LogInformation(string message)
{
Log(MessageLevel.Info, message);
}
public void LogAfterPackageOperationCompletes()
{
LogEndMarkerLine();
LogEmptyLine();
}
void LogEndMarkerLine()
{
string message = new String('=', 30);
LogInformation(message);
}
void LogEmptyLine()
{
LogInformation(String.Empty);
}
public void LogAddingPackage()
{
string message = GetFormattedStartPackageOperationMessage(AddingPackageMessageFormat);
LogInformation(message);
}
string GetFormattedStartPackageOperationMessage(string format)
{
string message = String.Format(format, package.ToString());
return GetStartPackageOperationMessage(message);
}
string GetStartPackageOperationMessage(string message)
{
return String.Format("------- {0} -------", message);
}
public void LogRemovingPackage()
{
string message = GetFormattedStartPackageOperationMessage(RemovingPackageMessageFormat);
LogInformation(message);
}
public void LogError(Exception ex)
{
LogInformation(ex.ToString());
}
}
}

15
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestablePackageViewModel.cs

@ -15,8 +15,6 @@ namespace PackageManagement.Tests.Helpers @@ -15,8 +15,6 @@ namespace PackageManagement.Tests.Helpers
public FakePackageManagementEvents FakePackageManagementEvents;
public FakePackage FakePackage;
public FakeLogger FakeLogger;
public string PackageViewModelAddingPackageMessageFormat = String.Empty;
public string PackageViewModelRemovingPackageMessageFormat = String.Empty;
public TestablePackageViewModel(FakePackageManagementService packageManagementService)
: this(
@ -48,13 +46,16 @@ namespace PackageManagement.Tests.Helpers @@ -48,13 +46,16 @@ namespace PackageManagement.Tests.Helpers
this.FakeLogger = logger;
}
protected override string AddingPackageMessageFormat {
get { return PackageViewModelAddingPackageMessageFormat; }
protected override PackageViewModelOperationLogger CreateLogger(ILogger logger)
{
PackageViewModelOperationLogger operationLogger = base.CreateLogger(logger);
operationLogger.AddingPackageMessageFormat = "Installing...{0}";
operationLogger.RemovingPackageMessageFormat = "Uninstalling...{0}";
OperationLoggerCreated = operationLogger;
return operationLogger;
}
protected override string RemovingPackageMessageFormat {
get { return PackageViewModelRemovingPackageMessageFormat; }
}
public PackageViewModelOperationLogger OperationLoggerCreated;
public PackageOperation AddOneFakeInstallPackageOperationForViewModelPackage()
{

10
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestableUpdatedPackageViewModel.cs

@ -17,8 +17,6 @@ namespace PackageManagement.Tests.Helpers @@ -17,8 +17,6 @@ namespace PackageManagement.Tests.Helpers
public FakePackage FakePackage;
public FakeLogger FakeLogger;
public ILogger LoggerUsedWhenCreatingPackageResolver;
public string PackageViewModelAddingPackageMessageFormat = String.Empty;
public string PackageViewModelRemovingPackageMessageFormat = String.Empty;
public TestableUpdatedPackageViewModel()
: this(new FakePackageManagementService())
@ -53,13 +51,5 @@ namespace PackageManagement.Tests.Helpers @@ -53,13 +51,5 @@ namespace PackageManagement.Tests.Helpers
this.FakeSourcePackageRepository = sourceRepository;
this.FakeLogger = logger;
}
protected override string AddingPackageMessageFormat {
get { return PackageViewModelAddingPackageMessageFormat; }
}
protected override string RemovingPackageMessageFormat {
get { return PackageViewModelRemovingPackageMessageFormat; }
}
}
}

12
src/AddIns/Misc/PackageManagement/Test/Src/PackageViewModelTests.cs

@ -359,13 +359,13 @@ namespace PackageManagement.Tests @@ -359,13 +359,13 @@ namespace PackageManagement.Tests
}
[Test]
public void AddPackage_CheckLoggerUsed_OutputMessagesLoggerUsedWhenResolvingPackageOperations()
public void AddPackage_CheckLoggerUsed_PackageViewModelLoggerUsedWhenResolvingPackageOperations()
{
CreateViewModel();
viewModel.AddOneFakeInstallPackageOperationForViewModelPackage();
viewModel.AddPackage();
ILogger expectedLogger = fakeLogger;
ILogger expectedLogger = viewModel.OperationLoggerCreated;
ILogger actualLogger = packageManagementService
.FakePackageManagerToReturnFromCreatePackageManager
.Logger;
@ -379,12 +379,11 @@ namespace PackageManagement.Tests @@ -379,12 +379,11 @@ namespace PackageManagement.Tests
viewModel.AddOneFakeInstallPackageOperationForViewModelPackage();
package.Id = "Test.Package";
package.Version = new Version(1, 2, 0, 55);
viewModel.PackageViewModelAddingPackageMessageFormat = "Updating...{0}";
viewModel.AddPackage();
string expectedMessage = "------- Updating...Test.Package 1.2.0.55 -------";
string expectedMessage = "------- Installing...Test.Package 1.2.0.55 -------";
string actualMessage = fakeLogger.FirstFormattedMessageLogged;
Assert.AreEqual(expectedMessage, actualMessage);
}
@ -421,10 +420,9 @@ namespace PackageManagement.Tests @@ -421,10 +420,9 @@ namespace PackageManagement.Tests
viewModel.AddOneFakeInstallPackageOperationForViewModelPackage();
package.Id = "Test.Package";
package.Version = new Version(1, 2, 0, 55);
viewModel.PackageViewModelRemovingPackageMessageFormat = "Removing...{0}";
viewModel.RemovePackage();
string expectedMessage = "------- Removing...Test.Package 1.2.0.55 -------";
string expectedMessage = "------- Uninstalling...Test.Package 1.2.0.55 -------";
string actualMessage = fakeLogger.FirstFormattedMessageLogged;
Assert.AreEqual(expectedMessage, actualMessage);

Loading…
Cancel
Save