Files
dotnet-template/MainProject.Tests/Controllers/VersionController_Tests.cs
2024-05-12 23:47:10 +02:00

58 lines
2.0 KiB
C#

using System;
using System.Reflection;
using System.Net;
using System.Net.Http;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using BasicDotnetTemplate.MainProject;
using BasicDotnetTemplate.MainProject.Controllers;
using Microsoft.Extensions.Configuration;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Infrastructure;
using BasicDotnetTemplate.MainProject.Models.Api.Response;
using BasicDotnetTemplate.MainProject.Models.Settings;
namespace BasicDotnetTemplate.MainProject.Tests;
[TestClass]
public class BaseController_Tests
{
[TestMethod]
public void BaseControllerInit_Valid()
{
Environment.SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", "Development");
try
{
IConfiguration configuration = TestUtils.CreateConfiguration();
VersionController versionController = new VersionController(configuration);
var result = versionController.GetVersion();
var objectResult = ((ObjectResult)result).Value;
if (objectResult != null)
{
var data = (BaseResponse)objectResult;
if (data.Data != null)
{
AppSettings appSettings = new AppSettings();
configuration.GetSection("AppSettings").Bind(appSettings);
string version = data.Data != null ? (string)data.Data : "";
Assert.IsTrue((((IStatusCodeActionResult)result).StatusCode == 200) && (version == appSettings.Settings?.Version));
}
else
{
Assert.Fail($"Unable to convert response value to BaseResponse because Data is null");
}
}
else
{
Assert.Fail($"Data is null");
}
}
catch (Exception ex)
{
Console.WriteLine(ex.InnerException);
Assert.Fail($"An exception was thrown: {ex.Message}");
}
}
}