/*
# Licensed Materials - Property of IBM
# Copyright IBM Corp. 2016
*/
package com.ibm.streamsx.topology.test.api;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.nio.charset.StandardCharsets;
import java.util.Collections;
import org.junit.Test;
import com.ibm.streams.operator.types.Blob;
import com.ibm.streams.operator.types.ValueFactory;
import com.ibm.streamsx.topology.TStream;
import com.ibm.streamsx.topology.Topology;
import com.ibm.streamsx.topology.function.Function;
import com.ibm.streamsx.topology.test.TestTopology;
@SuppressWarnings("serial")
public class BlobTupleTest extends TestTopology {
@Test
public void testConstant() throws Exception {
final Topology topology = newTopology();
String sdata = "YY" + BlobTupleTest.class.getName();
byte[] data = sdata.getBytes(StandardCharsets.UTF_8);
Blob blob = ValueFactory.newBlob(data, 0, data.length);
TStream<Blob> source = topology.constants(Collections.singletonList(blob)).asType(Blob.class);
assertNotNull(source);
assertEquals(Blob.class, source.getTupleClass());
assertEquals(Blob.class, source.getTupleType());
TStream<String> out = convertBlobToString(source);
completeAndValidate(out, 10, sdata);
}
private static TStream<String> convertBlobToString(TStream<Blob> source) {
TStream<String> out = source.transform(new Function<Blob,String>() {
@Override
public String apply(Blob v) {
return new String(v.getData(), StandardCharsets.UTF_8);
}});
return out;
}
}