/* * Copyright 2015 the original author or authors. * * 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://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License 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.acme; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.springframework.core.io.ClassPathResource; import org.springframework.xd.reactor.Processor; import reactor.Environment; import reactor.fn.Consumer; import reactor.rx.Stream; import reactor.rx.broadcast.Broadcaster; import reactor.rx.broadcast.SerializedBroadcaster; import java.io.IOException; import java.util.Scanner; /** * @author Mark Pollack */ public class TopTagsTupleTest { protected Environment env; @Before public void loadEnv() { env = Environment.initializeIfEmpty().assignErrorJournal(); } @After public void closeEnv() { Environment.terminate(); } @Test public void tags() throws IOException { final Broadcaster<Object> broadcaster = SerializedBroadcaster.create(); Processor processor = new TopTags(1,10); Stream<?> outputStream = processor.process(broadcaster); outputStream.consume(new Consumer<Object>() { @Override public void accept(Object o) { System.out.println("processed : " + o); } //TODO - expect // processed : {"id":"55786760-7472-065d-8e62-eb83260948a4","timestamp":1422399628134,"hashtag":"AndroidGames","count":1} // processed : {"id":"bd99050f-abfa-a239-c09a-f2fe721daafb","timestamp":1422399628182,"hashtag":"Android","count":1} // processed : {"id":"10ce993c-fd57-322d-efa1-16f810918187","timestamp":1422399628184,"hashtag":"GameInsight","count":1} }); ClassPathResource resource = new ClassPathResource("tweets.json"); Scanner scanner = new Scanner(resource.getInputStream()); while (scanner.hasNext()) { String tweet = scanner.nextLine(); broadcaster.onNext(tweet); //simulateLatency(); } //System.in.read(); } private void simulateLatency(){ try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } } }