package edu.lmu.cs.headmaster.ws.resource; import java.util.List; import org.junit.Assert; import org.junit.Test; import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.GenericType; import edu.lmu.cs.headmaster.ws.resource.AbstractResource; /** * Tests the term web resource. */ public class TermResourceTest extends ResourceTest { @Test public void testGetMatchingCollegesOrSchoolsNoQuery() { ClientResponse clientResponse = wr.path("terms/colleges-or-schools") .get(ClientResponse.class); // We expect error 400, QUERY_REQUIRED. Assert.assertEquals(400, clientResponse.getStatus()); Assert.assertEquals( "400 " + AbstractResource.QUERY_REQUIRED, clientResponse.getEntity(String.class) ); } @Test public void testGetMatchingDegreesNoQuery() { ClientResponse clientResponse = wr.path("terms/degrees") .get(ClientResponse.class); // We expect error 400, QUERY_REQUIRED. Assert.assertEquals(400, clientResponse.getStatus()); Assert.assertEquals( "400 " + AbstractResource.QUERY_REQUIRED, clientResponse.getEntity(String.class) ); } @Test public void testGetMatchingDisciplinesNoQuery() { ClientResponse clientResponse = wr.path("terms/disciplines") .get(ClientResponse.class); // We expect error 400, QUERY_REQUIRED. Assert.assertEquals(400, clientResponse.getStatus()); Assert.assertEquals( "400 " + AbstractResource.QUERY_REQUIRED, clientResponse.getEntity(String.class) ); } @Test public void testGetMatchingCollegesOrSchools() { // "en" should match both science and engineering. List<String> results = wr.path("terms/colleges-or-schools") .queryParam("q", "en") .get(new GenericType<List<String>>() {}); Assert.assertEquals(2, results.size()); Assert.assertEquals("Engineering", results.get(0)); Assert.assertEquals("Science", results.get(1)); // "sc" should match only science. results = wr.path("terms/colleges-or-schools") .queryParam("q", "sc") .get(new GenericType<List<String>>() {}); Assert.assertEquals(1, results.size()); Assert.assertEquals("Science", results.get(0)); // "eer" should match only engineering. results = wr.path("terms/colleges-or-schools") .queryParam("q", "eer") .get(new GenericType<List<String>>() {}); Assert.assertEquals(1, results.size()); Assert.assertEquals("Engineering", results.get(0)); // "zatoichi" should match nothing. results = wr.path("terms/colleges-or-schools") .queryParam("q", "zatoichi") .get(new GenericType<List<String>>() {}); Assert.assertEquals(0, results.size()); } @Test public void testGetMatchingDegrees() { // "b" should match both BA and BS. List<String> results = wr.path("terms/degrees") .queryParam("q", "b") .get(new GenericType<List<String>>() {}); Assert.assertEquals(2, results.size()); Assert.assertEquals("BA", results.get(0)); Assert.assertEquals("BS", results.get(1)); // "s" should match only BS. results = wr.path("terms/degrees") .queryParam("q", "s") .get(new GenericType<List<String>>() {}); Assert.assertEquals(1, results.size()); Assert.assertEquals("BS", results.get(0)); // "a" should match only BA. results = wr.path("terms/degrees") .queryParam("q", "a") .get(new GenericType<List<String>>() {}); Assert.assertEquals(1, results.size()); Assert.assertEquals("BA", results.get(0)); // "bazinga" should match nothing. results = wr.path("terms/degrees") .queryParam("q", "bazinga") .get(new GenericType<List<String>>() {}); Assert.assertEquals(0, results.size()); } @Test public void testGetMatchingDisciplines() { // "ic" should match both Mathematics and Music. List<String> results = wr.path("terms/disciplines") .queryParam("q", "ic") .get(new GenericType<List<String>>() {}); Assert.assertEquals(2, results.size()); Assert.assertEquals("Mathematics", results.get(0)); Assert.assertEquals("Music", results.get(1)); // "comp" should match only Computer Science. results = wr.path("terms/disciplines") .queryParam("q", "comp") .get(new GenericType<List<String>>() {}); Assert.assertEquals(1, results.size()); Assert.assertEquals("Computer Science", results.get(0)); // "us" should match only Music. results = wr.path("terms/disciplines") .queryParam("q", "us") .get(new GenericType<List<String>>() {}); Assert.assertEquals(1, results.size()); Assert.assertEquals("Music", results.get(0)); // "cucaracha" should match nothing. results = wr.path("terms/disciplines") .queryParam("q", "cucaracha") .get(new GenericType<List<String>>() {}); Assert.assertEquals(0, results.size()); } }