Unit tests working; added logger adapter.

This commit is contained in:
Steve Smith
2017-04-30 08:06:06 -04:00
parent 6f908bb8e5
commit dfe0106ce3
6 changed files with 31 additions and 13 deletions

View File

@@ -0,0 +1,7 @@
namespace ApplicationCore.Interfaces
{
public interface IAppLogger<T>
{
void LogWarning(string message, params object[] args);
}
}

View File

@@ -1,16 +1,7 @@
using ApplicationCore.Entities; namespace ApplicationCore.Interfaces
using Microsoft.eShopWeb.ApplicationCore.Entities;
using System.Security.Principal;
using System.Threading.Tasks;
namespace ApplicationCore.Interfaces
{ {
public interface IImageService public interface IImageService
{ {
byte[] GetImageBytesById(int id); byte[] GetImageBytesById(int id);
} }
} }

View File

@@ -0,0 +1,18 @@
using ApplicationCore.Interfaces;
using Microsoft.Extensions.Logging;
namespace Infrastructure.Logging
{
public class LoggerAdapter<T> : IAppLogger<T>
{
private readonly ILogger<T> _logger;
public LoggerAdapter(ILoggerFactory loggerFactory)
{
_logger = loggerFactory.CreateLogger<T>();
}
public void LogWarning(string message, params object[] args)
{
_logger.LogWarning(message, args);
}
}
}

View File

@@ -15,12 +15,12 @@ namespace Microsoft.eShopWeb.Controllers
private readonly IHostingEnvironment _env; private readonly IHostingEnvironment _env;
private readonly ICatalogService _catalogService; private readonly ICatalogService _catalogService;
private readonly IImageService _imageService; private readonly IImageService _imageService;
private readonly ILogger<CatalogController> _logger; private readonly IAppLogger<CatalogController> _logger;
public CatalogController(IHostingEnvironment env, public CatalogController(IHostingEnvironment env,
ICatalogService catalogService, ICatalogService catalogService,
IImageService imageService, IImageService imageService,
ILogger<CatalogController> logger) IAppLogger<CatalogController> logger)
{ {
_env = env; _env = env;
_catalogService = catalogService; _catalogService = catalogService;

View File

@@ -13,6 +13,7 @@ using System.Text;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using ApplicationCore.Interfaces; using ApplicationCore.Interfaces;
using Infrastructure.FileSystem; using Infrastructure.FileSystem;
using Infrastructure.Logging;
namespace Microsoft.eShopWeb namespace Microsoft.eShopWeb
{ {
@@ -68,6 +69,7 @@ namespace Microsoft.eShopWeb
services.AddScoped<CatalogService>(); services.AddScoped<CatalogService>();
services.Configure<CatalogSettings>(Configuration); services.Configure<CatalogSettings>(Configuration);
services.AddSingleton<IImageService, LocalFileImageService>(); services.AddSingleton<IImageService, LocalFileImageService>();
services.AddScoped(typeof(IAppLogger<>), typeof(LoggerAdapter<>));
services.AddMvc(); services.AddMvc();
_services = services; _services = services;

View File

@@ -12,7 +12,7 @@ namespace UnitTests
public class CatalogControllerGetImage public class CatalogControllerGetImage
{ {
private Mock<IImageService> _mockImageService = new Mock<IImageService>(); private Mock<IImageService> _mockImageService = new Mock<IImageService>();
private Mock<ILogger<CatalogController>> _mockLogger = new Mock<ILogger<CatalogController>>(); private Mock<IAppLogger<CatalogController>> _mockLogger = new Mock<IAppLogger<CatalogController>>();
private CatalogController _controller; private CatalogController _controller;
private int _testImageId = 123; private int _testImageId = 123;
private byte[] _testBytes = { 0x01, 0x02, 0x03 }; private byte[] _testBytes = { 0x01, 0x02, 0x03 };