public async Task ShouldAddUserContactAsync()
        {
            // given
            UserContact randomUserContact   = CreateRandomUserContact();
            UserContact inputUserContact    = randomUserContact;
            UserContact storageUserContact  = randomUserContact;
            UserContact expectedUserContact = storageUserContact;

            this.storageBrokerMock.Setup(broker =>
                                         broker.InsertUserContactAsync(inputUserContact))
            .ReturnsAsync(storageUserContact);

            // when
            UserContact actualUserContact =
                await this.userContactService.AddUserContactAsync(inputUserContact);

            // then
            actualUserContact.Should().BeEquivalentTo(expectedUserContact);

            this.storageBrokerMock.Verify(broker =>
                                          broker.InsertUserContactAsync(inputUserContact),
                                          Times.Once);

            this.storageBrokerMock.VerifyNoOtherCalls();
            this.loggingBrokerMock.VerifyNoOtherCalls();
        }
예제 #2
0
        public async Task ShouldRemoveUserContactAsync()
        {
            // given
            var         randomUserId      = Guid.NewGuid();
            var         randomContactId   = Guid.NewGuid();
            Guid        inputUserId       = randomUserId;
            Guid        inputContactId    = randomContactId;
            UserContact randomUserContact = CreateRandomUserContact();

            randomUserContact.UserId    = inputUserId;
            randomUserContact.ContactId = inputContactId;
            UserContact storageUserContact  = randomUserContact;
            UserContact expectedUserContact = storageUserContact;

            this.storageBrokerMock.Setup(broker =>
                                         broker.SelectUserContactByIdAsync(inputUserId, inputContactId))
            .ReturnsAsync(storageUserContact);

            this.storageBrokerMock.Setup(broker =>
                                         broker.DeleteUserContactAsync(storageUserContact))
            .ReturnsAsync(expectedUserContact);

            // when
            UserContact actualUserContact =
                await this.userContactService.RemoveUserContactByIdAsync(inputUserId, inputContactId);

            // then
            actualUserContact.Should().BeEquivalentTo(expectedUserContact);

            this.storageBrokerMock.Verify(broker =>
                                          broker.SelectUserContactByIdAsync(inputUserId, inputContactId),
                                          Times.Once);

            this.storageBrokerMock.Verify(broker =>
                                          broker.DeleteUserContactAsync(storageUserContact),
                                          Times.Once);

            this.storageBrokerMock.VerifyNoOtherCalls();
            this.storageBrokerMock.VerifyNoOtherCalls();
        }