We need to mock uploadPartOfData() and completeMultiPart() in GZip mode, because even an empty string will produce 20+ bytes for GZip header and trailer, and then in open() may flush those data into S3KeyWriter.
| 107 | // because even an empty string will produce 20+ bytes for GZip header and trailer, |
| 108 | // and then in open() may flush those data into S3KeyWriter. |
| 109 | TEST_F(S3CommonWriteTest, UsingGZip) { |
| 110 | EXPECT_CALL(mockS3Interface, getUploadId(_)) |
| 111 | .WillOnce(Invoke(&mockS3Interface, &MockS3InterfaceForCompressionWrite::mockGetUploadId)); |
| 112 | EXPECT_CALL(mockS3Interface, uploadPartOfData(_, _, _, _)) |
| 113 | .WillOnce( |
| 114 | Invoke(&mockS3Interface, &MockS3InterfaceForCompressionWrite::mockUploadPartOfData)); |
| 115 | EXPECT_CALL(mockS3Interface, completeMultiPart(_, _, _)) |
| 116 | .WillOnce( |
| 117 | Invoke(&mockS3Interface, &MockS3InterfaceForCompressionWrite::mockCompleteMultiPart)); |
| 118 | |
| 119 | S3Params params("s3://abc/def"); |
| 120 | params.setAutoCompress(true); |
| 121 | params.setNumOfChunks(1); |
| 122 | params.setChunkSize(S3_ZIP_COMPRESS_CHUNKSIZE + 1); |
| 123 | |
| 124 | this->open(params); |
| 125 | |
| 126 | ASSERT_EQ(this->upstreamWriter, &this->compressWriter); |
| 127 | ASSERT_TRUE(NULL != dynamic_cast<CompressWriter *>(this->upstreamWriter)); |
| 128 | } |
| 129 | |
| 130 | // We need not to mock uploadPartOfData() and completeMultiPart() in plain mode, |
| 131 | TEST_F(S3CommonWriteTest, UsingPlain) { |
nothing calls this directly
no test coverage detected