use of edu.uci.ics.texera.dataflow.sink.tuple.TupleSink in project textdb by TextDB.
the class TupleSinkTest method testGetNextTuple.
@Test
public void testGetNextTuple() throws Exception {
TupleSink tupleSink = new TupleSink();
tupleSink.setInputOperator(inputOperator);
tupleSink.open();
Tuple tuple = tupleSink.getNextTuple();
Assert.assertEquals("test1", tuple.getField("content").getValue());
tupleSink.close();
}
use of edu.uci.ics.texera.dataflow.sink.tuple.TupleSink in project textdb by TextDB.
the class TupleSinkTest method testOpenClose.
@Test
public void testOpenClose() throws Exception {
TupleSink tupleSink = new TupleSink();
tupleSink.setInputOperator(inputOperator);
tupleSink.open();
// verify that inputOperator called open() method
// assert that the tuple stream sink removes the PAYLOAD attribute
Assert.assertEquals(new Schema(SchemaConstants._ID_ATTRIBUTE, new Attribute("content", AttributeType.TEXT)), tupleSink.getOutputSchema());
tupleSink.close();
}
use of edu.uci.ics.texera.dataflow.sink.tuple.TupleSink in project textdb by TextDB.
the class TupleSinkTest method testLimitOffset.
/*
* Test tuple sink predicate with limit 1 and offset 1.
*/
@Test
public void testLimitOffset() throws Exception {
TupleSink tupleSink = new TupleSink(new TupleSinkPredicate(1, 1));
tupleSink.setInputOperator(inputOperator);
tupleSink.open();
Tuple resultTuple1 = tupleSink.getNextTuple();
Tuple resultTuple2 = tupleSink.getNextTuple();
tupleSink.close();
Assert.assertEquals("test2", resultTuple1.getField("content").getValue());
Assert.assertTrue(resultTuple2 == null);
}
use of edu.uci.ics.texera.dataflow.sink.tuple.TupleSink in project textdb by TextDB.
the class TwitterFeedOperatorTest method testWithMockClient.
/**
* Mock the TwitterConnector class and the BasicClient class inside it to test the TwitterFeedOperator alone.
* Use the pre-defined queue with a Json formatted tweet to generate a tuple.
* Check if the tuple is well-formatted.
*/
@Test
public void testWithMockClient() throws Exception {
TwitterConnector mockTwitterConnector = mock(TwitterConnector.class);
queue.add(inputStream);
TwitterFeedSourcePredicate predicate = new TwitterFeedSourcePredicate(1, keywordList, "", null, null, null, null, null);
TwitterFeedOperator operator = new TwitterFeedOperator(predicate, mockTwitterConnector);
operator.setTimeout(timeOut);
BasicClient mockClient = mock(BasicClient.class);
when(mockTwitterConnector.getClient()).thenReturn(mockClient);
when(mockTwitterConnector.getMsgQueue()).thenReturn(queue);
TupleSink tupleSink = new TupleSink();
tupleSink.setInputOperator(operator);
tupleSink.open();
List<Tuple> exactResults = tupleSink.collectAllTuples();
tupleSink.close();
JsonNode tweet = new ObjectMapper().readValue(inputStream, JsonNode.class);
Tuple expectedTuple = new Tuple(TwitterUtils.TwitterSchema.TWITTER_SCHEMA, new TextField(TwitterUtils.getText(tweet)), new StringField(TwitterUtils.getMediaLink(tweet)), new StringField(TwitterUtils.getTweetLink(tweet)), new StringField(TwitterUtils.getUserLink(tweet)), new TextField(TwitterUtils.getUserScreenName(tweet)), new TextField(TwitterUtils.getUserName(tweet)), new TextField(TwitterUtils.getUserDescription(tweet)), new IntegerField(TwitterUtils.getUserFollowerCnt(tweet)), new IntegerField(TwitterUtils.getUserFriendsCnt(tweet)), new TextField(TwitterUtils.getUserLocation(tweet)), new StringField(TwitterUtils.getCreateTime(tweet)), new TextField(TwitterUtils.getPlaceName(tweet)), new StringField(TwitterUtils.getCoordinates(tweet)), new StringField(TwitterUtils.getLanguage(tweet)));
String exactID = exactResults.get(0).getFields().get(0).getValue().toString();
String expectedID = exactResults.get(0).getField(SchemaConstants._ID).getValue().toString();
Assert.assertEquals(exactResults.size(), 1);
Assert.assertEquals(exactID, expectedID);
Assert.assertTrue(TwitterFeedTestHelper.compareTuple(exactResults, expectedTuple));
}
use of edu.uci.ics.texera.dataflow.sink.tuple.TupleSink in project textdb by TextDB.
the class EmojiSentimentTest method test1.
@Test
public void test1() throws TexeraException {
TupleSourceOperator tupleSource = new TupleSourceOperator(Arrays.asList(EmojiSentimentTestConstants.POSITIVE_TUPLE1), EmojiSentimentTestConstants.SENTIMENT_SCHEMA);
EmojiSentimentOperator sentiment = new EmojiSentimentOperator(new EmojiSentimentPredicate(EmojiSentimentTestConstants.TEXT, "sentiment"));
TupleSink tupleSink = new TupleSink();
sentiment.setInputOperator(tupleSource);
tupleSink.setInputOperator(sentiment);
tupleSink.open();
List<Tuple> results = tupleSink.collectAllTuples();
tupleSink.close();
Tuple tuple = results.get(0);
Assert.assertEquals(tuple.getField("sentiment").getValue(), SentimentConstants.POSITIVE);
}
Aggregations