Files
monorepo/LCU.API.Collections.RepoApi-old/LCU.API.Collections.RepoApiTests/Controllers/RepoCompanyControllerTest.cs
T
2026-04-20 14:47:24 -05:00

81 lines
2.5 KiB
C#

using System.Collections.Generic;
using LCU.API.Collections.RepoApi.Controllers;
using LCU.API.Collections.RepoApi.Services;
using LCU.Shared.Collections.RepoApiLib.Models;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Moq;
using Xunit;
namespace LCU.API.Collections.RepoApiTests.Controllers
{
public class RepoCompanyControllerTest
{
private Mock<IRepoCompanyService> mockService;
private RepoCompanyController controller;
private readonly Mock<IHttpContextAccessor> mockHttpContextAccessor;
public RepoCompanyControllerTest()
{
mockService = new Mock<IRepoCompanyService>();
mockHttpContextAccessor = new Mock<IHttpContextAccessor>();
controller =
new RepoCompanyController(mockService.Object, mockHttpContextAccessor.Object);
}
[Fact]
public async void Get_OK()
{
var repoCompanyList = getMockCompanyList();
mockService.Setup(service => service.ListAll()).ReturnsAsync(repoCompanyList);
var result = await controller.Get();
Assert.NotNull(result);
var okResult = result as OkObjectResult;
Assert.NotNull(okResult);
Assert.Equal(200, okResult.StatusCode);
var okValue = okResult.Value as IEnumerable<RepoCompany>;
Assert.NotNull(okValue);
var repoEnum = okValue.GetEnumerator();
repoEnum.MoveNext();
var firstValue = repoEnum.Current;
Assert.Equal(repoCompanyList[0], firstValue);
}
[Fact]
public async void Post_Ok()
{
var repoCompanyList = getMockCompanyList();
mockService.Setup(service => service.Save(It.IsAny<RepoCompany>())).ReturnsAsync(repoCompanyList[0]);
var result = await controller.Post(repoCompanyList[0]);
Assert.NotNull(result);
var okResult = result as OkObjectResult;
Assert.NotNull(okResult);
Assert.Equal(200, okResult.StatusCode);
var okValue = okResult.Value as RepoCompany;
Assert.Equal(repoCompanyList[0], okValue);
}
private IList<RepoCompany> getMockCompanyList()
{
return new List<RepoCompany>
{
getMockCompany()
};
}
private RepoCompany getMockCompany()
{
return new RepoCompany() {ID = 1, Email = "[email protected]", Name = "A Inc."};
}
}
}