124 lines
4.1 KiB
C#
124 lines
4.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using LCU.API.Collections.RepoApi.Models;
|
|
using LCU.API.Collections.RepoApi.Services;
|
|
using LCU.Shared.Collections.RepoApiLib.Models;
|
|
using LCU.Shared.Collections.RepoApiLib.Repositories;
|
|
using Moq;
|
|
using Xunit;
|
|
|
|
namespace LCU.API.Collections.RepoApiTests.Services
|
|
{
|
|
public class RepoCompanyServiceTest
|
|
{
|
|
[Fact]
|
|
public async void ListAll_Ok()
|
|
{
|
|
var mockCompany = getMockCompany();
|
|
var repoCompanyService = getRepoCompanyService();
|
|
|
|
var result = await repoCompanyService.ListAll();
|
|
var companyEnumerator = result.GetEnumerator();
|
|
|
|
companyEnumerator.MoveNext();
|
|
var firstCompanyFromService = companyEnumerator.Current;
|
|
Assert.Equal(mockCompany.ID, firstCompanyFromService.ID);
|
|
Assert.Equal(mockCompany.Name, firstCompanyFromService.Name);
|
|
Assert.Equal(mockCompany.Email, firstCompanyFromService.Email);
|
|
}
|
|
|
|
[Fact]
|
|
public async void GetOne_Ok()
|
|
{
|
|
var mockCompany = getMockCompany();
|
|
var repoCompanyService = getRepoCompanyService();
|
|
|
|
var result = await repoCompanyService.Get(1);
|
|
Assert.Equal(mockCompany.ID, result.ID);
|
|
Assert.Equal(mockCompany.Name, result.Name);
|
|
Assert.Equal(mockCompany.Email, result.Email);
|
|
}
|
|
|
|
[Fact]
|
|
public async void Update_Ok()
|
|
{
|
|
var mockCompany = getMockCompany();
|
|
var repoCompanyService = getRepoCompanyService();
|
|
|
|
var oldId = mockCompany.ID;
|
|
mockCompany.ID = 2;
|
|
mockCompany.Name = "New Name";
|
|
mockCompany.Email = "New Email";
|
|
|
|
var result = await repoCompanyService.Update(mockCompany, new AppUser());
|
|
Assert.Equal(mockCompany.Name, result.Name);
|
|
Assert.Equal(mockCompany.Email, result.Email);
|
|
Assert.Equal(oldId, result.ID);
|
|
}
|
|
|
|
[Fact]
|
|
public async void Update_Date_Disabled_Saves_User()
|
|
{
|
|
var mockCompany = getMockCompany();
|
|
var repoCompanyService = getRepoCompanyService();
|
|
|
|
mockCompany.ID = 2;
|
|
mockCompany.Name = "New Name";
|
|
mockCompany.Email = "New Email";
|
|
mockCompany.DisabledDate = DateTime.Now;
|
|
|
|
var result = await repoCompanyService.Update(mockCompany, new AppUser()
|
|
{
|
|
FirstName = "John",
|
|
LastName = "Doe"
|
|
});
|
|
Assert.Equal("John Doe", result.DisabledBy);
|
|
}
|
|
|
|
[Fact]
|
|
public async void Update_Date_Disabled__NUll_Clears_User()
|
|
{
|
|
var mockCompany = getMockCompany();
|
|
var repoCompanyService = getRepoCompanyService();
|
|
|
|
mockCompany.ID = 2;
|
|
mockCompany.Name = "New Name";
|
|
mockCompany.Email = "New Email";
|
|
mockCompany.DisabledBy = "Bobby Boy";
|
|
|
|
var result = await repoCompanyService.Update(mockCompany, new AppUser()
|
|
{
|
|
FirstName = "John",
|
|
LastName = "Doe"
|
|
});
|
|
Assert.Null(result.DisabledBy);
|
|
}
|
|
|
|
private RepoCompanyService getRepoCompanyService()
|
|
{
|
|
var companies = getMockCompanyList();
|
|
|
|
var mockRepository = new Mock<IRepoCompanyRepository>();
|
|
var mockUnitOfWork = new Mock<IUnitOfWork>();
|
|
|
|
mockRepository.Setup(repo => repo.ListAsync()).ReturnsAsync(companies);
|
|
mockRepository.Setup(repo => repo.FindByIdAsync(It.IsAny<int>())).ReturnsAsync(companies[0]);
|
|
mockRepository.Setup(repo => repo.Update(It.IsAny<RepoCompany>()));
|
|
|
|
return new RepoCompanyService(mockRepository.Object, mockUnitOfWork.Object);
|
|
}
|
|
|
|
private IList<RepoCompany> getMockCompanyList()
|
|
{
|
|
return new List<RepoCompany>
|
|
{
|
|
getMockCompany()
|
|
};
|
|
}
|
|
|
|
private RepoCompany getMockCompany()
|
|
{
|
|
return new RepoCompany() {ID = 1, Email = "[email protected]", Name = "A Inc."};
|
|
}
|
|
}
|
|
} |