コード例 #1
0
        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"));
        }
コード例 #2
0
        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"));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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));
        }
コード例 #7
0
        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());
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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());
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        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());
        }
コード例 #12
0
        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);
        }
コード例 #13
0
        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);
        }
コード例 #14
0
 public ContactsController(
     IGetAllContactsCommand getAllContactsCommand,
     IGetContactByIdCommand getContactByIdCommand,
     ICreateContactCommand createContactCommand,
     IDeleteContactCommand deleteContactCommand,
     IUpdateContactCommand updateContactCommand
     )
 {
     _getAllContactsCommand = getAllContactsCommand;
     _getContactByIdCommand = getContactByIdCommand;
     _createContactCommand  = createContactCommand;
     _deleteContactCommand  = deleteContactCommand;
     _updateContactCommand  = updateContactCommand;
 }
コード例 #15
0
        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);
        }
コード例 #16
0
        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);
        }
コード例 #17
0
        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);
        }
コード例 #18
0
 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;
 }
コード例 #19
0
        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());
        }
コード例 #20
0
ファイル: DeleteUseCase.cs プロジェクト: ademvelika/PhoneBook
 public DeleteUseCase(IExistByIdQuery existByIdQuery, IDeleteContactCommand deleteCustomerCommand)
 {
     _existByIdQuery        = existByIdQuery;
     _deleteCustomerCommand = deleteCustomerCommand;
 }