Need DB
This commit is contained in:
		
							
								
								
									
										67
									
								
								Tests/UnitTestPinController.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								Tests/UnitTestPinController.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,67 @@ | ||||
| using Microsoft.AspNetCore.Mvc.Testing; | ||||
| using Microsoft.Extensions.DependencyInjection; | ||||
| using OI.Metrology.Shared.DataModels; | ||||
| using OI.Metrology.Shared.Models.Stateless; | ||||
| using Serilog; | ||||
|  | ||||
| namespace OI.Metrology.Tests; | ||||
|  | ||||
| [TestClass] | ||||
| public class UnitTestPinController | ||||
| { | ||||
|  | ||||
| #pragma warning disable CS8618 | ||||
|  | ||||
|     private static ILogger _Logger; | ||||
|     private static string _ControllerName; | ||||
|     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<UnitTestPinController>(); | ||||
|         _WebApplicationFactory = new WebApplicationFactory<Server.Program>(); | ||||
|         _ControllerName = nameof(Server.ApiControllers.PinController)[..^10]; | ||||
|     } | ||||
|  | ||||
|     [TestMethod] | ||||
|     public void TestControllerName() | ||||
|     { | ||||
|         _Logger.Information("Starting Web Application"); | ||||
|         Assert.AreEqual(IPinController<string>.GetRouteName(), _ControllerName); | ||||
|         _Logger.Information($"{_TestContext?.TestName} completed"); | ||||
|     } | ||||
|  | ||||
|     [TestMethod] | ||||
|     public void GetHeaderTitles() | ||||
|     { | ||||
|         _Logger.Information("Starting Web Application"); | ||||
|         IServiceProvider serviceProvider = _WebApplicationFactory.Services.CreateScope().ServiceProvider; | ||||
|         IMetrologyRepository metrologyRepository = serviceProvider.GetRequiredService<IMetrologyRepository>(); | ||||
|         IPinRepository pinRepository = serviceProvider.GetRequiredService<IPinRepository>(); | ||||
|         string? cde = System.Text.Json.JsonSerializer.Serialize(new HeaderCommon { ID = 0, ToolTypeID = 0 }); | ||||
|         string? bioRad = System.Text.Json.JsonSerializer.Serialize(new HeaderCommon { ID = 0, ToolTypeID = 0 }); | ||||
|         Result<HeaderCommond[]> result = pinRepository.GetPinnedTable(metrologyRepository, id: 0, bioRad, cde); | ||||
|         Assert.IsNotNull(result?.Results); | ||||
|         Assert.IsTrue(result.Results.Any()); | ||||
|         _Logger.Information($"{_TestContext?.TestName} completed"); | ||||
|     } | ||||
|  | ||||
|     [TestMethod] | ||||
|     public async Task GetHeaderTitlesApi() | ||||
|     { | ||||
|         HttpClient httpClient = _WebApplicationFactory.CreateClient(); | ||||
|         _Logger.Information("Starting Web Application"); | ||||
|         string? json = await httpClient.GetStringAsync($"api/{_ControllerName}/-1/headertitles"); | ||||
|         File.WriteAllText(Path.Combine(AppContext.BaseDirectory, $"{nameof(GetHeaderTitlesApi)}.json"), json); | ||||
|         Result<HeaderCommond[]>? result = System.Text.Json.JsonSerializer.Deserialize<Result<HeaderCommond[]>>(json); | ||||
|         Assert.IsNotNull(result?.Results); | ||||
|         Assert.IsTrue(result.Results.Any()); | ||||
|         _Logger.Information($"{_TestContext?.TestName} completed"); | ||||
|     } | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user