package at.punkt.lod2.local; import at.punkt.lod2.util.Helper; import eu.lod2.rsine.dissemination.messageformatting.VelocityBindingSetFormatter; import eu.lod2.rsine.registrationservice.NotificationQuery; import eu.lod2.rsine.registrationservice.Subscription; import eu.lod2.rsine.registrationservice.SubscriptionParser; import org.junit.Assert; import org.junit.Test; import org.openrdf.model.Model; import org.openrdf.rio.RDFFormat; import org.openrdf.rio.RDFHandlerException; import org.openrdf.rio.RDFParseException; import java.io.IOException; import java.util.Iterator; public class SubscriptionParserTest { @Test public void emailNotificationSubscription() throws RDFParseException, IOException, RDFHandlerException { Model rdfSubscription = Helper.createModelFromResourceFile("/internal/emailNotifierSubscription.ttl", RDFFormat.TURTLE); Subscription subscription = new SubscriptionParser(rdfSubscription).createSubscription(); Assert.assertTrue(subscription.getNotifierIterator().hasNext()); Assert.assertTrue(subscription.getQueries().hasNext()); } @Test public void customFormatter() throws RDFParseException, IOException, RDFHandlerException { Model rdfSubscription = Helper.createModelFromResourceFile("/internal/labelChangeSubscriptionFormatted.ttl", RDFFormat.TURTLE); Subscription subscription = new SubscriptionParser(rdfSubscription).createSubscription(); NotificationQuery notificationQuery = subscription.getQueries().next(); Assert.assertNotNull(notificationQuery); Assert.assertTrue(notificationQuery.getBindingSetFormatter() instanceof VelocityBindingSetFormatter); } @Test public void queryWithCondition() throws RDFParseException, IOException, RDFHandlerException { Model rdfSubscription = Helper.createModelFromResourceFile("/internal/subscriptionWithCondition.ttl", RDFFormat.TURTLE); Subscription subscription = new SubscriptionParser(rdfSubscription).createSubscription(); NotificationQuery notificationQuery = subscription.getQueries().next(); Assert.assertNotNull(notificationQuery); Assert.assertTrue(notificationQuery.getConditions().hasNext()); } @Test public void queryWithDescription() throws RDFParseException, IOException, RDFHandlerException { Model rdfSubscription = Helper.createModelFromResourceFile("/internal/subscriptionWithDescription.ttl", RDFFormat.TURTLE); Subscription subscription = new SubscriptionParser(rdfSubscription).createSubscription(); Assert.assertTrue(subscription.getDescription().equals("description")); } @Test public void queryWithAuxiliaryInfo() throws RDFParseException, IOException, RDFHandlerException { Model rdfSubscription = Helper.createModelFromResourceFile("/internal/subscriptionWithAuxiliary.ttl", RDFFormat.TURTLE); Subscription subscription = new SubscriptionParser(rdfSubscription).createSubscription(); NotificationQuery notificationQuery = subscription.getQueries().next(); Iterator<String> queryIt = notificationQuery.getAuxiliaryQueries(); int count = 0; while (queryIt.hasNext()) { count++; queryIt.next(); } Assert.assertEquals(2, count); } }