Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Commit

Permalink
Adapt Project raw rest test to Arquillian.
Browse files Browse the repository at this point in the history
  • Loading branch information
Carlos Munoz committed Apr 29, 2013
1 parent b9dac2e commit 12d01b7
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 53 deletions.
Expand Up @@ -20,68 +20,77 @@
*/
package org.zanata.rest.service.raw;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.not;

import javax.ws.rs.core.HttpHeaders;

import org.dbunit.operation.DatabaseOperation;
import org.jboss.seam.mock.EnhancedMockHttpServletRequest;
import org.jboss.seam.mock.EnhancedMockHttpServletResponse;
import org.jboss.seam.mock.ResourceRequestEnvironment.Method;
import org.jboss.seam.mock.ResourceRequestEnvironment.ResourceRequest;
import org.testng.annotations.Test;
import org.zanata.ZanataRawRestTest;
import org.jboss.arquillian.container.test.api.RunAsClient;
import org.jboss.resteasy.client.ClientRequest;
import org.jboss.resteasy.client.ClientResponse;
import org.junit.Test;
import org.zanata.RawRestTest;
import org.zanata.common.EntityStatus;
import org.zanata.common.ProjectType;
import org.zanata.rest.MediaTypes;
import org.zanata.rest.ResourceRequest;
import org.zanata.rest.dto.Project;
import org.zanata.rest.dto.ProjectIteration;

@Test(groups = {"seam-tests"})
public class ProjectRestTest extends ZanataRawRestTest
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.not;
import static org.zanata.util.RawRestTestUtils.assertHeaderPresent;
import static org.zanata.util.RawRestTestUtils.assertJaxbUnmarshal;
import static org.zanata.util.RawRestTestUtils.assertJsonUnmarshal;
import static org.zanata.util.RawRestTestUtils.jaxbMarhsal;
import static org.zanata.util.RawRestTestUtils.jaxbUnmarshal;
import static org.zanata.util.RawRestTestUtils.jsonMarshal;
import static org.zanata.util.RawRestTestUtils.jsonUnmarshal;

