You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by jb...@apache.org on 2013/01/08 12:24:02 UTC
svn commit: r1430219 - in /syncope/trunk:
client/src/main/java/org/apache/syncope/client/to/
client/src/main/java/org/apache/syncope/services/
client/src/main/java/org/apache/syncope/services/proxy/
core/src/main/java/org/apache/syncope/core/rest/contr...
Author: jbernhardt
Date: Tue Jan 8 11:24:02 2013
New Revision: 1430219
URL: http://svn.apache.org/viewvc?rev=1430219&view=rev
Log:
[SYNCOPE-259]
Introduces Schema Service.
Added:
syncope/trunk/client/src/main/java/org/apache/syncope/client/to/AbstractSchemaTO.java
syncope/trunk/client/src/main/java/org/apache/syncope/services/SchemaService.java
syncope/trunk/client/src/main/java/org/apache/syncope/services/proxy/SchemaServiceProxy.java
Modified:
syncope/trunk/client/src/main/java/org/apache/syncope/client/to/DerivedSchemaTO.java
syncope/trunk/client/src/main/java/org/apache/syncope/client/to/SchemaTO.java
syncope/trunk/client/src/main/java/org/apache/syncope/client/to/VirtualSchemaTO.java
syncope/trunk/client/src/main/java/org/apache/syncope/services/proxy/TaskServiceProxy.java
syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/SchemaController.java
syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/AbstractTest.java
syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/DerivedSchemaTestITCase.java
syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/SchemaTestITCase.java
syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/VirtualSchemaTestITCase.java
syncope/trunk/core/src/test/resources/restClientContext.xml
Added: syncope/trunk/client/src/main/java/org/apache/syncope/client/to/AbstractSchemaTO.java
URL: http://svn.apache.org/viewvc/syncope/trunk/client/src/main/java/org/apache/syncope/client/to/AbstractSchemaTO.java?rev=1430219&view=auto
==============================================================================
--- syncope/trunk/client/src/main/java/org/apache/syncope/client/to/AbstractSchemaTO.java (added)
+++ syncope/trunk/client/src/main/java/org/apache/syncope/client/to/AbstractSchemaTO.java Tue Jan 8 11:24:02 2013
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.client.to;
+
+import org.apache.syncope.client.AbstractBaseBean;
+
+public abstract class AbstractSchemaTO extends AbstractBaseBean {
+
+ private static final long serialVersionUID = 4088388951694301759L;
+
+ private String name;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+}
Modified: syncope/trunk/client/src/main/java/org/apache/syncope/client/to/DerivedSchemaTO.java
URL: http://svn.apache.org/viewvc/syncope/trunk/client/src/main/java/org/apache/syncope/client/to/DerivedSchemaTO.java?rev=1430219&r1=1430218&r2=1430219&view=diff
==============================================================================
--- syncope/trunk/client/src/main/java/org/apache/syncope/client/to/DerivedSchemaTO.java (original)
+++ syncope/trunk/client/src/main/java/org/apache/syncope/client/to/DerivedSchemaTO.java Tue Jan 8 11:24:02 2013
@@ -18,22 +18,13 @@
*/
package org.apache.syncope.client.to;
-import org.apache.syncope.client.AbstractBaseBean;
-public class DerivedSchemaTO extends AbstractBaseBean {
+public class DerivedSchemaTO extends AbstractSchemaTO {
- private String name;
+ private static final long serialVersionUID = -6747399803792103108L;
private String expression;
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
public String getExpression() {
return expression;
}
Modified: syncope/trunk/client/src/main/java/org/apache/syncope/client/to/SchemaTO.java
URL: http://svn.apache.org/viewvc/syncope/trunk/client/src/main/java/org/apache/syncope/client/to/SchemaTO.java?rev=1430219&r1=1430218&r2=1430219&view=diff
==============================================================================
--- syncope/trunk/client/src/main/java/org/apache/syncope/client/to/SchemaTO.java (original)
+++ syncope/trunk/client/src/main/java/org/apache/syncope/client/to/SchemaTO.java Tue Jan 8 11:24:02 2013
@@ -19,15 +19,12 @@
package org.apache.syncope.client.to;
import org.apache.commons.lang.StringUtils;
-import org.apache.syncope.client.AbstractBaseBean;
import org.apache.syncope.types.SchemaType;
-public class SchemaTO extends AbstractBaseBean {
+public class SchemaTO extends AbstractSchemaTO {
private static final long serialVersionUID = -8133983392476990308L;
- private String name;
-
private SchemaType type;
private String mandatoryCondition;
@@ -108,14 +105,6 @@ public class SchemaTO extends AbstractBa
this.readonly = readonly;
}
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
public SchemaType getType() {
return type;
}
Modified: syncope/trunk/client/src/main/java/org/apache/syncope/client/to/VirtualSchemaTO.java
URL: http://svn.apache.org/viewvc/syncope/trunk/client/src/main/java/org/apache/syncope/client/to/VirtualSchemaTO.java?rev=1430219&r1=1430218&r2=1430219&view=diff
==============================================================================
--- syncope/trunk/client/src/main/java/org/apache/syncope/client/to/VirtualSchemaTO.java (original)
+++ syncope/trunk/client/src/main/java/org/apache/syncope/client/to/VirtualSchemaTO.java Tue Jan 8 11:24:02 2013
@@ -18,17 +18,8 @@
*/
package org.apache.syncope.client.to;
-import org.apache.syncope.client.AbstractBaseBean;
+public class VirtualSchemaTO extends AbstractSchemaTO {
-public class VirtualSchemaTO extends AbstractBaseBean {
+ private static final long serialVersionUID = -8198557479659701343L;
- private String name;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
}
Added: syncope/trunk/client/src/main/java/org/apache/syncope/services/SchemaService.java
URL: http://svn.apache.org/viewvc/syncope/trunk/client/src/main/java/org/apache/syncope/services/SchemaService.java?rev=1430219&view=auto
==============================================================================
--- syncope/trunk/client/src/main/java/org/apache/syncope/services/SchemaService.java (added)
+++ syncope/trunk/client/src/main/java/org/apache/syncope/services/SchemaService.java Tue Jan 8 11:24:02 2013
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.services;
+
+import java.util.List;
+
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+
+import org.apache.syncope.client.to.AbstractSchemaTO;
+
+@Path("schemas")
+public interface SchemaService {
+
+ @POST
+ // @RequestMapping(method = RequestMethod.POST, value = "/{kind}/create")
+ <T extends AbstractSchemaTO> T create(@PathParam("kind") final String kind, final T schemaTO);
+
+ @DELETE
+ @Path("{kind}/{schema}")
+ // @RequestMapping(method = RequestMethod.GET, value = "/{kind}/delete/{schema}")
+ <T extends AbstractSchemaTO> T delete(@PathParam("kind") final String kind,
+ @PathParam("schema") final String schemaName, final Class<T> type);
+
+ @GET
+ @Path("{kind}")
+ // @RequestMapping(method = RequestMethod.GET, value = "/{kind}/list")
+ <T extends AbstractSchemaTO> List<T> list(@PathParam("kind") final String kind, final Class<T[]> type);
+
+ @GET
+ @Path("{kind}/{schema}")
+ // @RequestMapping(method = RequestMethod.GET, value = "/{kind}/read/{schema}")
+ <T extends AbstractSchemaTO> T read(@PathParam("kind") final String kind,
+ @PathParam("schema") final String schemaName, final Class<T> type);
+
+ @PUT
+ @Path("{kind}/{schema}")
+ // @RequestMapping(method = RequestMethod.POST, value = "/{kind}/update")
+ <T extends AbstractSchemaTO> T update(@PathParam("kind") final String kind,
+ @PathParam("schema") final String schemaName, final T schemaTO);
+
+}
\ No newline at end of file
Added: syncope/trunk/client/src/main/java/org/apache/syncope/services/proxy/SchemaServiceProxy.java
URL: http://svn.apache.org/viewvc/syncope/trunk/client/src/main/java/org/apache/syncope/services/proxy/SchemaServiceProxy.java?rev=1430219&view=auto
==============================================================================
--- syncope/trunk/client/src/main/java/org/apache/syncope/services/proxy/SchemaServiceProxy.java (added)
+++ syncope/trunk/client/src/main/java/org/apache/syncope/services/proxy/SchemaServiceProxy.java Tue Jan 8 11:24:02 2013
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.services.proxy;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.syncope.client.to.AbstractSchemaTO;
+import org.apache.syncope.client.to.DerivedSchemaTO;
+import org.apache.syncope.client.to.SchemaTO;
+import org.apache.syncope.client.to.VirtualSchemaTO;
+import org.apache.syncope.services.SchemaService;
+import org.springframework.web.client.RestTemplate;
+
+public class SchemaServiceProxy extends SpringServiceProxy implements SchemaService {
+
+ public SchemaServiceProxy(String baseUrl, RestTemplate restTemplate) {
+ super(baseUrl, restTemplate);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public <T extends AbstractSchemaTO> T create(String kind, T schemaTO) {
+ String schemaType = getSchemaType(schemaTO.getClass());
+
+ return (T) restTemplate.postForObject(BASE_URL + schemaType + "/{kind}/create", schemaTO,
+ schemaTO.getClass(), kind);
+ }
+
+ @Override
+ public <T extends AbstractSchemaTO> T delete(String kind, String schemaName, Class<T> type) {
+ String schemaType = getSchemaType(type);
+ return restTemplate.getForObject(BASE_URL + schemaType + "/{kind}/delete/{name}.json", type, kind,
+ schemaName);
+ }
+
+ @Override
+ public <T extends AbstractSchemaTO> List<T> list(String kind, Class<T[]> type) {
+ String schemaType = getSchemaTypeArray(type);
+ return Arrays.asList(restTemplate.getForObject(BASE_URL + schemaType + "/{kind}/list.json", type,
+ kind));
+ }
+
+ @Override
+ public <T extends AbstractSchemaTO> T read(String kind, String schemaName, Class<T> type) {
+ String schemaType = getSchemaType(type);
+ return restTemplate.getForObject(BASE_URL + schemaType + "/{kind}/read/{name}.json", type, kind,
+ schemaName);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public <T extends AbstractSchemaTO> T update(String kind, String schemaName, T schemaTO) {
+ String schemaType = getSchemaType(schemaTO.getClass());
+ return (T) restTemplate.postForObject(BASE_URL + schemaType + "/{kind}/update", schemaTO,
+ schemaTO.getClass(), kind);
+ }
+
+ private String getSchemaType(Class<? extends AbstractSchemaTO> type) {
+ return (type.isAssignableFrom(SchemaTO.class))
+ ? "schema"
+ : (type.isAssignableFrom(DerivedSchemaTO.class))
+ ? "derivedSchema"
+ : (type.isAssignableFrom(VirtualSchemaTO.class))
+ ? "virtualSchema"
+ : "";
+ }
+
+ private <T extends AbstractSchemaTO> String getSchemaTypeArray(Class<T[]> type) {
+ return (type.isAssignableFrom(SchemaTO[].class))
+ ? "schema"
+ : (type.isAssignableFrom(DerivedSchemaTO[].class))
+ ? "derivedSchema"
+ : (type.isAssignableFrom(VirtualSchemaTO[].class))
+ ? "virtualSchema"
+ : "";
+ }
+}
Modified: syncope/trunk/client/src/main/java/org/apache/syncope/services/proxy/TaskServiceProxy.java
URL: http://svn.apache.org/viewvc/syncope/trunk/client/src/main/java/org/apache/syncope/services/proxy/TaskServiceProxy.java?rev=1430219&r1=1430218&r2=1430219&view=diff
==============================================================================
--- syncope/trunk/client/src/main/java/org/apache/syncope/services/proxy/TaskServiceProxy.java (original)
+++ syncope/trunk/client/src/main/java/org/apache/syncope/services/proxy/TaskServiceProxy.java Tue Jan 8 11:24:02 2013
@@ -129,7 +129,6 @@ public class TaskServiceProxy extends Sp
? "sync"
: (taskTO instanceof SchedTaskTO)
? "sched"
-
: null;
if (path == null)
throw new IllegalArgumentException("Task can only be instance of SchedTaskTO or SyncTaskTO");
Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/SchemaController.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/SchemaController.java?rev=1430219&r1=1430218&r2=1430219&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/SchemaController.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/SchemaController.java Tue Jan 8 11:24:02 2013
@@ -20,7 +20,9 @@ package org.apache.syncope.core.rest.con
import java.util.ArrayList;
import java.util.List;
+
import javax.servlet.http.HttpServletResponse;
+
import org.apache.syncope.client.to.SchemaTO;
import org.apache.syncope.core.audit.AuditManager;
import org.apache.syncope.core.persistence.beans.AbstractSchema;
@@ -78,14 +80,14 @@ public class SchemaController extends Ab
if (schema == null) {
throw new NotFoundException("Schema '" + schemaName + "'");
}
-
+
SchemaTO schemaToDelete = schemaDataBinder.getSchemaTO(schema, getAttributableUtil(kind));
schemaDAO.delete(schemaName, getAttributableUtil(kind));
auditManager.audit(Category.schema, SchemaSubCategory.delete, Result.success,
"Successfully deleted schema: " + kind + "/" + schema.getName());
-
+
return schemaToDelete;
}
Modified: syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/AbstractTest.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/AbstractTest.java?rev=1430219&r1=1430218&r2=1430219&view=diff
==============================================================================
--- syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/AbstractTest.java (original)
+++ syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/AbstractTest.java Tue Jan 8 11:24:02 2013
@@ -34,6 +34,7 @@ import org.apache.syncope.services.proxy
import org.apache.syncope.services.proxy.ReportServiceProxy;
import org.apache.syncope.services.proxy.ResourceServiceProxy;
import org.apache.syncope.services.proxy.RoleServiceProxy;
+import org.apache.syncope.services.proxy.SchemaServiceProxy;
import org.apache.syncope.services.proxy.TaskServiceProxy;
import org.apache.syncope.services.proxy.UserServiceProxy;
import org.apache.syncope.services.proxy.WorkflowServiceProxy;
@@ -69,7 +70,7 @@ public abstract class AbstractTest {
*/
protected static final Logger LOG = LoggerFactory.getLogger(AbstractTest.class);
- protected static final String BASE_URL = "http://localhost:9080/syncope/rest/";
+ protected static final String BASE_URL = "http://localhost:9081/syncope/rest/";
public static final String ADMIN_UID = "admin";
@@ -102,6 +103,8 @@ public abstract class AbstractTest {
protected NotificationServiceProxy notificationService;
+ protected SchemaServiceProxy schemaService;
+
@Autowired
protected DataSource testDataSource;
@@ -132,5 +135,6 @@ public abstract class AbstractTest {
policyService = new PolicyServiceProxy(BASE_URL, restTemplate);
workflowService = new WorkflowServiceProxy(BASE_URL, restTemplate);
notificationService = new NotificationServiceProxy(BASE_URL, restTemplate);
+ schemaService = new SchemaServiceProxy(BASE_URL, restTemplate);
}
}
Modified: syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/DerivedSchemaTestITCase.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/DerivedSchemaTestITCase.java?rev=1430219&r1=1430218&r2=1430219&view=diff
==============================================================================
--- syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/DerivedSchemaTestITCase.java (original)
+++ syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/DerivedSchemaTestITCase.java Tue Jan 8 11:24:02 2013
@@ -32,6 +32,10 @@ import org.junit.runners.MethodSorters;
@FixMethodOrder(MethodSorters.JVM)
public class DerivedSchemaTestITCase extends AbstractTest {
+ private static final String ROLE = "role";
+ private static final String USER = "user";
+ private static final String MEMBERSHIP = "membership";
+
@Test
public void list() {
List<DerivedSchemaTO> derivedSchemas = Arrays.asList(restTemplate.getForObject(BASE_URL
@@ -44,8 +48,7 @@ public class DerivedSchemaTestITCase ext
@Test
public void read() {
- DerivedSchemaTO derivedSchemaTO = restTemplate.getForObject(BASE_URL + "derivedSchema/user/read/cn.json",
- DerivedSchemaTO.class);
+ DerivedSchemaTO derivedSchemaTO = schemaService.read(USER, "cn", DerivedSchemaTO.class);
assertNotNull(derivedSchemaTO);
}
@@ -55,30 +58,25 @@ public class DerivedSchemaTestITCase ext
schema.setName("derived");
schema.setExpression("derived_sx + '_' + derived_dx");
- DerivedSchemaTO actual = restTemplate.postForObject(BASE_URL + "derivedSchema/user/create.json", schema,
- DerivedSchemaTO.class);
+ DerivedSchemaTO actual = schemaService.create(USER, schema);
assertNotNull(actual);
- actual = restTemplate.getForObject(BASE_URL + "derivedSchema/user/read/" + actual.getName() + ".json",
- DerivedSchemaTO.class);
+ actual = schemaService.read(USER, actual.getName(), DerivedSchemaTO.class);
assertNotNull(actual);
assertEquals(actual.getExpression(), "derived_sx + '_' + derived_dx");
}
@Test
public void delete() {
- DerivedSchemaTO schema = restTemplate.getForObject(BASE_URL + "derivedSchema/role/read/rderiveddata.json",
- DerivedSchemaTO.class);
+ DerivedSchemaTO schema = schemaService.read(ROLE, "rderiveddata", DerivedSchemaTO.class);
assertNotNull(schema);
- DerivedSchemaTO schemaToDelete =
- restTemplate.getForObject(
- BASE_URL + "derivedSchema/role/delete/{schema}", DerivedSchemaTO.class, schema.getName());
+ DerivedSchemaTO schemaToDelete = schemaService.delete(ROLE, schema.getName(), DerivedSchemaTO.class);
assertNotNull(schemaToDelete);
Throwable t = null;
try {
- restTemplate.getForObject(BASE_URL + "derivedSchema/role/read/rderiveddata.json", DerivedSchemaTO.class);
+ schemaService.read(ROLE, "rderiveddata", DerivedSchemaTO.class);
} catch (SyncopeClientCompositeErrorException e) {
t = e;
assertNotNull(e.getException(SyncopeClientExceptionType.NotFound));
@@ -88,19 +86,16 @@ public class DerivedSchemaTestITCase ext
@Test
public void update() {
- DerivedSchemaTO schema = restTemplate.getForObject(
- BASE_URL + "derivedSchema/membership/read/mderiveddata.json", DerivedSchemaTO.class);
+ DerivedSchemaTO schema = schemaService.read(MEMBERSHIP, "mderiveddata", DerivedSchemaTO.class);
assertNotNull(schema);
assertEquals("mderived_sx + '-' + mderived_dx", schema.getExpression());
schema.setExpression("mderived_sx + '.' + mderived_dx");
- schema = restTemplate.postForObject(BASE_URL + "derivedSchema/membership/update.json", schema,
- DerivedSchemaTO.class);
+ schema = schemaService.update(MEMBERSHIP, schema.getName(), schema);
assertNotNull(schema);
- schema = restTemplate.getForObject(BASE_URL + "derivedSchema/membership/read/mderiveddata.json",
- DerivedSchemaTO.class);
+ schema = schemaService.read(MEMBERSHIP, "mderiveddata", DerivedSchemaTO.class);
assertNotNull(schema);
assertEquals("mderived_sx + '.' + mderived_dx", schema.getExpression());
}
Modified: syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/SchemaTestITCase.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/SchemaTestITCase.java?rev=1430219&r1=1430218&r2=1430219&view=diff
==============================================================================
--- syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/SchemaTestITCase.java (original)
+++ syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/SchemaTestITCase.java Tue Jan 8 11:24:02 2013
@@ -18,8 +18,15 @@
*/
package org.apache.syncope.core.rest;
-import java.util.Arrays;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
import java.util.List;
+
import org.apache.syncope.client.mod.UserMod;
import org.apache.syncope.client.to.MembershipTO;
import org.apache.syncope.client.to.SchemaTO;
@@ -30,12 +37,6 @@ import org.apache.syncope.client.validat
import org.apache.syncope.types.EntityViolationType;
import org.apache.syncope.types.SchemaType;
import org.apache.syncope.types.SyncopeClientExceptionType;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runners.MethodSorters;
@@ -45,6 +46,10 @@ import org.springframework.web.client.Ht
@FixMethodOrder(MethodSorters.JVM)
public class SchemaTestITCase extends AbstractTest {
+ private static final String ROLE = "role";
+ private static final String USER = "user";
+ private static final String MEMBERSHIP = "membership";
+
@Test
public void create() {
SchemaTO schemaTO = new SchemaTO();
@@ -52,10 +57,10 @@ public class SchemaTestITCase extends Ab
schemaTO.setMandatoryCondition("false");
schemaTO.setType(SchemaType.String);
- SchemaTO newSchemaTO = restTemplate.postForObject(BASE_URL + "schema/user/create", schemaTO, SchemaTO.class);
+ SchemaTO newSchemaTO = schemaService.create(USER, schemaTO);
assertEquals(schemaTO, newSchemaTO);
- newSchemaTO = restTemplate.postForObject(BASE_URL + "schema/membership/create", schemaTO, SchemaTO.class);
+ newSchemaTO = schemaService.create(MEMBERSHIP, schemaTO);
assertEquals(schemaTO, newSchemaTO);
}
@@ -66,14 +71,15 @@ public class SchemaTestITCase extends Ab
schemaTO.setType(SchemaType.String);
try {
- restTemplate.postForObject(BASE_URL + "schema/user/create", schemaTO, SchemaTO.class);
+ schemaService.create(USER, schemaTO);
fail("This should not be reacheable");
} catch (SyncopeClientCompositeErrorException scce) {
SyncopeClientException sce = scce.getException(SyncopeClientExceptionType.InvalidUSchema);
assertNotNull(sce.getElements());
assertEquals(1, sce.getElements().size());
- assertTrue(sce.getElements().iterator().next().contains(EntityViolationType.InvalidUSchema.name()));
+ assertTrue(sce.getElements().iterator().next()
+ .contains(EntityViolationType.InvalidUSchema.name()));
}
}
@@ -84,15 +90,15 @@ public class SchemaTestITCase extends Ab
schemaTO.setType(SchemaType.Enum);
try {
- restTemplate.postForObject(BASE_URL + "schema/role/create", schemaTO, SchemaTO.class);
+ schemaService.create(ROLE, schemaTO);
fail("This should not be reacheable");
} catch (SyncopeClientCompositeErrorException scce) {
SyncopeClientException sce = scce.getException(SyncopeClientExceptionType.InvalidRSchema);
assertNotNull(sce.getElements());
assertEquals(1, sce.getElements().size());
- assertTrue(sce.getElements().iterator().next().contains(
- EntityViolationType.InvalidSchemaTypeSpecification.name()));
+ assertTrue(sce.getElements().iterator().next()
+ .contains(EntityViolationType.InvalidSchemaTypeSpecification.name()));
}
}
@@ -103,26 +109,25 @@ public class SchemaTestITCase extends Ab
schemaTO.setType(SchemaType.Enum);
try {
- restTemplate.postForObject(BASE_URL + "schema/user/create", schemaTO, SchemaTO.class);
+ schemaService.create(USER, schemaTO);
fail("This should not be reacheable");
} catch (SyncopeClientCompositeErrorException scce) {
SyncopeClientException sce = scce.getException(SyncopeClientExceptionType.InvalidUSchema);
assertNotNull(sce.getElements());
assertEquals(1, sce.getElements().size());
- assertTrue(sce.getElements().iterator().next().contains(
- EntityViolationType.InvalidSchemaTypeSpecification.name()));
+ assertTrue(sce.getElements().iterator().next()
+ .contains(EntityViolationType.InvalidSchemaTypeSpecification.name()));
}
}
@Test
public void delete() {
- SchemaTO deletedSchema =
- restTemplate.getForObject(BASE_URL + "schema/user/delete/cool.json", SchemaTO.class);
+ SchemaTO deletedSchema = schemaService.delete(USER, "cool", SchemaTO.class);
assertNotNull(deletedSchema);
SchemaTO firstname = null;
try {
- firstname = restTemplate.getForObject(BASE_URL + "schema/user/read/cool.json", SchemaTO.class);
+ firstname = schemaService.read(USER, "cool", SchemaTO.class);
} catch (HttpClientErrorException e) {
assertEquals(HttpStatus.NOT_FOUND, e.getStatusCode());
}
@@ -131,22 +136,19 @@ public class SchemaTestITCase extends Ab
@Test
public void list() {
- List<SchemaTO> userSchemas = Arrays.asList(restTemplate.getForObject(BASE_URL + "schema/user/list.json",
- SchemaTO[].class));
+ List<SchemaTO> userSchemas = schemaService.list(USER, SchemaTO[].class);
assertFalse(userSchemas.isEmpty());
for (SchemaTO schemaTO : userSchemas) {
assertNotNull(schemaTO);
}
- List<SchemaTO> roleSchemas = Arrays.asList(restTemplate.getForObject(BASE_URL + "schema/role/list.json",
- SchemaTO[].class));
+ List<SchemaTO> roleSchemas = schemaService.list(ROLE, SchemaTO[].class);
assertFalse(roleSchemas.isEmpty());
for (SchemaTO schemaTO : roleSchemas) {
assertNotNull(schemaTO);
}
- List<SchemaTO> membershipSchemas = Arrays.asList(restTemplate.getForObject(BASE_URL
- + "schema/membership/list.json", SchemaTO[].class));
+ List<SchemaTO> membershipSchemas = schemaService.list(MEMBERSHIP, SchemaTO[].class);
assertFalse(membershipSchemas.isEmpty());
for (SchemaTO schemaTO : membershipSchemas) {
assertNotNull(schemaTO);
@@ -155,15 +157,15 @@ public class SchemaTestITCase extends Ab
@Test
public void update() {
- SchemaTO schemaTO = restTemplate.getForObject(BASE_URL + "schema/role/read/icon.json", SchemaTO.class);
+ SchemaTO schemaTO = schemaService.read(ROLE, "icon", SchemaTO.class);
assertNotNull(schemaTO);
- SchemaTO updatedTO = restTemplate.postForObject(BASE_URL + "schema/role/update", schemaTO, SchemaTO.class);
+ SchemaTO updatedTO = schemaService.update(ROLE, schemaTO.getName(), schemaTO);
assertEquals(schemaTO, updatedTO);
updatedTO.setType(SchemaType.Date);
try {
- restTemplate.postForObject(BASE_URL + "schema/role/update", updatedTO, SchemaTO.class);
+ schemaService.update(ROLE, schemaTO.getName(), updatedTO);
fail("This should not be reacheable");
} catch (SyncopeClientCompositeErrorException scce) {
SyncopeClientException sce = scce.getException(SyncopeClientExceptionType.InvalidRSchema);
@@ -177,18 +179,18 @@ public class SchemaTestITCase extends Ab
schemaTO.setName("schema_issue258");
schemaTO.setType(SchemaType.Double);
- schemaTO = restTemplate.postForObject(BASE_URL + "schema/user/create", schemaTO, SchemaTO.class);
+ schemaTO = schemaService.create(USER, schemaTO);
assertNotNull(schemaTO);
UserTO userTO = UserTestITCase.getSampleTO("issue258@syncope.apache.org");
userTO.addAttribute(attributeTO(schemaTO.getName(), "1.2"));
- userTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
+ userTO = userService.create(userTO);
assertNotNull(userTO);
schemaTO.setType(SchemaType.Long);
try {
- restTemplate.postForObject(BASE_URL + "schema/user/update", schemaTO, SchemaTO.class);
+ schemaService.update(USER, schemaTO.getName(), schemaTO);
fail("This should not be reacheable");
} catch (SyncopeClientCompositeErrorException scce) {
SyncopeClientException sce = scce.getException(SyncopeClientExceptionType.InvalidUSchema);
@@ -203,12 +205,12 @@ public class SchemaTestITCase extends Ab
schemaTO.setUniqueConstraint(true);
schemaTO.setType(SchemaType.Long);
- schemaTO = restTemplate.postForObject(BASE_URL + "schema/user/create", schemaTO, SchemaTO.class);
+ schemaTO = schemaService.create(USER, schemaTO);
assertNotNull(schemaTO);
UserTO userTO = UserTestITCase.getSampleTO("issue259@syncope.apache.org");
userTO.addAttribute(attributeTO(schemaTO.getName(), "1"));
- userTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
+ userTO = userService.create(userTO);
assertNotNull(userTO);
UserTO newUserTO = AttributableOperations.clone(userTO);
@@ -218,7 +220,7 @@ public class SchemaTestITCase extends Ab
UserMod userMod = AttributableOperations.diff(newUserTO, userTO);
- userTO = restTemplate.postForObject(BASE_URL + "user/update", userMod, UserTO.class);
+ userTO = userService.update(userMod.getId(), userMod);
assertNotNull(userTO);
}
@@ -229,17 +231,17 @@ public class SchemaTestITCase extends Ab
schemaTO.setType(SchemaType.Double);
schemaTO.setUniqueConstraint(true);
- schemaTO = restTemplate.postForObject(BASE_URL + "schema/user/create", schemaTO, SchemaTO.class);
+ schemaTO = schemaService.create(USER, schemaTO);
assertNotNull(schemaTO);
UserTO userTO = UserTestITCase.getSampleTO("issue260@syncope.apache.org");
userTO.addAttribute(attributeTO(schemaTO.getName(), "1.2"));
- userTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
+ userTO = userService.create(userTO);
assertNotNull(userTO);
schemaTO.setUniqueConstraint(false);
try {
- restTemplate.postForObject(BASE_URL + "schema/user/update", schemaTO, SchemaTO.class);
+ schemaService.update(USER, schemaTO.getName(), schemaTO);
fail("This should not be reacheable");
} catch (SyncopeClientCompositeErrorException scce) {
SyncopeClientException sce = scce.getException(SyncopeClientExceptionType.InvalidUSchema);
Modified: syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/VirtualSchemaTestITCase.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/VirtualSchemaTestITCase.java?rev=1430219&r1=1430218&r2=1430219&view=diff
==============================================================================
--- syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/VirtualSchemaTestITCase.java (original)
+++ syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/VirtualSchemaTestITCase.java Tue Jan 8 11:24:02 2013
@@ -18,10 +18,11 @@
*/
package org.apache.syncope.core.rest;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
-import java.util.Arrays;
import java.util.List;
+
import org.apache.syncope.client.to.VirtualSchemaTO;
import org.apache.syncope.client.validation.SyncopeClientCompositeErrorException;
import org.apache.syncope.types.SyncopeClientExceptionType;
@@ -32,10 +33,13 @@ import org.junit.runners.MethodSorters;
@FixMethodOrder(MethodSorters.JVM)
public class VirtualSchemaTestITCase extends AbstractTest {
+ private static final String ROLE = "role";
+ private static final String USER = "user";
+ private static final String MEMBERSHIP = "membership";
+
@Test
public void list() {
- List<VirtualSchemaTO> VirtualSchemas = Arrays.asList(restTemplate.getForObject(BASE_URL
- + "virtualSchema/user/list.json", VirtualSchemaTO[].class));
+ List<VirtualSchemaTO> VirtualSchemas = schemaService.list(USER, VirtualSchemaTO[].class);
assertFalse(VirtualSchemas.isEmpty());
for (VirtualSchemaTO VirtualSchemaTO : VirtualSchemas) {
assertNotNull(VirtualSchemaTO);
@@ -44,8 +48,8 @@ public class VirtualSchemaTestITCase ext
@Test
public void read() {
- VirtualSchemaTO VirtualSchemaTO = restTemplate.getForObject(BASE_URL
- + "virtualSchema/membership/read/mvirtualdata.json", VirtualSchemaTO.class);
+ VirtualSchemaTO VirtualSchemaTO = schemaService.read(MEMBERSHIP, "mvirtualdata",
+ VirtualSchemaTO.class);
assertNotNull(VirtualSchemaTO);
}
@@ -54,30 +58,24 @@ public class VirtualSchemaTestITCase ext
VirtualSchemaTO schema = new VirtualSchemaTO();
schema.setName("virtual");
- VirtualSchemaTO actual = restTemplate.postForObject(BASE_URL + "virtualSchema/user/create.json", schema,
- VirtualSchemaTO.class);
+ VirtualSchemaTO actual = schemaService.create(USER, schema);
assertNotNull(actual);
- actual = restTemplate.getForObject(BASE_URL + "virtualSchema/user/read/" + actual.getName() + ".json",
- VirtualSchemaTO.class);
+ actual = schemaService.read(USER, actual.getName(), VirtualSchemaTO.class);
assertNotNull(actual);
}
@Test
public void delete() {
- VirtualSchemaTO schema = restTemplate.getForObject(BASE_URL + "virtualSchema/role/read/rvirtualdata.json",
- VirtualSchemaTO.class);
+ VirtualSchemaTO schema = schemaService.read(ROLE, "rvirtualdata", VirtualSchemaTO.class);
assertNotNull(schema);
- VirtualSchemaTO deletedSchema =
- restTemplate.getForObject(BASE_URL + "virtualSchema/role/delete/{schema}", VirtualSchemaTO.class,
- schema.getName());
+ VirtualSchemaTO deletedSchema = schemaService.delete(ROLE, schema.getName(), VirtualSchemaTO.class);
assertNotNull(deletedSchema);
Throwable t = null;
try {
- schema = restTemplate.getForObject(BASE_URL + "virtualSchema/role/read/rvirtualdata.json",
- VirtualSchemaTO.class);
+ schema = schemaService.read(ROLE, "rvirtualdata", VirtualSchemaTO.class);
} catch (SyncopeClientCompositeErrorException e) {
t = e;
assertNotNull(e.getException(SyncopeClientExceptionType.NotFound));
Modified: syncope/trunk/core/src/test/resources/restClientContext.xml
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/test/resources/restClientContext.xml?rev=1430219&r1=1430218&r2=1430219&view=diff
==============================================================================
--- syncope/trunk/core/src/test/resources/restClientContext.xml (original)
+++ syncope/trunk/core/src/test/resources/restClientContext.xml Tue Jan 8 11:24:02 2013
@@ -42,7 +42,7 @@ under the License.
<bean id="httpClientFactory" class="org.apache.syncope.client.http.PreemptiveAuthHttpRequestFactory">
<constructor-arg value="localhost"/>
- <constructor-arg value="9080"/>
+ <constructor-arg value="9081"/>
<constructor-arg value="http"/>
<constructor-arg ref="httpClientConnManager"/>
<constructor-arg ref="httpClientParams"/>