diff --git a/scm-clients/scm-client-impl/src/main/java/sonia/scm/client/JerseyClientSession.java b/scm-clients/scm-client-impl/src/main/java/sonia/scm/client/JerseyClientSession.java index 899407b434..be362612e4 100644 --- a/scm-clients/scm-client-impl/src/main/java/sonia/scm/client/JerseyClientSession.java +++ b/scm-clients/scm-client-impl/src/main/java/sonia/scm/client/JerseyClientSession.java @@ -46,8 +46,6 @@ import sonia.scm.user.User; import com.sun.jersey.api.client.Client; -import java.io.IOException; - /** * * @author Sebastian Sdorra diff --git a/scm-clients/scm-client-impl/src/main/java/sonia/scm/client/JerseyRepositoryClientHandler.java b/scm-clients/scm-client-impl/src/main/java/sonia/scm/client/JerseyRepositoryClientHandler.java index 696b46ae68..7a06fb4bb5 100644 --- a/scm-clients/scm-client-impl/src/main/java/sonia/scm/client/JerseyRepositoryClientHandler.java +++ b/scm-clients/scm-client-impl/src/main/java/sonia/scm/client/JerseyRepositoryClientHandler.java @@ -166,7 +166,7 @@ public class JerseyRepositoryClientHandler implements RepositoryClientHandler try { - response = resource.post(ClientResponse.class, repository); + response = resource.put(ClientResponse.class, repository); ClientUtil.checkResponse(response, 204); } finally diff --git a/scm-clients/scm-client-impl/src/test/java/sonia/scm/client/it/JerseyClientRepositoryClientHandlerITCase.java b/scm-clients/scm-client-impl/src/test/java/sonia/scm/client/it/JerseyClientRepositoryClientHandlerITCase.java index 24c5f0dff3..d42bf4a80d 100644 --- a/scm-clients/scm-client-impl/src/test/java/sonia/scm/client/it/JerseyClientRepositoryClientHandlerITCase.java +++ b/scm-clients/scm-client-impl/src/test/java/sonia/scm/client/it/JerseyClientRepositoryClientHandlerITCase.java @@ -177,4 +177,69 @@ public class JerseyClientRepositoryClientHandlerITCase session.close(); setAnonymousAccess(false); } + + /** + * Method description + * + */ + @Test + public void testEnabledModifyAnonymous() + { + setAnonymousAccess(true); + + JerseyClientSession session = createAdminSession(); + Repository rateotu = + RepositoryTestData.createRestaurantAtTheEndOfTheUniverse(REPOSITORY_TYPE); + + session.getRepositoryHandler().create(rateotu); + session.close(); + session = createAnonymousSession(); + rateotu.setDescription("Modify Test"); + + boolean notfound = false; + + try + { + session.getRepositoryHandler().modify(rateotu); + } + catch (ScmForbiddenException ex) + { + notfound = true; + } + + setAnonymousAccess(false); + session.close(); + session = createAdminSession(); + session.getRepositoryHandler().delete(rateotu); + session.close(); + assertTrue(notfound); + } + + /** + * Method description + * + */ + @Test + public void testModify() + { + long start = System.currentTimeMillis(); + JerseyClientSession session = createAdminSession(); + Repository rateotu = + RepositoryTestData.createRestaurantAtTheEndOfTheUniverse(REPOSITORY_TYPE); + RepositoryClientHandler handler = session.getRepositoryHandler(); + + handler.create(rateotu); + assertNotNull(rateotu.getId()); + assertNotNull(rateotu.getCreationDate()); + rateotu.setDescription("Modify Test"); + handler.modify(rateotu); + rateotu = handler.get(rateotu.getId()); + assertNotNull(rateotu); + assertEquals(rateotu.getDescription(), "Modify Test"); + assertNotNull(rateotu.getLastModified()); + assertTrue(rateotu.getLastModified() > start); + assertTrue(rateotu.getLastModified() < System.currentTimeMillis()); + handler.delete(rateotu); + session.close(); + } }