You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by fm...@apache.org on 2012/05/03 14:33:30 UTC
svn commit: r1333426 - in /incubator/syncope/trunk:
console/src/main/java/org/apache/syncope/console/pages/panels/
console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/
core/src/test/java/org/apache/syncope/core/rest/
Author: fmartelli
Date: Thu May 3 12:33:29 2012
New Revision: 1333426
URL: http://svn.apache.org/viewvc?rev=1333426&view=rev
Log:
SYNCOPE-75 #comment provided test for multivalued attribute
Added:
incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/DateFieldPanel.java
- copied, changed from r1333020, incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/DateTimeFieldPanel.java
Modified:
incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AttributesPanel.java
incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/DateTextFieldPanel.java
incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/DateTimeFieldPanel.java
incubator/syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java
Modified: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AttributesPanel.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AttributesPanel.java?rev=1333426&r1=1333425&r2=1333426&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AttributesPanel.java (original)
+++ incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AttributesPanel.java Thu May 3 12:33:29 2012
@@ -178,14 +178,12 @@ public class AttributesPanel extends Pan
: SyncopeConstants.DEFAULT_DATE_PATTERN;
if (!dataPattern.contains("H")) {
-
panel = new DateTextFieldPanel("panel", schemaTO.getName(), new Model(), dataPattern);
if (required) {
panel.addRequiredLabel();
}
} else {
-
panel = new DateTimeFieldPanel("panel", schemaTO.getName(), new Model(), dataPattern);
if (required) {
Copied: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/DateFieldPanel.java (from r1333020, incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/DateTimeFieldPanel.java)
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/DateFieldPanel.java?p2=incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/DateFieldPanel.java&p1=incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/DateTimeFieldPanel.java&r1=1333020&r2=1333426&rev=1333426&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/DateTimeFieldPanel.java (original)
+++ incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/DateFieldPanel.java Thu May 3 12:33:29 2012
@@ -21,172 +21,34 @@ package org.apache.syncope.console.wicke
import java.io.Serializable;
import java.text.ParseException;
import java.text.SimpleDateFormat;
-import java.util.Calendar;
import java.util.Date;
import java.util.List;
+import java.util.Locale;
import org.apache.syncope.client.SyncopeConstants;
-import org.apache.wicket.AttributeModifier;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
-import org.apache.wicket.extensions.yui.calendar.DateTimeField;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.markup.html.form.FormComponent;
-import org.apache.wicket.markup.html.form.validation.AbstractFormValidator;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
-import org.apache.wicket.validation.IValidationError;
-import org.apache.wicket.validation.ValidationError;
import org.springframework.util.StringUtils;
-public class DateTimeFieldPanel extends FieldPanel<Date> implements Cloneable {
+public class DateFieldPanel extends FieldPanel<Date> implements Cloneable {
private static final long serialVersionUID = -428975732068281726L;
- private final String datePattern;
-
- private Form form = null;
-
- protected static final ThreadLocal<SimpleDateFormat> DATE_FORMAT = new ThreadLocal<SimpleDateFormat>() {
-
- @Override
- protected SimpleDateFormat initialValue() {
- return new SimpleDateFormat(SyncopeConstants.DEFAULT_DATE_PATTERN);
- }
- };
-
- public DateTimeFieldPanel(final String id, final String name, final IModel<Date> model, final String datePattern) {
+ protected final String datePattern;
+ protected DateFieldPanel(final String id, final String name, final IModel<Date> model, final String datePattern) {
super(id, name, model);
-
this.datePattern = datePattern;
-
- field = new DateTimeField("field", model);
-
- final Calendar cal = Calendar.getInstance();
-
- field.get("hours").add(new AjaxFormComponentUpdatingBehavior("onchange") {
-
- private static final long serialVersionUID = -1107858522700306810L;
-
- @Override
- protected void onUpdate(AjaxRequestTarget art) {
- if (((DateTimeField) field).getHours() > 12) {
- cal.set(Calendar.HOUR_OF_DAY, ((DateTimeField) field).getHours());
- } else {
- cal.set(Calendar.HOUR, ((DateTimeField) field).getHours());
- }
- field.setModelObject(cal.getTime());
- }
- });
-
- field.get("minutes").add(new AjaxFormComponentUpdatingBehavior("onchange") {
-
- private static final long serialVersionUID = -1107858522700306810L;
-
- @Override
- protected void onUpdate(final AjaxRequestTarget target) {
- cal.set(Calendar.MINUTE, ((DateTimeField) field).getMinutes());
- field.setModelObject(cal.getTime());
- }
- });
-
- field.get("date").add(new AjaxFormComponentUpdatingBehavior("onchange") {
-
- private static final long serialVersionUID = -1107858522700306810L;
-
- @Override
- protected void onUpdate(final AjaxRequestTarget target) {
- cal.setTime(((DateTimeField) field).getDate());
-
- if ("PM".equals("" + ((DateTimeField) field).getAmOrPm())) {
- cal.set(Calendar.AM_PM, Calendar.PM);
- } else {
- cal.set(Calendar.AM_PM, Calendar.AM);
- }
-
- field.setModelObject(cal.getTime());
- }
- });
-
- field.get("amOrPmChoice").add(new AjaxFormComponentUpdatingBehavior("onchange") {
-
- private static final long serialVersionUID = -1107858522700306810L;
-
- @Override
- protected void onUpdate(final AjaxRequestTarget target) {
- if ("PM".equals("" + ((DateTimeField) field).getAmOrPm())) {
- cal.set(Calendar.AM_PM, Calendar.PM);
- } else {
- cal.set(Calendar.AM_PM, Calendar.AM);
- }
-
- field.setModelObject(cal.getTime());
- }
- });
-
- add(field.setLabel(new Model(name)).setOutputMarkupId(true));
- }
-
- /**
- * Custom form validator for registering and handling DateTimeField components that are in it.
- */
- private class DateTimeFormValidator extends AbstractFormValidator {
-
- private static final long serialVersionUID = 6842264694946633582L;
-
- private FormComponent[] dateTimeComponents;
-
- public DateTimeFormValidator(final DateTimeField dateTimeComponent) {
- if (dateTimeComponent == null) {
- throw new IllegalArgumentException("argument dateTimeComponent cannot be null");
- }
-
- dateTimeComponents = new FormComponent[] { dateTimeComponent };
- }
-
- @Override
- public FormComponent[] getDependentFormComponents() {
- return dateTimeComponents;
- }
-
- /**
- * Validation rule : all 3 fields (date,hours,minutes) must be not-null.
- *
- * @param form
- */
- @Override
- public void validate(final Form form) {
- final DateTimeField dateTimeField = (DateTimeField) dateTimeComponents[0];
-
- if (!(dateTimeField.getDate() != null && dateTimeField.getHours() != null && dateTimeField.getMinutes() != null)) {
-
- ValidationError ve = new ValidationError();
- ve.setVariables(DateTimeFormValidator.this.variablesMap());
- ve.addMessageKey(resourceKey());
- dateTimeComponents[0].error((IValidationError) ve);
- }
- }
- }
-
- public FieldPanel setFormValidator(final Form form) {
-
- if (field == null) {
- LOG.error("Error setting form validator");
- } else {
- form.add(new DateTimeFormValidator(((DateTimeField) field)));
- this.form = form;
- }
-
- return this;
}
@Override
public FieldPanel setNewModel(final ListItem item) {
- final SimpleDateFormat formatter = DATE_FORMAT.get();
+ final SimpleDateFormat formatter;
if (datePattern != null) {
- formatter.applyPattern(datePattern);
+ formatter = new SimpleDateFormat(datePattern, Locale.getDefault());
+ } else {
+ formatter = new SimpleDateFormat(SyncopeConstants.DEFAULT_DATE_PATTERN, Locale.getDefault());
}
IModel<Date> model = new Model() {
@@ -197,20 +59,22 @@ public class DateTimeFieldPanel extends
public Serializable getObject() {
Date date = null;
- if (StringUtils.hasText((String) item.getModelObject())) {
- if (item.getModelObject() instanceof String) {
+ final Object obj = item.getModelObject();
+
+ if (obj != null && !obj.toString().isEmpty()) {
+ if (obj instanceof String) {
// Parse string using datePattern
try {
- date = formatter.parse((String) item.getModelObject());
+ date = formatter.parse(obj.toString());
} catch (ParseException e) {
LOG.error("While parsing date", e);
}
- } else if (item.getModelObject() instanceof Date) {
+ } else if (obj instanceof Date) {
// Don't parse anything
- date = (Date) item.getModelObject();
+ date = (Date) obj;
} else {
// consider Long
- date = new Date((Long) item.getModelObject());
+ date = new Date((Long) obj);
}
}
@@ -219,17 +83,9 @@ public class DateTimeFieldPanel extends
@Override
public void setObject(final Serializable object) {
- if (object != null && object instanceof Date) {
- if (item.getModelObject() instanceof String) {
- // Parse string using datePattern
- item.setModelObject((String) formatter.format((Date) object));
- } else if (item.getModelObject() instanceof Date) {
- // Don't parse anything
- item.setModelObject((Date) object);
- } else {
- // consider Long
- item.setModelObject(((Date) object).getTime());
- }
+ if (object instanceof Date) {
+ final Object obj = item.getModelObject();
+ item.setModelObject(formatter.format((Date) object));
} else {
item.setModelObject(null);
}
@@ -242,10 +98,12 @@ public class DateTimeFieldPanel extends
@Override
public FieldPanel setNewModel(final List<Serializable> list) {
- final SimpleDateFormat formatter = DATE_FORMAT.get();
+ final SimpleDateFormat formatter;
if (datePattern != null) {
- formatter.applyPattern(datePattern);
+ formatter = new SimpleDateFormat(datePattern, Locale.getDefault());
+ } else {
+ formatter = new SimpleDateFormat(SyncopeConstants.DEFAULT_DATE_PATTERN, Locale.getDefault());
}
setNewModel(new Model() {
@@ -279,44 +137,4 @@ public class DateTimeFieldPanel extends
return this;
}
-
- @Override
- public FieldPanel setStyleShet(String classes) {
- field.get("date").add(AttributeModifier.replace("class", (classes != null
- ? classes
- : "") + " date_size"));
-
- field.get("hours").add(AttributeModifier.replace("class", classes != null
- ? classes
- : ""));
-
- field.get("minutes").add(AttributeModifier.replace("class", classes != null
- ? classes
- : ""));
-
- field.get("amOrPmChoice").add(AttributeModifier.replace("class", classes != null
- ? classes
- : ""));
-
- return this;
- }
-
- @Override
- public FieldPanel clone() {
- final FieldPanel panel = new DateTimeFieldPanel(id, name, new Model(null), datePattern);
-
- panel.setRequired(isRequired());
- panel.setReadOnly(isReadOnly());
- panel.setTitle(title);
-
- if (isRequiredLabelAdded) {
- panel.addRequiredLabel();
- }
-
- if (form != null && isRequired()) {
- ((DateTimeFieldPanel) panel).setFormValidator(form);
- }
-
- return panel;
- }
}
Modified: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/DateTextFieldPanel.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/DateTextFieldPanel.java?rev=1333426&r1=1333425&r2=1333426&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/DateTextFieldPanel.java (original)
+++ incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/DateTextFieldPanel.java Thu May 3 12:33:29 2012
@@ -18,31 +18,21 @@
*/
package org.apache.syncope.console.wicket.markup.html.form;
-import java.io.Serializable;
-import java.text.DateFormat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
import java.util.Date;
-import java.util.List;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
import org.apache.wicket.datetime.markup.html.form.DateTextField;
import org.apache.wicket.extensions.yui.calendar.DatePicker;
-import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
-import org.springframework.util.StringUtils;
-public class DateTextFieldPanel extends FieldPanel<Date> implements Cloneable {
+public class DateTextFieldPanel extends DateFieldPanel {
private static final long serialVersionUID = 1919852712185883648L;
- private final String datePattern;
public DateTextFieldPanel(final String id, final String name, final IModel<Date> model, final String datePattern) {
- super(id, name, model);
-
- this.datePattern = datePattern;
+ super(id, name, model, datePattern);
field = DateTextField.forDatePattern("field", model, datePattern);
@@ -83,98 +73,8 @@ public class DateTextFieldPanel extends
}
@Override
- public FieldPanel setNewModel(final ListItem item) {
- final DateFormat formatter = new SimpleDateFormat(datePattern);
-
- IModel<Date> model = new Model() {
-
- private static final long serialVersionUID = 6799404673615637845L;
-
- @Override
- public Serializable getObject() {
- Date date = null;
-
- if (StringUtils.hasText((String) item.getModelObject())) {
- if (item.getModelObject() instanceof String) {
- // Parse string using datePattern
- try {
- date = formatter.parse((String) item.getModelObject());
- } catch (ParseException e) {
- LOG.error("While parsing date", e);
- }
- } else if (item.getModelObject() instanceof Date) {
- // Don't parse anything
- date = (Date) item.getModelObject();
- } else {
- // consider Long
- date = new Date((Long) item.getModelObject());
- }
- }
-
- return date;
- }
-
- @Override
- public void setObject(final Serializable object) {
- if (object != null && object instanceof Date) {
- if (item.getModelObject() instanceof String) {
- // Parse string using datePattern
- item.setModelObject((String) formatter.format((Date) object));
- } else if (item.getModelObject() instanceof Date) {
- // Don't parse anything
- item.setModelObject((Date) object);
- } else {
- // consider Long
- item.setModelObject(((Date) object).getTime());
- }
- } else {
- item.setModelObject(null);
- }
- }
- };
-
- field.setModel(model);
- return this;
- }
-
- @Override
- public FieldPanel setNewModel(final List<Serializable> list) {
- setNewModel(new Model() {
-
- private static final long serialVersionUID = 527651414610325237L;
- private final DateFormat formatter = new SimpleDateFormat(datePattern);
-
- @Override
- public Serializable getObject() {
- Date date = null;
-
- if (list != null && !list.isEmpty() && StringUtils.hasText(list.get(0).toString())) {
- try {
- // Parse string using datePattern
- date = formatter.parse(list.get(0).toString());
- } catch (ParseException e) {
- LOG.error("invalid parse exception", e);
- }
- }
-
- return date;
- }
-
- @Override
- public void setObject(final Serializable object) {
- if (object != null && object instanceof Date) {
- list.clear();
- list.add((String) formatter.format((Date) object));
- }
- }
- });
-
- return this;
- }
-
- @Override
public FieldPanel clone() {
- final FieldPanel panel = new DateTextFieldPanel(id, name, new Model(null), datePattern);
+ final FieldPanel panel = new DateTextFieldPanel(id, name, new Model(), datePattern);
panel.setRequired(isRequired());
panel.setReadOnly(isReadOnly());
panel.setTitle(title);
Modified: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/DateTimeFieldPanel.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/DateTimeFieldPanel.java?rev=1333426&r1=1333425&r2=1333426&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/DateTimeFieldPanel.java (original)
+++ incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/DateTimeFieldPanel.java Thu May 3 12:33:29 2012
@@ -18,12 +18,10 @@
*/
package org.apache.syncope.console.wicket.markup.html.form;
-import java.io.Serializable;
-import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
-import java.util.List;
+import java.util.Locale;
import org.apache.syncope.client.SyncopeConstants;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -32,34 +30,28 @@ import org.apache.wicket.extensions.yui.
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.FormComponent;
import org.apache.wicket.markup.html.form.validation.AbstractFormValidator;
-import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.validation.IValidationError;
import org.apache.wicket.validation.ValidationError;
-import org.springframework.util.StringUtils;
-public class DateTimeFieldPanel extends FieldPanel<Date> implements Cloneable {
+public class DateTimeFieldPanel extends DateFieldPanel {
private static final long serialVersionUID = -428975732068281726L;
- private final String datePattern;
-
private Form form = null;
protected static final ThreadLocal<SimpleDateFormat> DATE_FORMAT = new ThreadLocal<SimpleDateFormat>() {
@Override
protected SimpleDateFormat initialValue() {
- return new SimpleDateFormat(SyncopeConstants.DEFAULT_DATE_PATTERN);
+ return new SimpleDateFormat(SyncopeConstants.DEFAULT_DATE_PATTERN, Locale.getDefault());
}
};
public DateTimeFieldPanel(final String id, final String name, final IModel<Date> model, final String datePattern) {
- super(id, name, model);
-
- this.datePattern = datePattern;
+ super(id, name, model, datePattern);
field = new DateTimeField("field", model);
@@ -142,7 +134,7 @@ public class DateTimeFieldPanel extends
throw new IllegalArgumentException("argument dateTimeComponent cannot be null");
}
- dateTimeComponents = new FormComponent[] { dateTimeComponent };
+ dateTimeComponents = new FormComponent[]{dateTimeComponent};
}
@Override
@@ -182,105 +174,6 @@ public class DateTimeFieldPanel extends
}
@Override
- public FieldPanel setNewModel(final ListItem item) {
- final SimpleDateFormat formatter = DATE_FORMAT.get();
-
- if (datePattern != null) {
- formatter.applyPattern(datePattern);
- }
-
- IModel<Date> model = new Model() {
-
- private static final long serialVersionUID = 6799404673615637845L;
-
- @Override
- public Serializable getObject() {
- Date date = null;
-
- if (StringUtils.hasText((String) item.getModelObject())) {
- if (item.getModelObject() instanceof String) {
- // Parse string using datePattern
- try {
- date = formatter.parse((String) item.getModelObject());
- } catch (ParseException e) {
- LOG.error("While parsing date", e);
- }
- } else if (item.getModelObject() instanceof Date) {
- // Don't parse anything
- date = (Date) item.getModelObject();
- } else {
- // consider Long
- date = new Date((Long) item.getModelObject());
- }
- }
-
- return date;
- }
-
- @Override
- public void setObject(final Serializable object) {
- if (object != null && object instanceof Date) {
- if (item.getModelObject() instanceof String) {
- // Parse string using datePattern
- item.setModelObject((String) formatter.format((Date) object));
- } else if (item.getModelObject() instanceof Date) {
- // Don't parse anything
- item.setModelObject((Date) object);
- } else {
- // consider Long
- item.setModelObject(((Date) object).getTime());
- }
- } else {
- item.setModelObject(null);
- }
- }
- };
-
- field.setModel(model);
- return this;
- }
-
- @Override
- public FieldPanel setNewModel(final List<Serializable> list) {
- final SimpleDateFormat formatter = DATE_FORMAT.get();
-
- if (datePattern != null) {
- formatter.applyPattern(datePattern);
- }
-
- setNewModel(new Model() {
-
- private static final long serialVersionUID = 527651414610325237L;
-
- @Override
- public Serializable getObject() {
- Date date = null;
-
- if (list != null && !list.isEmpty() && StringUtils.hasText(list.get(0).toString())) {
- try {
- // Parse string using datePattern
- date = formatter.parse(list.get(0).toString());
- } catch (ParseException e) {
- LOG.error("invalid parse exception", e);
- }
- }
-
- return date;
- }
-
- @Override
- public void setObject(final Serializable object) {
- if (object != null && object instanceof Date) {
- list.clear();
- list.add((String) formatter.format((Date) object));
- }
- }
- });
-
- return this;
- }
-
- @Override
public FieldPanel setStyleShet(String classes) {
field.get("date").add(AttributeModifier.replace("class", (classes != null
? classes
Modified: incubator/syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java?rev=1333426&r1=1333425&r2=1333426&view=diff
==============================================================================
--- incubator/syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java (original)
+++ incubator/syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java Thu May 3 12:33:29 2012
@@ -625,15 +625,15 @@ public class UserTestITCase extends Abst
// 3. claim task from user1, not in role 7 (designated for
// approval in workflow definition): fail
- PreemptiveAuthHttpRequestFactory requestFactory = ((PreemptiveAuthHttpRequestFactory) restTemplate
- .getRequestFactory());
+ PreemptiveAuthHttpRequestFactory requestFactory = ((PreemptiveAuthHttpRequestFactory) restTemplate.
+ getRequestFactory());
((DefaultHttpClient) requestFactory.getHttpClient()).getCredentialsProvider().setCredentials(
requestFactory.getAuthScope(), new UsernamePasswordCredentials("user1", "password"));
SyncopeClientException sce = null;
try {
- restTemplate.getForObject(BASE_URL + "user/workflow/form/claim/{taskId}", WorkflowFormTO.class, form
- .getTaskId());
+ restTemplate.getForObject(BASE_URL + "user/workflow/form/claim/{taskId}", WorkflowFormTO.class, form.
+ getTaskId());
} catch (SyncopeClientCompositeErrorException scce) {
sce = scce.getException(SyncopeClientExceptionType.Workflow);
}
@@ -643,8 +643,8 @@ public class UserTestITCase extends Abst
((DefaultHttpClient) requestFactory.getHttpClient()).getCredentialsProvider().setCredentials(
requestFactory.getAuthScope(), new UsernamePasswordCredentials("user4", "password"));
- form = restTemplate.getForObject(BASE_URL + "user/workflow/form/claim/{taskId}", WorkflowFormTO.class, form
- .getTaskId());
+ form = restTemplate.getForObject(BASE_URL + "user/workflow/form/claim/{taskId}", WorkflowFormTO.class, form.
+ getTaskId());
assertNotNull(form);
assertNotNull(form.getTaskId());
assertNotNull(form.getOwner());
@@ -700,8 +700,8 @@ public class UserTestITCase extends Abst
assertNull(form.getOwner());
// 4. claim task (from admin)
- form = restTemplate.getForObject(BASE_URL + "user/workflow/form/claim/{taskId}", WorkflowFormTO.class, form
- .getTaskId());
+ form = restTemplate.getForObject(BASE_URL + "user/workflow/form/claim/{taskId}", WorkflowFormTO.class, form.
+ getTaskId());
assertNotNull(form);
assertNotNull(form.getTaskId());
assertNotNull(form.getOwner());
@@ -717,8 +717,8 @@ public class UserTestITCase extends Abst
exception = null;
try {
- final String username = jdbcTemplate.queryForObject("SELECT id FROM test WHERE id=?", String.class, userTO
- .getUsername());
+ final String username = jdbcTemplate.queryForObject("SELECT id FROM test WHERE id=?", String.class, userTO.
+ getUsername());
assertEquals(userTO.getUsername(), username);
} catch (EmptyResultDataAccessException e) {
exception = e;
@@ -767,7 +767,7 @@ public class UserTestITCase extends Abst
assertEquals(HttpStatus.NOT_FOUND, e.getStatusCode());
}
}
-
+
@Test
public void deleteByUsername() {
UserTO userTO = getSampleTO("delete.by.username@apache.org");
@@ -778,8 +778,9 @@ public class UserTestITCase extends Abst
userTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
long id = userTO.getId();
- userTO =
- restTemplate.getForObject(BASE_URL + "user/deleteByUsername/{username}.json", UserTO.class, userTO.getUsername());
+ userTO =
+ restTemplate.getForObject(BASE_URL + "user/deleteByUsername/{username}.json", UserTO.class, userTO.
+ getUsername());
assertNotNull(userTO);
assertEquals(id, userTO.getId());
@@ -837,8 +838,7 @@ public class UserTestITCase extends Abst
assertNotNull(user);
}
- users = Arrays.asList(restTemplate
- .getForObject(BASE_URL + "user/list/{page}/{size}.json", UserTO[].class, 2, 2));
+ users = Arrays.asList(restTemplate.getForObject(BASE_URL + "user/list/{page}/{size}.json", UserTO[].class, 2, 2));
assertNotNull(users);
assertFalse(users.isEmpty());
@@ -871,8 +871,8 @@ public class UserTestITCase extends Abst
fullnameLeafCond2.setSchema("fullname");
fullnameLeafCond2.setExpression("%i%");
- NodeCond searchCondition = NodeCond.getAndCond(NodeCond.getLeafCond(fullnameLeafCond1), NodeCond
- .getLeafCond(fullnameLeafCond2));
+ NodeCond searchCondition = NodeCond.getAndCond(NodeCond.getLeafCond(fullnameLeafCond1), NodeCond.getLeafCond(
+ fullnameLeafCond2));
assertTrue(searchCondition.checkValidity());
@@ -912,8 +912,8 @@ public class UserTestITCase extends Abst
idRightCond.setSchema("id");
idRightCond.setExpression("2");
- final NodeCond searchCondition = NodeCond.getAndCond(NodeCond.getLeafCond(usernameLeafCond), NodeCond
- .getLeafCond(idRightCond));
+ final NodeCond searchCondition = NodeCond.getAndCond(NodeCond.getLeafCond(usernameLeafCond), NodeCond.
+ getLeafCond(idRightCond));
assertTrue(searchCondition.checkValidity());
@@ -963,8 +963,8 @@ public class UserTestITCase extends Abst
fullnameLeafCond2.setSchema("fullname");
fullnameLeafCond2.setExpression("%i%");
- NodeCond searchCondition = NodeCond.getAndCond(NodeCond.getLeafCond(fullnameLeafCond1), NodeCond
- .getLeafCond(fullnameLeafCond2));
+ NodeCond searchCondition = NodeCond.getAndCond(NodeCond.getLeafCond(fullnameLeafCond1), NodeCond.getLeafCond(
+ fullnameLeafCond2));
assertTrue(searchCondition.checkValidity());
@@ -1320,8 +1320,8 @@ public class UserTestITCase extends Abst
ConnObjectTO connObjectTO = restTemplate.getForObject(BASE_URL
+ "/resource/{resourceName}/read/{objectId}.json", ConnObjectTO.class, dbTable.getName(), dbTableUID);
- assertFalse(Boolean.parseBoolean(connObjectTO.getAttributeMap().get(OperationalAttributes.ENABLE_NAME)
- .getValues().get(0)));
+ assertFalse(Boolean.parseBoolean(connObjectTO.getAttributeMap().get(OperationalAttributes.ENABLE_NAME).getValues().
+ get(0)));
String ldapUID = userTO.getUsername();
assertNotNull(ldapUID);
@@ -1341,8 +1341,8 @@ public class UserTestITCase extends Abst
connObjectTO = restTemplate.getForObject(BASE_URL + "/resource/{resourceName}/read/{objectId}.json",
ConnObjectTO.class, dbTable.getName(), dbTableUID);
- assertFalse(Boolean.parseBoolean(connObjectTO.getAttributeMap().get(OperationalAttributes.ENABLE_NAME)
- .getValues().get(0)));
+ assertFalse(Boolean.parseBoolean(connObjectTO.getAttributeMap().get(OperationalAttributes.ENABLE_NAME).getValues().
+ get(0)));
query = "?resourceNames=" + dbTable.getName() + "&performLocally=true"; // check also performLocally
@@ -1354,8 +1354,37 @@ public class UserTestITCase extends Abst
connObjectTO = restTemplate.getForObject(BASE_URL + "/resource/{resourceName}/read/{objectId}.json",
ConnObjectTO.class, dbTable.getName(), dbTableUID);
- assertTrue(Boolean.parseBoolean(connObjectTO.getAttributeMap().get(OperationalAttributes.ENABLE_NAME)
- .getValues().get(0)));
+ assertTrue(Boolean.parseBoolean(connObjectTO.getAttributeMap().get(OperationalAttributes.ENABLE_NAME).getValues().
+ get(0)));
+ }
+
+ public void updateMultivalueAttribute() {
+ UserTO userTO = getSampleTO("multivalue@syncope.apache.org");
+ userTO.getResources().clear();
+ userTO.getDerivedAttributes().clear();
+ userTO.getVirtualAttributes().clear();
+
+ userTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
+ assertNotNull(userTO);
+
+ AttributeTO loginDate = userTO.getAttributeMap().get("loginDate");
+ assertNotNull(loginDate);
+ assertEquals(1, loginDate.getValues().size());
+
+ UserMod userMod = new UserMod();
+
+ AttributeMod loginDateMod = new AttributeMod();
+ loginDateMod.addValueToBeAdded("2000-01-01");
+
+ userMod.setId(userTO.getId());
+ userMod.addAttributeToBeUpdated(loginDateMod);
+
+ userTO = restTemplate.postForObject(BASE_URL + "user/update", userMod, UserTO.class);
+ assertNotNull(userTO);
+
+ loginDate = userTO.getAttributeMap().get("loginDate");
+ assertNotNull(loginDate);
+ assertEquals(2, loginDate.getValues().size());
}
@Test(expected = EmptyResultDataAccessException.class)
@@ -1368,8 +1397,8 @@ public class UserTestITCase extends Abst
JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
- String username = jdbcTemplate.queryForObject("SELECT id FROM test WHERE id=?", String.class, userTO
- .getUsername());
+ String username = jdbcTemplate.queryForObject("SELECT id FROM test WHERE id=?", String.class,
+ userTO.getUsername());
assertEquals(userTO.getUsername(), username);
@@ -1418,8 +1447,8 @@ public class UserTestITCase extends Abst
assertTrue(original.getVirtualAttributes().isEmpty());
- UserTO toBeUpdated = restTemplate.getForObject(BASE_URL + "user/read/{userId}.json", UserTO.class, original
- .getId());
+ UserTO toBeUpdated = restTemplate.getForObject(BASE_URL + "user/read/{userId}.json", UserTO.class, original.
+ getId());
AttributeTO virtual = new AttributeTO();
@@ -1540,8 +1569,8 @@ public class UserTestITCase extends Abst
assertNotNull(actual.getDerivedAttributeMap().get("csvuserid"));
ConnObjectTO connObjectTO = restTemplate.getForObject(BASE_URL
- + "/resource/{resourceName}/read/{objectId}.json", ConnObjectTO.class, "resource-csv", actual
- .getDerivedAttributeMap().get("csvuserid").getValues().get(0));
+ + "/resource/{resourceName}/read/{objectId}.json", ConnObjectTO.class, "resource-csv", actual.
+ getDerivedAttributeMap().get("csvuserid").getValues().get(0));
assertNotNull(connObjectTO);
@@ -1587,8 +1616,8 @@ public class UserTestITCase extends Abst
assertNotNull(actual.getDerivedAttributeMap().get("csvuserid"));
ConnObjectTO connObjectTO = restTemplate.getForObject(BASE_URL
- + "/resource/{resourceName}/read/{objectId}.json", ConnObjectTO.class, "resource-csv", actual
- .getDerivedAttributeMap().get("csvuserid").getValues().get(0));
+ + "/resource/{resourceName}/read/{objectId}.json", ConnObjectTO.class, "resource-csv", actual.
+ getDerivedAttributeMap().get("csvuserid").getValues().get(0));
assertNotNull(connObjectTO);