001/* 002 * Copyright 2015 DuraSpace, Inc. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package org.fcrepo.integration; 017 018 019import com.hp.hpl.jena.query.ResultSet; 020import org.glassfish.grizzly.http.util.HttpStatus; 021import org.glassfish.jersey.test.JerseyTest; 022import org.junit.Test; 023 024import javax.ws.rs.POST; 025import javax.ws.rs.Path; 026import javax.ws.rs.Produces; 027import javax.ws.rs.client.Entity; 028import javax.ws.rs.client.WebTarget; 029import javax.ws.rs.core.Application; 030import javax.ws.rs.core.Response; 031 032import static org.apache.jena.riot.WebContent.contentTypeNTriples; 033import static org.apache.jena.riot.WebContent.contentTypeRDFXML; 034import static org.apache.jena.riot.WebContent.contentTypeResultsBIO; 035import static org.apache.jena.riot.WebContent.contentTypeResultsJSON; 036import static org.apache.jena.riot.WebContent.contentTypeResultsXML; 037import static org.apache.jena.riot.WebContent.contentTypeTextCSV; 038import static org.apache.jena.riot.WebContent.contentTypeTextTSV; 039import static org.apache.jena.riot.WebContent.contentTypeTurtle; 040import static org.junit.Assert.assertEquals; 041import static org.mockito.Mockito.mock; 042 043/** 044 * Tests custom MessageBodyWriter 045 * @author osmandin 046 */ 047public class ResultSetStreamingOutputIT extends JerseyTest { 048 049 @Test 050 public void testContentType() { 051 final WebTarget target = target("test/point"); 052 053 Response response = target.request(contentTypeTextCSV).post(Entity.text("test") 054 , Response.class); 055 assertEquals(response.getStatus(), HttpStatus.OK_200.getStatusCode()); 056 057 response = target.request(contentTypeTextTSV).post(Entity.text("test"), Response.class); 058 assertEquals(response.getStatus(), HttpStatus.OK_200.getStatusCode()); 059 060 response = target.request(contentTypeRDFXML).post(Entity.text("test"), Response.class); 061 assertEquals(response.getStatus(), HttpStatus.OK_200.getStatusCode()); 062 063 response = target.request(contentTypeTurtle).post(Entity.text("test"), Response.class); 064 assertEquals(response.getStatus(), HttpStatus.OK_200.getStatusCode()); 065 066 response = target.request(contentTypeNTriples).post(Entity.text("test"), Response.class); 067 assertEquals(response.getStatus(), HttpStatus.OK_200.getStatusCode()); 068 069 response = target.request(contentTypeResultsXML).post(Entity.text("test"), Response.class); 070 assertEquals(response.getStatus(), HttpStatus.OK_200.getStatusCode()); 071 072 response = target.request(contentTypeResultsJSON).post(Entity.text("test"), Response.class); 073 assertEquals(response.getStatus(), HttpStatus.OK_200.getStatusCode()); 074 075 response = target.request(contentTypeResultsBIO).post(Entity.text("test"), Response.class); 076 assertEquals(response.getStatus(), HttpStatus.OK_200.getStatusCode()); 077 078 response = target.request("gamma-rays").post(Entity.text("self-test"), Response.class); 079 assertEquals(response.getStatus(), HttpStatus.NOT_ACCEPTABLE_406.getStatusCode()); 080 } 081 082 @Override 083 protected Application configure() { 084 return new TestResourceConfig() 085 .property("contextConfigLocation", 086 "classpath:spring-test/test-config.xml"); 087 } 088 089 @Path("test") 090 public static class TestHttpResource { 091 092 @POST 093 @Path("/point") 094 @Produces({contentTypeTextTSV, contentTypeTextCSV, contentTypeResultsJSON, 095 contentTypeResultsXML, contentTypeResultsBIO, contentTypeTurtle, 096 contentTypeNTriples, contentTypeRDFXML}) 097 public ResultSet content() { 098 return mock(ResultSet.class); 099 } 100 101 } 102}