Операция обновления в xunit с использованием moq - PullRequest
0 голосов
/ 19 октября 2019

Я пытаюсь обновить, используя 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);
}

Япытается обновить значения, но всегда возвращает ноль. но когда я пытаюсь получить данные, я получаю все данные отлично, но обновление не происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...