Search in sources :

Example 41 with Topology

use of com.ibm.streamsx.topology.Topology in project streamsx.topology by IBMStreams.

the class JSONStreamsTest method testModifyingJson.

@Test
public void testModifyingJson() throws Exception {
    final Topology t = new Topology("SimpleJson");
    final JSONObject value = new JSONObject();
    value.put("question", QUESTION);
    TStream<JSONObject> s = t.constants(Collections.singletonList(value));
    TStream<String> jsonString = JSONStreams.serialize(s);
    TStream<JSONObject> json = JSONStreams.deserialize(jsonString);
    TStream<JSONObject> jsonm = modifyJSON(json);
    assertFalse(value.containsKey("answer"));
    JSONObject ev = new JSONObject();
    ev.put("question", QUESTION);
    ev.put("answer", 42l);
    checkJsonOutput(ev, JSONStreams.serialize(jsonm));
}
Also used : JSONObject(com.ibm.json.java.JSONObject) Topology(com.ibm.streamsx.topology.Topology) TestTopology(com.ibm.streamsx.topology.test.TestTopology) Test(org.junit.Test)

Example 42 with Topology

use of com.ibm.streamsx.topology.Topology in project streamsx.topology by IBMStreams.

the class FileStreamsTest method testDirectoryWatcherOrder.

/**
     * Test that directory watcher creates the correct output.
     */
@Test
public void testDirectoryWatcherOrder() throws Exception {
    final Topology t = new Topology("testDirectoryWatcherOrder");
    runDirectoryWatcher(t, 20, 1);
}
Also used : Topology(com.ibm.streamsx.topology.Topology) TestTopology(com.ibm.streamsx.topology.test.TestTopology) Test(org.junit.Test)

Example 43 with Topology

use of com.ibm.streamsx.topology.Topology in project streamsx.topology by IBMStreams.

the class SubscribeSPLDictTest method testSubscribeSPLDictMap.

@Test
public void testSubscribeSPLDictMap() throws Exception {
    Topology topology = new Topology("testSubscribeMap");
    // Publish a stream with all the SPL types supported by Python including sets
    SPLStream tuples = PythonFunctionalOperatorsTest.testTupleStream(topology, true);
    tuples = addStartupDelay(tuples);
    tuples.publish("pytest/spl/map");
    SPLStream viaSPL = SPL.invokeOperator("spl.relational::Functor", tuples, tuples.getSchema(), null);
    // Python that subscribes to the SPL tuple stream and then republishes as Json.
    includePythonApp(topology, "spl_map_json.py", "spl_map_json::spl_map_json");
    TStream<JSONObject> viaPythonJson = topology.subscribe("pytest/spl/map/result", JSONObject.class);
    SPLStream viaPythonJsonSpl = JSONStreams.toSPL(viaPythonJson.isolate());
    Tester tester = topology.getTester();
    Condition<Long> expectedCount = tester.tupleCount(viaPythonJsonSpl, TUPLE_COUNT);
    Condition<Long> expectedCountSpl = tester.tupleCount(viaSPL, TUPLE_COUNT);
    Condition<List<Tuple>> viaSPLResult = tester.tupleContents(viaSPL);
    Condition<List<Tuple>> viaPythonResult = tester.tupleContents(viaPythonJsonSpl);
    complete(tester, allConditions(expectedCount, expectedCountSpl), 60, TimeUnit.SECONDS);
    System.out.println(expectedCount.getResult());
    System.out.println(expectedCountSpl.getResult());
    assertTrue(expectedCount.valid());
    assertTrue(expectedCountSpl.valid());
    List<Tuple> splResults = viaSPLResult.getResult();
    List<Tuple> pyJsonResults = viaPythonResult.getResult();
    assertEquals(TUPLE_COUNT, splResults.size());
    assertEquals(TUPLE_COUNT, pyJsonResults.size());
    for (int i = 0; i < TUPLE_COUNT; i++) {
        Tuple spl = splResults.get(i);
        JSONObject json = (JSONObject) JSON.parse(pyJsonResults.get(i).getString("jsonString"));
        System.out.println(spl);
        System.out.println(pyJsonResults.get(i).getString("jsonString"));
        assertEquals(spl.getBoolean("b"), ((Boolean) json.get("b")).booleanValue());
        assertEquals(spl.getInt("i8"), ((Number) json.get("i8")).intValue());
        assertEquals(spl.getInt("i16"), ((Number) json.get("i16")).intValue());
        assertEquals(spl.getInt("i32"), ((Number) json.get("i32")).intValue());
        assertEquals(spl.getLong("i64"), ((Number) json.get("i64")).longValue());
        assertEquals(spl.getString("r"), json.get("r").toString());
        assertEquals(spl.getDouble("f32"), ((Number) json.get("f32")).doubleValue(), 0.1);
        assertEquals(spl.getDouble("f64"), ((Number) json.get("f64")).doubleValue(), 0.1);
        {
            List<?> ex = spl.getList("li32");
            JSONArray pya = (JSONArray) json.get("li32");
            assertEquals(ex.size(), pya.size());
            for (int j = 0; j < ex.size(); j++) {
                assertEquals(ex.get(j), ((Number) pya.get(j)).intValue());
            }
        }
        {
            Set<?> ex = spl.getSet("si32");
            JSONArray pya = (JSONArray) json.get("si32");
            assertEquals(ex.size(), pya.size());
            setAssertHelper(ex, pya);
        }
    }
}
Also used : Tester(com.ibm.streamsx.topology.tester.Tester) Set(java.util.Set) TreeSet(java.util.TreeSet) JSONArray(com.ibm.json.java.JSONArray) Topology(com.ibm.streamsx.topology.Topology) SPLStream(com.ibm.streamsx.topology.spl.SPLStream) JSONObject(com.ibm.json.java.JSONObject) List(java.util.List) Tuple(com.ibm.streams.operator.Tuple) PythonFunctionalOperatorsTest(com.ibm.streamsx.topology.test.splpy.PythonFunctionalOperatorsTest) Test(org.junit.Test)

