public void Validate_WhenAccountingRepositoryIsNull_ThrowsArgumentNullException() { IDeleteContactCommand sut = CreateSut(); ArgumentNullException result = Assert.Throws <ArgumentNullException>(() => sut.Validate(_validatorMockContext.ValidatorMock.Object, _microsoftGraphRepositoryMock.Object, _contactRepositoryMock.Object, null)); Assert.That(result.ParamName, Is.EqualTo("accountingRepository")); }
public void GetExistingContactAsync_WhenContactRepositoryIsNull_ThrowsArgumentNullException() { IDeleteContactCommand sut = CreateSut(); ArgumentNullException result = Assert.ThrowsAsync <ArgumentNullException>(async() => await sut.GetExistingContactAsync(_microsoftGraphRepositoryMock.Object, null)); Assert.That(result.ParamName, Is.EqualTo("contactRepository")); }
public void Validate_WhenCalled_ReturnsValidator() { IDeleteContactCommand sut = CreateSut(); IValidator result = sut.Validate(_validatorMockContext.ValidatorMock.Object, _microsoftGraphRepositoryMock.Object, _contactRepositoryMock.Object, _accountingRepositoryMock.Object); Assert.That(result, Is.EqualTo(_validatorMockContext.ValidatorMock.Object)); }
public async Task GetExistingContactAsync_WhenCalledAndNoContactWasReturnedFromMicrosoftGraphRepository_ReturnsNull() { IDeleteContactCommand sut = CreateSut(hasMicrosoftGraphContact: false); IContact result = await sut.GetExistingContactAsync(_microsoftGraphRepositoryMock.Object, _contactRepositoryMock.Object); Assert.That(result, Is.Null); }
public async Task GetExistingContactAsync_WhenCalledAndNoContactWasReturnedFromMicrosoftGraphRepository_AssertApplyContactSupplementAsyncWasNotCalledOnContactRepository() { IDeleteContactCommand sut = CreateSut(hasMicrosoftGraphContact: false); await sut.GetExistingContactAsync(_microsoftGraphRepositoryMock.Object, _contactRepositoryMock.Object); _contactRepositoryMock.Verify(m => m.ApplyContactSupplementAsync(It.IsAny <IContact>()), Times.Never); }
public async Task GetExistingContactAsync_WhenCalledAndContactWasReturnedFromMicrosoftGraphRepository_ReturnAppliedContactSupplementFromContactRepository() { IContact appliedContactSupplement = _fixture.BuildContactMock().Object; IDeleteContactCommand sut = CreateSut(appliedContactSupplement: appliedContactSupplement); IContact result = await sut.GetExistingContactAsync(_microsoftGraphRepositoryMock.Object, _contactRepositoryMock.Object); Assert.That(result, Is.EqualTo(appliedContactSupplement)); }
public async Task ExecuteAsync_WhenCalledAndCommandHasExternalIdentifierAndNoExistingContactWasReturnedFromCommand_AssertDeleteContactAsyncWasNotCalledOnMicrosoftGraphRepository() { CommandHandler sut = CreateSut(); IDeleteContactCommand command = CreateDeleteContactCommandMock(hasExistingContact: false).Object; await sut.ExecuteAsync(command); _microsoftGraphRepositoryMock.Verify(m => m.DeleteContactAsync(It.IsAny <IRefreshableToken>(), It.IsAny <string>()), Times.Never()); }
public async Task GetExistingContactAsync_WhenCalledAndContactWasReturnedFromMicrosoftGraphRepository_AssertApplyContactSupplementAsyncWasCalledOnContactRepositoryWithContactFromMicrosoftGraphRepository() { IContact microsoftGraphContact = _fixture.BuildContactMock().Object; IDeleteContactCommand sut = CreateSut(microsoftGraphContact: microsoftGraphContact); await sut.GetExistingContactAsync(_microsoftGraphRepositoryMock.Object, _contactRepositoryMock.Object); _contactRepositoryMock.Verify(m => m.ApplyContactSupplementAsync(It.Is <IContact>(value => value == microsoftGraphContact)), Times.Once); }
public async Task ExecuteAsync_WhenCalledAndCommandDoesNotHaveExternalIdentifier_AssertDeleteContactSupplementAsyncWasNotCalledOnContactRepository() { CommandHandler sut = CreateSut(); IDeleteContactCommand command = CreateDeleteContactCommandMock(false).Object; await sut.ExecuteAsync(command); _contactRepositoryMock.Verify(m => m.DeleteContactSupplementAsync(It.IsAny <IContact>()), Times.Never()); }
public async Task ExecuteAsync_WhenCalledAndCommandDoesNotHaveExternalIdentifier_AssertExternalIdentifierWasNotCalledOnExistingContactFromCommand() { CommandHandler sut = CreateSut(); Mock <IContact> existingContactMock = _fixture.BuildContactMock(); IDeleteContactCommand command = CreateDeleteContactCommandMock(false, existingContact: existingContactMock.Object).Object; await sut.ExecuteAsync(command); existingContactMock.Verify(m => m.ExternalIdentifier, Times.Never); }
public async Task ExecuteAsync_WhenCalledAndCommandHasExternalIdentifierAndExistingContactWithExternalIdentifierWasReturnedFromCommand_AssertDeleteContactSupplementAsyncWasCalledOnContactRepositoryWithExistingContactFromCommand() { CommandHandler sut = CreateSut(); IContact existingContact = _fixture.BuildContactMock().Object; IDeleteContactCommand command = CreateDeleteContactCommandMock(existingContact: existingContact).Object; await sut.ExecuteAsync(command); _contactRepositoryMock.Verify(m => m.DeleteContactSupplementAsync(It.Is <IContact>(value => value == existingContact)), Times.Once()); }
public async Task ExecuteAsync_WhenCalledAndCommandHasExternalIdentifierAndExistingContactWasReturnedFromCommand_AssertExternalIdentifierWasCalledOnExistingContactFromCommand() { CommandHandler sut = CreateSut(); Mock <IContact> existingContactMock = _fixture.BuildContactMock(); IDeleteContactCommand command = CreateDeleteContactCommandMock(existingContact: existingContactMock.Object).Object; await sut.ExecuteAsync(command); existingContactMock.Verify(m => m.ExternalIdentifier, Times.Once); }
public void Validate_WhenCalled_AssertShouldNotBeNullOrWhiteSpaceWasCalledOnStringValidatorForExternalIdentifier() { string externalIdentifier = _fixture.Create <string>(); IDeleteContactCommand sut = CreateSut(externalIdentifier); sut.Validate(_validatorMockContext.ValidatorMock.Object, _microsoftGraphRepositoryMock.Object, _contactRepositoryMock.Object, _accountingRepositoryMock.Object); _validatorMockContext.StringValidatorMock.Verify(m => m.ShouldNotBeNullOrWhiteSpace( It.Is <string>(value => string.CompareOrdinal(value, externalIdentifier) == 0), It.Is <Type>(value => value == sut.GetType()), It.Is <string>(value => string.CompareOrdinal(value, "ExternalIdentifier") == 0)), Times.Once); }
public ContactsController( IGetAllContactsCommand getAllContactsCommand, IGetContactByIdCommand getContactByIdCommand, ICreateContactCommand createContactCommand, IDeleteContactCommand deleteContactCommand, IUpdateContactCommand updateContactCommand ) { _getAllContactsCommand = getAllContactsCommand; _getContactByIdCommand = getContactByIdCommand; _createContactCommand = createContactCommand; _deleteContactCommand = deleteContactCommand; _updateContactCommand = updateContactCommand; }
public void Validate_WhenCalled_AssertShouldBeKnownValueWasCalledOnObjectValidatorForExternalIdentifier() { string externalIdentifier = _fixture.Create <string>(); IDeleteContactCommand sut = CreateSut(externalIdentifier); sut.Validate(_validatorMockContext.ValidatorMock.Object, _microsoftGraphRepositoryMock.Object, _contactRepositoryMock.Object, _accountingRepositoryMock.Object); _validatorMockContext.ObjectValidatorMock.Verify(m => m.ShouldBeKnownValue( It.Is <string>(value => string.CompareOrdinal(value, externalIdentifier) == 0), It.IsNotNull <Func <string, Task <bool> > >(), It.Is <Type>(value => value == sut.GetType()), It.Is <string>(value => string.CompareOrdinal(value, "ExternalIdentifier") == 0), It.Is <bool>(value => value == false)), Times.Once); }
public async Task ExecuteAsync_WhenCalledAndCommandHasExternalIdentifierAndExistingContactWithExternalIdentifierWasReturnedFromCommand_AssertDeleteContactAsyncWasCalledOnMicrosoftGraphRepositoryWithExternalIdentifierFromExistingContactFromCommand() { CommandHandler sut = CreateSut(); string externalIdentifier = _fixture.Create <string>(); IContact existingContact = _fixture.BuildContactMock(externalIdentifier: externalIdentifier).Object; IRefreshableToken refreshableToken = _fixture.BuildRefreshableTokenMock().Object; IDeleteContactCommand command = CreateDeleteContactCommandMock(existingContact: existingContact, refreshableToken: refreshableToken).Object; await sut.ExecuteAsync(command); _microsoftGraphRepositoryMock.Verify(m => m.DeleteContactAsync( It.Is <IRefreshableToken>(value => value == refreshableToken), It.Is <string>(value => string.CompareOrdinal(value, externalIdentifier) == 0)), Times.Once); }
public async Task GetExistingContactAsync_WhenCalled_AssertGetContactAsyncWasCalledOnMicrosoftGraphRepository() { string tokenType = _fixture.Create <string>(); string accessToken = _fixture.Create <string>(); DateTime expires = _fixture.Create <DateTime>(); string refreshToken = _fixture.Create <string>(); string externalIdentifier = _fixture.Create <string>(); IDeleteContactCommand sut = CreateSut(tokenType, accessToken, expires, refreshToken, externalIdentifier); await sut.GetExistingContactAsync(_microsoftGraphRepositoryMock.Object, _contactRepositoryMock.Object); _microsoftGraphRepositoryMock.Verify(m => m.GetContactAsync( It.Is <IRefreshableToken>(value => value != null && string.CompareOrdinal(value.TokenType, tokenType) == 0 && string.CompareOrdinal(value.AccessToken, accessToken) == 0 && value.Expires == expires && string.CompareOrdinal(value.RefreshToken, refreshToken) == 0), It.Is <string>(value => string.CompareOrdinal(value, externalIdentifier) == 0)), Times.Once); }
public ContactsController(ICreateContactCommand createContactCommand, IUpdateContactCommand updateContactCommand, IDeleteContactCommand deleteContactCommand, IGetAllContactsByCityQuery getAllContactsByCity, IGetAllContactsByStateQuery getAllContactsByStateQuery, IGetContactByEmailQuery getContactByEmailQuery, IGetContactByPhoneNumberQuery getContactByPhoneNumberQuery, IGetContactDetailQuery getContactDetailQuery) { _createContactCommand = createContactCommand; _updateContactCommand = updateContactCommand; _deleteContactCommand = deleteContactCommand; _getAllContactsByCity = getAllContactsByCity; _getAllContactsByStateQuery = getAllContactsByStateQuery; _getContactByEmailQuery = getContactByEmailQuery; _getContactByPhoneNumberQuery = getContactByPhoneNumberQuery; _getContactDetailQuery = getContactDetailQuery; }
public IActionResult Delete(int id, [FromServices] IDeleteContactCommand command) { var contact = _context.Contact.Find(id); if (contact == null) { return(NotFound()); } contact.IsDeleted = true; contact.IsActive = false; contact.DeletedAt = DateTime.Now; _executor.ExecuteCommand(command, id); _context.SaveChanges(); return(NoContent()); }
public DeleteUseCase(IExistByIdQuery existByIdQuery, IDeleteContactCommand deleteCustomerCommand) { _existByIdQuery = existByIdQuery; _deleteCustomerCommand = deleteCustomerCommand; }