added integration test for JerseyUserClientHandler

This commit is contained in:
Sebastian Sdorra
2011-05-13 18:40:19 +02:00
parent 7eeb476748
commit 8f52e2db5e
6 changed files with 192 additions and 26 deletions

View File

@@ -123,7 +123,15 @@ public abstract class AbstractClientHandler<T extends ModelObject>
{
response = resource.post(ClientResponse.class, item);
ClientUtil.checkResponse(response, 201);
postCreate(response, item);
String url = response.getHeaders().get("Location").get(0);
AssertUtil.assertIsNotEmpty(url);
T newItem = getItemByUrl(url);
AssertUtil.assertIsNotNull(newItem);
postCreate(response, item, newItem);
}
finally
{
@@ -250,8 +258,9 @@ public abstract class AbstractClientHandler<T extends ModelObject>
*
* @param response
* @param item
* @param newItem
*/
protected void postCreate(ClientResponse response, T item) {}
protected void postCreate(ClientResponse response, T item, T newItem) {}
/**
* Method description
@@ -311,4 +320,6 @@ public abstract class AbstractClientHandler<T extends ModelObject>
/** Field description */
private Class<T> itemClass;
;
}

View File

@@ -39,6 +39,7 @@ import sonia.scm.group.Group;
//~--- JDK imports ------------------------------------------------------------
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.GenericType;
import java.util.List;
@@ -77,6 +78,20 @@ public class JerseyGroupClientHandler extends AbstractClientHandler<Group>
;
}
/**
* Method description
*
*
* @param response
* @param item
* @param newItem
*/
@Override
protected void postCreate(ClientResponse response, Group item, Group newItem)
{
newItem.copyProperties(item);
}
//~--- get methods ----------------------------------------------------------
/**

View File

@@ -92,7 +92,8 @@ public class JerseyRepositoryClientHandler
@Override
protected GenericType<List<Repository>> createGenericListType()
{
return new GenericType<List<Repository>>() {};
return new GenericType<List<Repository>>() {}
;
}
/**
@@ -101,17 +102,12 @@ public class JerseyRepositoryClientHandler
*
* @param response
* @param repository
* @param newRepository
*/
@Override
protected void postCreate(ClientResponse response, Repository repository)
protected void postCreate(ClientResponse response, Repository repository,
Repository newRepository)
{
String url = response.getHeaders().get("Location").get(0);
AssertUtil.assertIsNotEmpty(url);
Repository newRepository = getItemByUrl(url);
AssertUtil.assertIsNotNull(newRepository);
newRepository.copyProperties(repository);
// copyProperties does not copy the repository id

View File

@@ -39,6 +39,7 @@ import sonia.scm.user.User;
//~--- JDK imports ------------------------------------------------------------
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.GenericType;
import java.util.List;
@@ -77,6 +78,20 @@ public class JerseyUserClientHandler extends AbstractClientHandler<User>
;
}
/**
* Method description
*
*
* @param response
* @param item
* @param newItem
*/
@Override
protected void postCreate(ClientResponse response, User item, User newItem)
{
newItem.copyProperties(item);
}
//~--- get methods ----------------------------------------------------------
/**