Skip to content

Instantly share code, notes, and snippets.

@HamidMosalla
Created November 29, 2017 00:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save HamidMosalla/ee6fc7df369d77c48825fdf21b5dcd42 to your computer and use it in GitHub Desktop.
Save HamidMosalla/ee6fc7df369d77c48825fdf21b5dcd42 to your computer and use it in GitHub Desktop.
public class PortfolioControllerTests
{
private readonly IMediator _mediatorFake;
private readonly IMapper _mapperFake;
private readonly PortfolioController _sut;
public PortfolioControllerTests()
{
_mediatorFake = A.Fake<IMediator>();
_mapperFake = A.Fake<IMapper>();
_sut = new PortfolioController(_mapperFake, _mediatorFake);
}
[Fact]
public async Task Detail_IdIsNotSupplied_ReturnsBadRequest()
{
//Act
var result = (BadRequestResult)await _sut.Detail(default(int));
//Assert
result.Should().NotBeNull();
result.Should().BeOfType<BadRequestResult>();
result.StatusCode.Should().Be(400);
}
[Fact]
public async Task Detail_PorfolioDetailNotFound_ReturnNotFound()
{
A.CallTo(() => _mediatorFake.Send(A<PortfolioByIdQuery>._, A<CancellationToken>._)).Returns((Portfolio)null);
//Act
var result = (NotFoundResult)await _sut.Detail(1);
//Assert
result.Should().NotBeNull();
result.Should().BeOfType<NotFoundResult>();
result.StatusCode.Should().Be(404);
}
[Fact]
public async Task Detail_ModelNotNull_ReturnsCorrectView()
{
//Act
var result = (ViewResult)await _sut.Detail(1);
//Assert
result.Should().NotBeNull();
result.Should().BeOfType<ViewResult>();
result.ViewName.Should().BeNull();
}
[Fact]
public async Task Detail_ModelNotNull_ReturnsCorrectPortfolioViewModel()
{
//Arrange
var portfolio = new Portfolio { PortfolioId = 1 };
var portfolioViewModel = new PortfolioViewModel { PortfolioId = portfolio.PortfolioId };
A.CallTo(() => _mediatorFake.Send(A<PortfolioByIdQuery>._, A<CancellationToken>._)).Returns(portfolio);
A.CallTo(() => _mapperFake.Map<Portfolio, PortfolioViewModel>(A<Portfolio>._)).Returns(portfolioViewModel);
//Act
var result = (ViewResult)await _sut.Detail(1);
//Assert
result.Model.Should().NotBeNull();
result.Model.Should().BeOfType<PortfolioViewModel>();
result.Model.Should().Be(portfolioViewModel);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment