public async Task PutObjectAsync_should_create_object_with_metadata()
        {
            // Arrange
            IBucketObjectService classUnderTest = new BucketObjectService(_s3BucketClient);
            var dummyModel = new DummyModel()
            {
                Age         = 1,
                CreatedDate = DateTime.Now,
                FullName    = "Fizz Buzz",
                Id          = Guid.NewGuid()
            };
            var contentBody = _jsonSerializationService.SerializeObject(dummyModel);

            var putObjectRequest = new PutObjectRequestBuilder(BucketName, FileNameWithMetadata, contentBody);

            putObjectRequest.WithMetadata("biz", "bat");
            putObjectRequest.WithMetadata("fizz", "buzz");

            // Act
            var response = await classUnderTest
                           .PutObjectAsync(putObjectRequest.Create());

            // Assert
            Assert.IsTrue(response.HttpStatusCode == System.Net.HttpStatusCode.OK);
        }
        public async Task PutObjectAsync_should_create_object()
        {
            // TODO - use the builder, I think take `contentBody` out of the ctr

            var uploadFile = FileNameBinaryPdf;
            var filePath   = @"C:\Dev\AwsAdministrator\files\" + uploadFile;

            IBucketObjectService classUnderTest = new BucketObjectService(_s3BucketClient);
            var content = File.ReadAllBytes(filePath);

            var request = new PutObjectRequest
            {
                BucketName  = BucketName,
                Key         = uploadFile,
                ContentType = filePath.GetContentType(),
                InputStream = new MemoryStream(content),
            };

            var response = await classUnderTest
                           .PutObjectAsync(request);

            // Assert
            Assert.IsTrue(response.HttpStatusCode == System.Net.HttpStatusCode.OK);
        }