async Task RequestLoanCommand_WithInvalidBook_ShoudlReturnBookNotFound() { //arrage RequestLoanCommand command = new RequestLoanCommand("12345678998", Guid.NewGuid().ToString()); Mocker.GetMock <IPersonRepository>() .Setup(p => p.GetByDocument(It.IsAny <string>(), It.IsAny <bool>())) .Returns(() => Task.FromResult(PersonFactory.ReturnPerson())); Mocker.GetMock <IBookRepository>() .Setup(b => b.GetById(It.IsAny <Guid>())) .Returns(() => Task.FromResult <Book>(null)); var sut = Mocker.CreateInstance <RequestLoanCommandHandler>(); //act await sut.Handle(command, new CancellationToken()); //assert Mocker.GetMock <IPersonRepository>().Verify(x => x.GetByDocument(It.IsAny <string>(), It.IsAny <bool>()), Times.Once()); Mocker.GetMock <IBookRepository>().Verify(x => x.GetById(It.IsAny <Guid>()), Times.Once()); Mocker.GetMock <IBookLoanRepository>().Verify(x => x.Add(It.IsAny <BookLoan>()), Times.Never); DomainNotifications.GetAll().Should().NotBeEmpty() .And.HaveCount(1) .And.Contain(x => x == Messages.BookLoan_BookNotFound); }
async Task RequestLoanCommand_WithInvalidBookGuid_ShouldReturnError(string bookGuid, string outputError) { //arrage RequestLoanCommand command = new RequestLoanCommand("", bookGuid); var sut = Mocker.CreateInstance <RequestLoanCommandHandler>(); //act await sut.Handle(command, new CancellationToken()); //assert DomainNotifications.GetAll().Should().NotBeNullOrEmpty() .And.HaveCount(1) .And.Contain(x => x == outputError); Mocker.GetMock <IPersonRepository>().Verify(x => x.GetByDocument(It.IsAny <string>(), It.IsAny <bool>()), Times.Never()); }
async Task RequestLoanCommand_WithInvalidPerson_ShouldReturnPersonNotFound() { //arrage TestBaseArrangements baseArrangements = new TestBaseArrangements(); RequestLoanCommand command = new RequestLoanCommand("", Guid.NewGuid().ToString()); baseArrangements.Mocker.GetMock <IPersonRepository>() .Setup(p => p.GetByDocument(It.IsAny <string>(), It.IsAny <bool>())) .Returns(() => Task.FromResult <Person>(null)); var sut = baseArrangements.Mocker.CreateInstance <RequestLoanCommandHandler>(); //act await sut.Handle(command, new CancellationToken()); //Assert baseArrangements.Mocker.GetMock <IPersonRepository>().Verify(x => x.GetByDocument(It.IsAny <string>(), It.IsAny <bool>()), Times.Once()); baseArrangements.Mocker.GetMock <IBookLoanRepository>().Verify(x => x.Add(It.IsAny <BookLoan>()), Times.Never); baseArrangements.DomainNotifications.GetAll().Should().NotBeEmpty() .And.HaveCount(1) .And.Contain(x => x == Messages.BookLoan_PersonNotFound); }
async Task RequestLoanCommand_WithValidInfos_ShoudlReturnSuccess() { //arrage TestBaseArrangements baseArrangements = new TestBaseArrangements(); RequestLoanCommand command = new RequestLoanCommand("12345678998", Guid.NewGuid().ToString()); baseArrangements.Mocker.GetMock <IPersonRepository>() .Setup(p => p.GetByDocument(It.IsAny <string>(), It.IsAny <bool>())) .Returns(() => Task.FromResult(PersonFactory.ReturnPerson())); baseArrangements.Mocker.GetMock <IBookRepository>() .Setup(b => b.GetById(It.IsAny <Guid>())) .Returns(() => Task.FromResult <Book>(BookFactory.ReturnBook())); var sut = baseArrangements.Mocker.CreateInstance <RequestLoanCommandHandler>(); //act await sut.Handle(command, new CancellationToken()); //assert baseArrangements.Mocker.GetMock <IPersonRepository>().Verify(x => x.GetByDocument(It.IsAny <string>(), It.IsAny <bool>()), Times.Once()); baseArrangements.Mocker.GetMock <IBookRepository>().Verify(x => x.GetById(It.IsAny <Guid>()), Times.Once()); baseArrangements.Mocker.GetMock <IBookLoanRepository>().Verify(x => x.Add(It.IsAny <BookLoan>()), Times.Once); baseArrangements.DomainNotifications.GetAll().Should().BeEmpty(); }
public async Task <IActionResult> Loan([FromBody] RequestLoanCommand command) { RequestResult requestResult = await _orquestrator.SendCommand(command); return(await ReturnRequestResult(requestResult)); }
public async Task <IActionResult> Loan(RequestLoanCommand command) { var result = await _mediator.Send(command, new System.Threading.CancellationToken()); return(await ReturnCommand(result)); }