public async Task CreateContactReturnsContact()
        {
            var contact = _fixture.Create <ContactDetails>();
            var token   = _fixture.Create <Token>();

            _mockGateway.Setup(x => x.CreateContact(It.IsAny <ContactDetailsEntity>()))
            .ReturnsAsync(contact);

            var response = await _classUnderTest.ExecuteAsync(new ContactDetailsRequestObject(), token).ConfigureAwait(false);

            response.Should().BeEquivalentTo(contact.ToResponse());
        }
        public async Task CreateContactReturnsContact(bool hasExisting)
        {
            // Arrange
            var contact = _fixture.Create <ContactDetails>();
            var request = _fixture.Create <ContactDetailsRequestObject>();

            if (hasExisting)
            {
                _mockGateway.Setup(x => x.GetContactDetailsByTargetId(It.IsAny <ContactQueryParameter>()))
                .ReturnsAsync(CreateExistingContacts());
            }

            _mockGateway.Setup(x => x.CreateContact(It.IsAny <ContactDetailsEntity>()))
            .ReturnsAsync(contact);

            // Act
            var response = await _classUnderTest.ExecuteAsync(request, _token).ConfigureAwait(false);

            // Assert
            response.Should().BeEquivalentTo(contact.ToResponse());
        }