package eu.play_project.querydispatcher.epsparql.tests; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.util.Arrays; import java.util.HashSet; import java.util.Set; import org.junit.Test; import com.hp.hpl.jena.query.Query; import com.hp.hpl.jena.query.QueryFactory; import eu.play_project.play_commons.constants.Stream; import eu.play_project.play_platformservices.api.QueryDetails; import eu.play_project.play_platformservices_querydispatcher.bdpl.visitor.realtime.StreamIdCollector; public class StreamIdCollectorTest { @Test public void testStreamIdCollector() { Set<String> expectedInputStreams = new HashSet<String>(Arrays.asList(new String[] {Stream.TwitterFeed.getTopicUri(), Stream.TaxiUCGeoLocation.getTopicUri(), Stream.TaxiUCGeoLocation.getTopicUri()})); String expectedOutputStream = Stream.ContextualizedLatitudeFeed.getTopicUri(); // Get query. String queryString = BdplEleTest.getSparqlQuery("play-epsparql-contextualized-latitude-01-query.eprq"); String queryId = "exampleQuery"; assertNotNull("Testing Query was not found on classpath", queryString); Query q = QueryFactory.create(queryString, com.hp.hpl.jena.query.Syntax.syntaxBDPL); QueryDetails qd = new QueryDetails(); qd.setQueryId(queryId); StreamIdCollector streamIdCollector = new StreamIdCollector(); streamIdCollector.getStreamIds(q, qd); // Test output stream assertTrue(qd.getOutputStream().equals(expectedOutputStream)); // Test input streams assertTrue(qd.getInputStreams().equals(expectedInputStreams)); } @Test public void testStreamIdCollectorHistoric() { Set<String> expectedInputStreams = new HashSet<String>(Arrays.asList(new String[] {"http://streams.event-processing.org/ids/Temperature"})); Set<String> expectedHistoricalStreams = new HashSet<String>(Arrays.asList(new String[] {"http://streams.event-processing.org/ids/TemperatureA", "http://streams.event-processing.org/ids/TemperatureB"})); String expectedOutputStream = "http://streams.event-processing.org/ids/Temperatures"; // Get query. String queryString = BdplEleTest.getSparqlQuery("EP-SPARQL-Query-Realtime-Historical-multiple-Clouds.eprq"); String queryId = "exampleQuery2"; assertNotNull("Testing Query was not found on classpath", queryString); Query q = QueryFactory.create(queryString, com.hp.hpl.jena.query.Syntax.syntaxBDPL); QueryDetails qd = new QueryDetails(); qd.setQueryId(queryId); StreamIdCollector streamIdCollector = new StreamIdCollector(); streamIdCollector.getStreamIds(q, qd); // Test output stream System.out.println(qd.getOutputStream()); assertTrue(qd.getOutputStream().equals(expectedOutputStream)); // Test input streams assertTrue(qd.getInputStreams().equals(expectedInputStreams)); // Test historical streams assertTrue(qd.getHistoricStreams().equals(expectedHistoricalStreams)); } }