DD.WellWorkover.Cloud/AsbCloudWebApi.Tests/ServicesTests/UserServiceTest.cs
2022-06-15 14:57:37 +05:00

76 lines
2.2 KiB
C#

using AsbCloudApp.Data;
using AsbCloudApp.Services;
using AsbCloudDb.Model;
using AsbCloudInfrastructure.Services;
using AsbCloudInfrastructure.Services.Cache;
using Moq;
using System;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Xunit;
namespace AsbCloudWebApi.Tests.ServicesTests
{
public class UserServiceTest
{
private readonly AsbCloudDbContext context;
private readonly CacheDb cacheDb;
private readonly Mock<IUserRoleService> roleService;
public UserServiceTest()
{
context = TestHelpter.MakeTestContext();
cacheDb = new CacheDb();
roleService = new Mock<IUserRoleService>();
context.Users.RemoveRange(context.Users.Where(u => u.Id > 1));
context.SaveChanges();
}
~UserServiceTest()
{
context.Users.RemoveRange(context.Users.Where(u => u.Id > 1));
context.SaveChanges();
}
[Fact]
public async Task InsertAsync_returns_id()
{
var service = new UserService(context, cacheDb, roleService.Object);
var dto = new UserExtendedDto
{
Id = 0,
IdCompany = 1,
Email = "test@test.test",
Login = "test",
Name = "test",
Company = new CompanyDto { Caption = "test", Id = 1 },
Patronymic = "test",
Phone = "test",
Position = "test",
Surname = "test",
};
var id = await service.InsertAsync(dto, CancellationToken.None);
Assert.NotEqual(0, id);
}
[Fact]
public async Task InsertAsync_busy_login_throws_exceprion()
{
var service = new UserService(context, cacheDb, roleService.Object);
var dto = new UserExtendedDto
{
Id = 5,
Email = "test@test.test",
Login = "test clone"
};
await service.InsertAsync(dto, CancellationToken.None);
await Assert.ThrowsAsync<ArgumentException>(() => service.InsertAsync(dto, CancellationToken.None));
}
}
}