/*
* Copyright 2010-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://aws.amazon.com/apache2.0
*
* This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
* OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and
* limitations under the License.
*/
package com.amazonaws.services.kinesis.model.transform;
import static org.junit.Assert.assertEquals;
import com.amazonaws.Request;
import com.amazonaws.services.kinesis.model.PutRecordRequest;
import com.amazonaws.util.BinaryUtils;
import com.amazonaws.util.IOUtils;
import com.amazonaws.util.StringUtils;
import com.amazonaws.util.json.JsonUtils;
import org.apache.commons.lang.RandomStringUtils;
import org.junit.Test;
import org.junit.Ignore;
import java.io.ByteArrayInputStream;
import java.nio.ByteBuffer;
import java.util.Map;
import java.util.zip.GZIPInputStream;
public class PutRecordRequestMarshallerTest {
@Ignore
@Test
public void test() throws Exception {
PutRecordRequest putRecordRequest = new PutRecordRequest();
putRecordRequest.setStreamName("stream name");
putRecordRequest.setSequenceNumberForOrdering("sequence number for ordering");
putRecordRequest.setPartitionKey("partition key");
String randomStr = RandomStringUtils.random(128 * 1024);
putRecordRequest.setData(ByteBuffer.wrap(randomStr.getBytes(StringUtils.UTF8)));
PutRecordRequestMarshaller marshaller = new PutRecordRequestMarshaller();
Request<PutRecordRequest> request = marshaller.marshall(putRecordRequest);
assertEquals("content encoding", "gzip", request.getHeaders().get("Content-Encoding"));
byte[] content = IOUtils.toByteArray(request.getContent());
assertEquals("content length", request.getHeaders().get("Content-Length"),
String.valueOf(content.length));
GZIPInputStream gis = new GZIPInputStream(new ByteArrayInputStream(content));
String str = IOUtils.toString(gis);
Map<String, String> map = JsonUtils.jsonToMap(str);
assertEquals("StreamName", "stream name", map.get("StreamName"));
String data = new String(BinaryUtils.fromBase64(map.get("Data")), StringUtils.UTF8);
assertEquals("same data", randomStr, data);
}
}