public class ProjectRawRestITCase extends RawRestTest
{

@Override
protected void prepareDBUnitOperations()
{
beforeTestOperations.add(new DataSetOperation("org/zanata/test/model/AccountData.dbunit.xml", DatabaseOperation.CLEAN_INSERT));
beforeTestOperations.add(new DataSetOperation("org/zanata/test/model/ProjectsData.dbunit.xml", DatabaseOperation.CLEAN_INSERT));
}

@Test
@RunAsClient
public void head() throws Exception
{
new ResourceRequest(unauthorizedEnvironment, Method.HEAD, "/restv1/projects/p/sample-project")
new ResourceRequest(getDeployedUrl("/projects/p/sample-project"), "GET")
{
@Override
protected void prepareRequest(EnhancedMockHttpServletRequest request)
protected void prepareRequest(ClientRequest request)
{
}

@Override
protected void onResponse(EnhancedMockHttpServletResponse response)
protected void onResponse(ClientResponse response)
{
assertThat(response.getStatus(), is(200)); // Ok
assertHeaderPresent(response, HttpHeaders.ETAG);
}
}.run();
}

@Test
@Test
@RunAsClient
public void getXml() throws Exception
{
new ResourceRequest(unauthorizedEnvironment, Method.GET, "/restv1/projects/p/sample-project")
new ResourceRequest(getDeployedUrl("/projects/p/sample-project"), "GET")
{
@Override
protected void prepareRequest(EnhancedMockHttpServletRequest request)
protected void prepareRequest(ClientRequest request)
{
request.addHeader(HttpHeaders.ACCEPT, MediaTypes.APPLICATION_ZANATA_PROJECT_XML);
request.header(HttpHeaders.ACCEPT, MediaTypes.APPLICATION_ZANATA_PROJECT_XML);
}

@Override
protected void onResponse(EnhancedMockHttpServletResponse response)
protected void onResponse(ClientResponse response)
{
assertThat(response.getStatus(), is(200)); // Ok
assertJaxbUnmarshal(response, Project.class);
Expand All @@ -107,19 +116,20 @@ protected void onResponse(EnhancedMockHttpServletResponse response)
}.run();
}

@Test
@Test
@RunAsClient
public void getJson() throws Exception
{
new ResourceRequest(unauthorizedEnvironment, Method.GET, "/restv1/projects/p/sample-project")
new ResourceRequest(getDeployedUrl("/projects/p/sample-project"), "GET")
{
@Override
protected void prepareRequest(EnhancedMockHttpServletRequest request)
protected void prepareRequest(ClientRequest request)
{
request.addHeader(HttpHeaders.ACCEPT, MediaTypes.APPLICATION_ZANATA_PROJECT_JSON);
request.header(HttpHeaders.ACCEPT, MediaTypes.APPLICATION_ZANATA_PROJECT_JSON);
}

@Override
protected void onResponse(EnhancedMockHttpServletResponse response)
protected void onResponse(ClientResponse response)
{
assertThat(response.getStatus(), is(200)); // Ok
assertJsonUnmarshal(response, Project.class);
Expand All @@ -146,95 +156,97 @@ protected void onResponse(EnhancedMockHttpServletResponse response)
}

@Test
@RunAsClient
public void putXml() throws Exception
{
final Project project = new Project("test-project", "Test Project", ProjectType.Gettext.toString(), "This is a Test project");
project.setStatus(EntityStatus.ACTIVE);
project.getIterations(true).add( new ProjectIteration("test-1.0") );
project.getIterations(true).add( new ProjectIteration("test-2.0") );

new ResourceRequest(sharedEnvironment, Method.PUT, "/restv1/projects/p/test-project")
new ResourceRequest(getDeployedUrl("/projects/p/test-project"), "PUT", getAuthorizedEnvironment())
{
@Override
protected void prepareRequest(EnhancedMockHttpServletRequest request)
protected void prepareRequest(ClientRequest request)
{
request.setContentType(MediaTypes.APPLICATION_ZANATA_PROJECT_XML);
request.setContent( jaxbMarhsal(project).getBytes() );
request.body(MediaTypes.APPLICATION_ZANATA_PROJECT_XML, jaxbMarhsal(project).getBytes());
}

@Override
protected void onResponse(EnhancedMockHttpServletResponse response)
protected void onResponse(ClientResponse response)
{
assertThat(response.getStatus(), is(201)); // Created
}
}.run();
}

@Test
@RunAsClient
public void putJson() throws Exception
{
final Project project = new Project("test-project", "Test Project", ProjectType.Gettext.toString(), "This is a Test project");
project.setStatus(EntityStatus.ACTIVE);
project.getIterations(true).add( new ProjectIteration("test-1.0") );
project.getIterations(true).add( new ProjectIteration("test-2.0") );

new ResourceRequest(sharedEnvironment, Method.PUT, "/restv1/projects/p/test-project-json")
new ResourceRequest(getDeployedUrl("/projects/p/test-project-json"), "PUT", getAuthorizedEnvironment())
{
@Override
protected void prepareRequest(EnhancedMockHttpServletRequest request)
protected void prepareRequest(ClientRequest request)
{
request.setContentType(MediaTypes.APPLICATION_ZANATA_PROJECT_JSON);
request.setContent( jsonMarshal(project).getBytes() );
request.body(MediaTypes.APPLICATION_ZANATA_PROJECT_JSON, jsonMarshal(project).getBytes());
}

@Override
protected void onResponse(EnhancedMockHttpServletResponse response)
protected void onResponse(ClientResponse response)
{
assertThat(response.getStatus(), is(201)); // Created
}
}.run();
}

@Test
@Test
@RunAsClient
public void getAllXml() throws Exception
{
new ResourceRequest(unauthorizedEnvironment, Method.GET, "/restv1/projects")
new ResourceRequest(getDeployedUrl("/projects"), "GET")
{
@Override
protected void prepareRequest(EnhancedMockHttpServletRequest request)
protected void prepareRequest(ClientRequest request)
{
request.addHeader(HttpHeaders.ACCEPT, MediaTypes.APPLICATION_ZANATA_PROJECTS_XML);
request.header(HttpHeaders.ACCEPT, MediaTypes.APPLICATION_ZANATA_PROJECTS_XML);
}

@Override
protected void onResponse(EnhancedMockHttpServletResponse response)
protected void onResponse(ClientResponse response)
{
assertThat(response.getStatus(), is(200)); // Ok
assertThat(response.getContentAsString(), containsString("sample-project"));
assertThat(response.getContentAsString(), containsString("retired-project"));
assertThat(response.getContentAsString(), not(containsString("obsolete-project")));
assertThat((String)response.getEntity(String.class), containsString("sample-project"));
assertThat((String)response.getEntity(String.class), containsString("retired-project"));
assertThat((String)response.getEntity(String.class), not(containsString("obsolete-project")));
}
}.run();
}

@Test
@Test
@RunAsClient
public void getAllJson() throws Exception
{
new ResourceRequest(unauthorizedEnvironment, Method.GET, "/restv1/projects")
new ResourceRequest(getDeployedUrl("/projects"), "GET")
{
@Override
protected void prepareRequest(EnhancedMockHttpServletRequest request)
protected void prepareRequest(ClientRequest request)
{
request.addHeader(HttpHeaders.ACCEPT, MediaTypes.APPLICATION_ZANATA_PROJECTS_JSON);
request.header(HttpHeaders.ACCEPT, MediaTypes.APPLICATION_ZANATA_PROJECTS_JSON);
}

@Override
protected void onResponse(EnhancedMockHttpServletResponse response)
protected void onResponse(ClientResponse response)
{
assertThat(response.getStatus(), is(200)); // Ok
assertThat(response.getContentAsString(), containsString("sample-project"));
assertThat(response.getContentAsString(), containsString("retired-project"));
assertThat(response.getContentAsString(), not(containsString("obsolete-project")));
assertThat((String)response.getEntity(String.class), containsString("sample-project"));
assertThat((String)response.getEntity(String.class), containsString("retired-project"));
assertThat((String)response.getEntity(String.class), not(containsString("obsolete-project")));
}
}.run();
}
Expand Down
2 changes: 1 addition & 1 deletion zanata-war/src/test/resources/AllIntegrationTests.tng.xml
Expand Up @@ -36,7 +36,7 @@
<class name="org.zanata.rest.service.raw.AccountRawRestITCase"/>
<class name="org.zanata.rest.service.raw.GlossaryRawRestITCase"/>
<class name="org.zanata.rest.service.raw.ProjectIterationRestTest"/>
<class name="org.zanata.rest.service.raw.ProjectRestTest"/>
<class name="org.zanata.rest.service.raw.ProjectRawRestITCase"/>
<class name="org.zanata.rest.service.raw.FileRawRestITCase"/>
<class name="org.zanata.rest.service.raw.VersionRawRestITCase"/>
<class name="org.zanata.rest.service.raw.StatisticsRestTest"/>
Expand Down

0 comments on commit 12d01b7

Please sign in to comment.