Adding
This commit is contained in:
+124
@@ -0,0 +1,124 @@
|
||||
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."};
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user