use of com.ibm.streamsx.topology.tester.Condition in project streamsx.topology by IBMStreams.
the class TupleCollection method stringContentsUnordered.
@Override
public Condition<List<String>> stringContentsUnordered(TStream<String> stream, String... values) {
final List<String> sortedValues = Arrays.asList(values);
Collections.sort(sortedValues);
final StreamCollector<LinkedList<Tuple>, Tuple> tuples = StreamCollector.newLinkedListCollector();
addHandler(stream, tuples);
return new Condition<List<String>>() {
@Override
public List<String> getResult() {
List<String> strings = new ArrayList<>(tuples.getTupleCount());
synchronized (tuples.getTuples()) {
for (Tuple tuple : tuples.getTuples()) {
strings.add(tuple.getString(0));
}
}
return strings;
}
@Override
public boolean valid() {
List<String> strings = getResult();
if (strings.size() != sortedValues.size())
return false;
Collections.sort(strings);
return sortedValues.equals(strings);
}
@Override
public String toString() {
return "Received Tuples: " + getResult();
}
};
}
use of com.ibm.streamsx.topology.tester.Condition in project streamsx.topology by IBMStreams.
the class TupleCollection method stringContents.
@Override
public Condition<List<String>> stringContents(TStream<String> stream, final String... values) {
stream = stream.asType(String.class);
final StreamCollector<LinkedList<Tuple>, Tuple> tuples = StreamCollector.newLinkedListCollector();
addHandler(stream, tuples);
return new Condition<List<String>>() {
@Override
public List<String> getResult() {
List<String> strings = new ArrayList<>(tuples.getTupleCount());
synchronized (tuples.getTuples()) {
for (Tuple tuple : tuples.getTuples()) {
strings.add(tuple.getString(0));
}
}
return strings;
}
@Override
public boolean valid() {
if (tuples.getTupleCount() != values.length)
return false;
List<Tuple> sc = tuples.getTuples();
for (int i = 0; i < values.length; i++) {
if (!sc.get(i).getString(0).equals(values[i]))
return false;
}
return true;
}
@Override
public String toString() {
return "Received Tuples: " + getResult();
}
};
}
use of com.ibm.streamsx.topology.tester.Condition in project streamsx.topology by IBMStreams.
the class LowLatencyTest method testSameThread.
/**
* Test the same thread executes the low latency section.
*/
@Test
public void testSameThread() throws Exception {
final int tc = 2000;
final Topology topology = newTopology("testSameThread");
final Tester tester = topology.getTester();
TStream<Long> s1 = topology.limitedSource(new Rnd(), tc);
TStream<Long> s2 = topology.limitedSource(new Rnd(), tc);
TStream<Long> s3 = topology.limitedSource(new Rnd(), tc);
TStream<Long> s4 = topology.limitedSource(new Rnd(), tc);
TStream<Long> s = s1.union(new HashSet<>(Arrays.asList(s2, s3, s4)));
s = s.lowLatency();
s = s.transform(new SetThread());
for (int i = 0; i < 20; i++) s = s.transform(new CheckThread());
s = s.transform(new ClearThread());
s = s.endLowLatency();
s = s.filter(t -> true);
this.getConfig().put(com.ibm.streamsx.topology.context.ContextProperties.KEEP_ARTIFACTS, Boolean.TRUE);
Condition<Long> endCondition = tester.tupleCount(s, 4 * tc);
this.complete(tester, endCondition, 30, TimeUnit.SECONDS);
}
use of com.ibm.streamsx.topology.tester.Condition in project streamsx.topology by IBMStreams.
the class StreamTest method testSplit.
@Test
public void testSplit() throws Exception {
final Topology topology = newTopology("testSplit");
TStream<String> s1 = topology.strings("ch0", "ch1", "ch2", "omit", "another-ch2", "another-ch1", "another-ch0", "another-omit");
List<TStream<String>> splits = s1.split(3, myStringSplitter());
assertEquals("list size", 3, splits.size());
Tester tester = topology.getTester();
List<Condition<List<String>>> contents = new ArrayList<>();
for (int i = 0; i < splits.size(); i++) {
TStream<String> ch = splits.get(i);
Condition<List<String>> chContents = tester.stringContents(ch, "ch" + i, "another-ch" + i);
contents.add(chContents);
}
TStream<String> all = splits.get(0).union(new HashSet<>(splits.subList(1, splits.size())));
Condition<Long> uCount = tester.tupleCount(all, 6);
complete(tester, uCount, 10, TimeUnit.SECONDS);
for (int i = 0; i < splits.size(); i++) {
assertTrue("chContents[" + i + "]:" + contents.get(i), contents.get(i).valid());
}
}
Aggregations