Я пытаюсь обновить, используя xunit и moq repository, но мой код не обновляет изменения. Я не уверен, правильно ли написан код обновления, который я написал. Не могли бы вы помочь мне с тем же?
[Fact]
private async void SetPortfolioCompanyStatusAsync()
{
int _id = 1;
var mockUserRepository = new Mock<IPortfolioCompanyManagement>();
var mockUserRepository1 = new Mock<IUserManagement>();
mockUserRepository.Setup(c => c.GetPortfolioCompanies( It.IsAny<CancellationToken>())).Returns(Task.FromResult(moqData.portfolioCompanies));
mockUserRepository.Setup(m => m.UpdatePortfolioCompany(moqData.portfolioCompanies[0], It.IsAny<CancellationToken>())).ReturnsAsync(moqData.portfolioCompanies[0]);
PortfolioCompany product = new PortfolioCompany()
{
Id = 1,
Name = "Test Private Company 1",//change data
DealCode = "PRIV1",
IsActive = false,
IsPrivate = true
};
var controller = new UsersController(mockUserRepository1.Object, mockUserRepository.Object);
var result1 = await controller.SetPortfolioCompanyStatus(product, It.IsAny<CancellationToken>());//this always returns null. Expected to return the updated value.
var result = controller.GetAllPortfolioCompanies( It.IsAny<CancellationToken>());
var z = result.Result.Value.Count();
}
мои данные макета как:
using System;
using System.Collections.Generic;
using System.Text;
using ValuationsReporting.Models;
namespace ValuationsReporting.Tests
{
public partial class MoqData
{
public List<PortfolioCompany> portfolioCompanies = new List<PortfolioCompany> {
new PortfolioCompany
{
Id=1,
Name = "Test Private Company 1",
DealCode = "PRIV1",
IsActive = true,
IsPrivate = true
},
new PortfolioCompany
{
Id=2,
Name = "Test Public Company 1",
DealCode = "PUBL1",
IsActive = true,
IsPrivate = false
},
new PortfolioCompany
{
Id=3,
Name = "Test Private Company 2",
DealCode = "PRIV2",
IsActive = true,
IsPrivate = true
},
new PortfolioCompany
{
Id=4,
Name = "Test Public Company 2",
DealCode = "PUBL2",
IsActive = true,
IsPrivate = false
},
new PortfolioCompany
{
Id=5,
Name = "Test Private Company 3",
DealCode = "PRIV3",
IsActive = false,
IsPrivate = true
},
new PortfolioCompany
{
Id=6,
Name = "Test Public Company 3",
DealCode = "PUBL3",
IsActive = false,
IsPrivate = false
}
};
}
}
мой код контроллера как:
public async Task<ActionResult<PortfolioCompany>> SetPortfolioCompanyStatus([FromBody] PortfolioCompany portfolioCompany, CancellationToken cancellationToken = default(CancellationToken))
{
if (portfolioCompany == null)
throw new ArgumentNullException(nameof(portfolioCompany));
if (portfolioCompany.Id <= 0)
throw new ArgumentOutOfRangeException(nameof(portfolioCompany.Id));
var z = await _portfolioCompanyManagement.UpdatePortfolioCompany(portfolioCompany, cancellationToken);
return await _portfolioCompanyManagement.UpdatePortfolioCompany(portfolioCompany, cancellationToken);
}
Япытается обновить значения, но всегда возвращает ноль. но когда я пытаюсь получить данные, я получаю все данные отлично, но обновление не происходит.