barcode-host/Server.Tests/UnitTestFileService.cs
2023-07-27 12:37:24 -07:00

52 lines
1.6 KiB
C#

using Barcode.Host.Shared.Models;
using Barcode.Host.Shared.Models.Stateless;
using Microsoft.AspNetCore.Mvc.Testing;
using Microsoft.Extensions.DependencyInjection;
using Serilog;
namespace Barcode.Host.Tests;
[TestClass]
public class UnitTestFileService
{
#pragma warning disable CS8618
private static ILogger _Logger;
private static TestContext _TestContext;
private static WebApplicationFactory<Server.Program> _WebApplicationFactory;
#pragma warning restore
[ClassInitialize]
public static void ClassInitAsync(TestContext testContext)
{
_TestContext = testContext;
_Logger = Log.ForContext<UnitTestFileService>();
_WebApplicationFactory = new WebApplicationFactory<Server.Program>();
}
private static void NonThrowTryCatch()
{
try
{ throw new Exception(); }
catch (Exception) { }
}
#if DEBUG
[Ignore]
#endif
[TestMethod]
public void GetWrite()
{
_Logger.Information("Starting Web Application");
IServiceProvider serviceProvider = _WebApplicationFactory.Services.CreateScope().ServiceProvider;
Server.Models.AppSettings appSettings = serviceProvider.GetRequiredService<Server.Models.AppSettings>();
IFileService fileService = serviceProvider.GetRequiredService<IFileService>();
Notification notification = new(KeyPressEvent: null, "Test", null);
fileService.Write(appSettings.EquipmentName, appSettings.FileShare, calendar: null, notification);
_Logger.Information($"{_TestContext?.TestName} completed");
NonThrowTryCatch();
}
}