package com.yahoo.glimmer.web;
import static org.junit.Assert.*;
import org.jmock.Expectations;
import org.jmock.Mockery;
import org.jmock.lib.legacy.ClassImposteriser;
import org.junit.Before;
import org.junit.Test;
import com.yahoo.glimmer.query.RDFIndex;
public class QueryControllerTest {
private Mockery context;
private RDFIndex index;
@Before
public void before() {
context = new Mockery();
context.setImposteriser(ClassImposteriser.INSTANCE);
index = context.mock(RDFIndex.class);
}
@Test
public void encodeResourcesTest() {
context.checking(new Expectations(){{
allowing(index).lookupIdByResourceId("http://schema.org/Blog");
will(returnValue("@1"));
allowing(index).lookupIdByResourceId("https://somesite/path?p1=a&p2=b");
will(returnValue("@22"));
allowing(index).lookupIdByResourceId("_:node1234");
will(returnValue("@333"));
}});
String query = "";
assertEquals("", QueryController.encodeResources(index, query));
query = "not a resource";
assertEquals("not a resource", QueryController.encodeResources(index, query));
query = "type:not_a_resource";
assertEquals("type:not_a_resource", QueryController.encodeResources(index, query));
query = "http://schema.org/Blog";
assertEquals("http://schema.org/Blog", QueryController.encodeResources(index, query));
query = "type:{https://somesite/path?p1=a&p2=b}";
assertEquals("type:@22", QueryController.encodeResources(index, query));
query = "type:{_:node1234}";
assertEquals("type:@333", QueryController.encodeResources(index, query));
query = "type:{http://schema.org/Blog} {_:node1234}";
assertEquals("type:@1 @333", QueryController.encodeResources(index, query));
}
}