barcode-host/Server.Tests/UnitTestFileService.cs
2023-10-19 22:28:40 -07:00

51 lines
1.8 KiB
C#

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