public async Task BucketStoreLogUnitTest_ShouldSucceed()
        {
            var document      = new IdentityDocument(IdentityString);
            var client        = BuildSenderSubstitute_ReturnsSuccessStatus();
            var bucketService = new BucketService(client);
            var logger        = Substitute.For <ILogger>();
            var task          = bucketService.SetAsync(FirstDocumentId, document, logger);

            await TestInfoLogsWithTwoArgs <IdentityDocument, string>(task, 2, logger);
        }
        private async Task Store_Document_UnitTest(string authKey)
        {
            Command setResponse;

            var document = new IdentityDocument(IdentityString);

            if (authKey.Equals(""))
            {
                setResponse = await _bucketService.SetAsync(FirstDocumentId, document, _logger);
            }
            else
            {
                var bucketService = new BucketService(authKey);
                setResponse = await bucketService.SetAsync(SecondDocumentId, document, _logger);
            }

            setResponse.Status.ShouldBe(CommandStatus.Success);
        }
        public async Task BucketStoreLogUnitTest_ShouldThrowEx()
        {
            var document        = new IdentityDocument(IdentityString);
            var logger          = Substitute.For <ILogger>();
            var client          = BuildSenderSubstitute_ThrowsException();
            var bucketService   = new BucketService(client);
            var exceptionThrown = false;

            try
            {
                await bucketService.SetAsync(FirstDocumentId, document, logger);
            }
            catch (Exception ex)
            {
                logger.Received(1).Error(ex, Arg.Any <string>(), Arg.Any <IdentityDocument>(), Arg.Any <string>());
                exceptionThrown = true;
            }
            finally
            {
                exceptionThrown.ShouldBe(true);
            }
        }