MembershipMod membershipMod = new MembershipMod();
membershipMod.setRole(8L);
membershipMod.addAttributeToBeUpdated(attributeMod("subscriptionDate", "2010-08-18T16:33:12.203+0200"));
UserMod userMod = new UserMod();
userMod.setId(userTO.getId());
userMod.setPassword("new2Password");
userMod.addAttributeToBeRemoved("userId");
String newUserId = getUUIDString() + "t.w@spre.net";
userMod.addAttributeToBeUpdated(attributeMod("userId", newUserId));
userMod.addAttributeToBeRemoved("fullname");
String newFullName = getUUIDString() + "g.h@t.com";
userMod.addAttributeToBeUpdated(attributeMod("fullname", newFullName));
userMod.addDerivedAttributeToBeAdded("cn");
userMod.addMembershipToBeAdded(membershipMod);
userMod.addMembershipToBeRemoved(userTO.getMemberships().iterator().next().getId());
userTO = userService.update(userMod.getId(), userMod);
assertNotNull(userTO);
SyncopeUser passwordTestUser = new SyncopeUser();
passwordTestUser.setPassword("new2Password", CipherAlgorithm.SHA1, 0);
assertEquals(passwordTestUser.getPassword(), userTO.getPassword());