Мне нужно смоделировать соединение с базой данных, а затем вызвать метод для возврата значения.
Я создал данные moq, но я не уверен, как смоделировать соединение с базой данных.
private void SetupUserRepository()
{
var firstname = "FirstName1";
var _lastName = "LastName1";
var _userName = "FirstName1.LastName1@warburgpincus.com";
var _email = "FirstName1.LastName1@warburgpincus.com";
var User = new User { FirstName = firstname, LastName = _lastName, Username = _userName,Email = _email};
var mockUserRepository = new Mock<IUserRepository>();
// mockUserRepository.Setup(m => m.GetOne(It.IsAny<string>(), It.IsAny<CancellationToken>())).ReturnsAsync((string section, CancellationToken token) => moqData.contentControls.FirstOrDefault(a => a.InternalControlName == section));
// mockUserRepository.Setup(m => m.GetOne(It.IsAny<string>(), It.IsAny<CancellationToken>()));
//var x = moqData.userDetails.First(a => a.Username == _userName);
mockUserRepository.Setup(m => m.GetOne(It.IsAny<string>(), It.IsAny<CancellationToken>())).ReturnsAsync(moqData.userDetails.First(a => a.Username == _userName));
UserRepository test = new UserRepository(mockUserRepository.Object,null,null);
var result = test.GetOne(_userName, It.IsAny<CancellationToken>());
///var repo = new UserRepository(mockUserRepository.Object,null,null);
//var actual = await repo.GetOne(_userName, It.IsAny<CancellationToken>());
Assert.Same(User, result);
}
Ив классе контроллера ниже указаны параметры, которые необходимы
public UserRepository(ValuationsReportingContext context, IHttpContextAccessor httpContextAccessor, ILogger<UserRepository> logger) : base(context, httpContextAccessor)
{
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
claimsPrincipal = httpContextAccessor?.HttpContext?.User;
}
Необходимо получить данные из списка вместо базы данных
UserRepository test = new UserRepository(mockUserRepository.Object,null,null);
эта строка выдает ошибку, как и ожидалосьDBContext.