56 lines
1.6 KiB
C#
56 lines
1.6 KiB
C#
using System.Data.Common;
|
|
using Contracts.DTO;
|
|
using Contracts.Repositories;
|
|
using Contracts.SearchModels;
|
|
using Services.Tests.Support.Fakes.Database;
|
|
|
|
namespace Services.Tests.Support.Fakes.Repositories;
|
|
|
|
internal class UserRepoFake : IUserRepo
|
|
{
|
|
public async Task<bool> ChangeBalance(UserSearch search, decimal amount)
|
|
{
|
|
var user = DbFake.Users.FirstOrDefault(u => u.Id == search.Id);
|
|
if (user != null)
|
|
{
|
|
user.Balance += amount;
|
|
return await Task.FromResult(true);
|
|
}
|
|
return await Task.FromResult(false);
|
|
}
|
|
|
|
public async Task<UserDto> Create(UserDto user)
|
|
{
|
|
DbFake.Users.Add(user);
|
|
return await Task.FromResult(user);
|
|
}
|
|
|
|
public async Task<UserDto?> Delete(UserSearch search)
|
|
{
|
|
var user = DbFake.Users.FirstOrDefault(u => u.Id == search.Id);
|
|
if (user != null)
|
|
{
|
|
DbFake.Users.Remove(user);
|
|
}
|
|
return await Task.FromResult(user);
|
|
}
|
|
|
|
public async Task<UserDto?> Get(UserSearch search)
|
|
{
|
|
return await Task.FromResult(DbFake.Users.FirstOrDefault(u => u.Id == search.Id));
|
|
}
|
|
|
|
public async Task<UserDto?> Update(UserDto user)
|
|
{
|
|
var existingUser = DbFake.Users.FirstOrDefault(u => u.Id == user.Id);
|
|
if (existingUser != null)
|
|
{
|
|
existingUser.Name = user.Name;
|
|
existingUser.Password = user.Password;
|
|
DbFake.Users.Remove(existingUser);
|
|
DbFake.Users.Add(existingUser);
|
|
}
|
|
return await Task.FromResult(existingUser);
|
|
}
|
|
}
|