Example 44 with Topology

use of com.ibm.streamsx.topology.Topology in project streamsx.topology by IBMStreams.

the class VwapTest method testVwap.

@Test
public void testVwap() throws Exception {
    // Invokes an SPL operator so cannot run in embedded.       
    assumeSPLOk();
    TStream<Bargain> bargains = Vwap.createVwapTopology();
    bargains = Vwap.realBargains(bargains);
    Topology topology = bargains.topology();
    Tester tester = topology.getTester();
    Condition<Long> expectedCount = tester.atLeastTupleCount(bargains, 2200);
    complete(tester, expectedCount, 120, TimeUnit.SECONDS);
    assertTrue(expectedCount.toString(), expectedCount.valid());
}
Also used : Tester(com.ibm.streamsx.topology.tester.Tester) Bargain(vwap.Bargain) Topology(com.ibm.streamsx.topology.Topology) TestTopology(com.ibm.streamsx.topology.test.TestTopology) Test(org.junit.Test)

Example 45 with Topology

use of com.ibm.streamsx.topology.Topology in project streamsx.topology by IBMStreams.

the class SPLJavaPrimitiveTest method testIsolatedVmArgs2.

@Test
public void testIsolatedVmArgs2() throws Exception {
    // isolation only works in DISTRIBUTED
    assumeTrue(getTesterType() == StreamsContext.Type.DISTRIBUTED_TESTER);
    assumeTrue(SC_OK);
    Topology t = new Topology("testIsolatedVmArgs1");
    SPL.addToolkit(t, new File(getTestRoot(), "spl/testtk"));
    // getConfig().put(ContextProperties.KEEP_ARTIFACTS, true);
    SPLStream spl = SPLStreams.stringToSPLStream(t.strings("hello"));
    // isolate the JavaPrimitive to avoid the restriction/failure
    // demonstrated in testIncompatVmArgs
    spl = spl.isolate();
    Map<String, Object> params = new HashMap<>();
    params.put("vmArg", new String[] { "-DXYZZY", "-DFOOBAR" });
    SPLStream splResult = JavaPrimitive.invokeJavaPrimitive(testjava.NoOpJavaPrimitive.class, spl, SPLSchemas.STRING, params);
    splResult = splResult.isolate();
    TStream<String> result = splResult.toStringStream();
    completeAndValidate(result, 10, "hello");
}
Also used : HashMap(java.util.HashMap) Topology(com.ibm.streamsx.topology.Topology) TestTopology(com.ibm.streamsx.topology.test.TestTopology) File(java.io.File) SPLStream(com.ibm.streamsx.topology.spl.SPLStream) Test(org.junit.Test)

Aggregations

Topology (com.ibm.streamsx.topology.Topology)282 TestTopology (com.ibm.streamsx.topology.test.TestTopology)235 Test (org.junit.Test)227 List (java.util.List)80 Tester (com.ibm.streamsx.topology.tester.Tester)75 SPLStream (com.ibm.streamsx.topology.spl.SPLStream)53 ArrayList (java.util.ArrayList)50 HashMap (java.util.HashMap)33 JSONObject (com.ibm.json.java.JSONObject)25 TStream (com.ibm.streamsx.topology.TStream)23 Message (com.ibm.streamsx.topology.tuple.Message)20 SimpleMessage (com.ibm.streamsx.topology.tuple.SimpleMessage)20 Random (java.util.Random)19 StreamsContext (com.ibm.streamsx.topology.context.StreamsContext)16 File (java.io.File)16 Map (java.util.Map)16 OutputTuple (com.ibm.streams.operator.OutputTuple)14 StreamSchema (com.ibm.streams.operator.StreamSchema)14 Value (com.ibm.streamsx.topology.logic.Value)14 Condition (com.ibm.streamsx.topology.tester.Condition)14