barcode-host/Server.Tests/UnitTestPostService.cs
2023-06-23 15:40:59 -07:00

53 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 UnitTestPostService
{
#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<UnitTestPostService>();
_WebApplicationFactory = new WebApplicationFactory<Server.Program>();
}
private static void NonThrowTryCatch()
{
try
{ throw new Exception(); }
catch (Exception) { }
}
#if DEBUG
[Ignore]
#endif
[TestMethod]
public void GetPostTo()
{
_Logger.Information("Starting Web Application");
HttpClient httpClient = _WebApplicationFactory.CreateClient();
IServiceProvider serviceProvider = _WebApplicationFactory.Services.CreateScope().ServiceProvider;
Server.Models.AppSettings appSettings = serviceProvider.GetRequiredService<Server.Models.AppSettings>();
IPostService postService = serviceProvider.GetRequiredService<IPostService>();
Notification notification = new(KeyPressEvent: null, "Test");
_ = postService.Post(appSettings.PostTo, httpClient, notification);
_Logger.Information($"{_TestContext?.TestName} completed");
NonThrowTryCatch();
}
}