BeforeEach(func() {
				err := goamzBucketClient.PutBucket(goamz.BucketOwnerFull)
				Expect(err).NotTo(HaveOccurred())

				client := s3.NewClient(fakeS3EndpointURL, "accessKey", "secretKey", logger)
				bucket, err = client.GetOrCreateBucket(bucketName)
			})

			AfterEach(func() {
				err := goamzBucketClient.DelBucket()
				Expect(err).NotTo(HaveOccurred())
			})

			It("returns the bucket", func() {
				Expect(bucket.Name()).To(Equal(bucketName))
			})

			It("does not return an error", func() {
				Expect(err).NotTo(HaveOccurred())
			})

			It("provides logging", func() {
				Expect(log).To(gbytes.Say(
					fmt.Sprintf(`{"bucket_name":"%s","event":"starting"}`, bucketName),
				))
				Expect(log).To(gbytes.Say(
					fmt.Sprintf(`{"bucket_name":"%s","event":"already-exists"}`, bucketName),
				))
				Expect(log).To(gbytes.Say(
					fmt.Sprintf(`{"bucket_name":"%s","event":"done"}`, bucketName),