You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2016/03/10 08:40:49 UTC
syncope git commit: Cum grano salis (still struggling with Travis CI
failure on VirAttrITCase#issueSYNCOPE453
Repository: syncope
Updated Branches:
refs/heads/master feaea6915 -> 29928e1e7
Cum grano salis (still struggling with Travis CI failure on VirAttrITCase#issueSYNCOPE453
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/29928e1e
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/29928e1e
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/29928e1e
Branch: refs/heads/master
Commit: 29928e1e730abbae976e37414679d89fe68fd387
Parents: feaea69
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Thu Mar 10 08:40:42 2016 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Thu Mar 10 08:40:42 2016 +0100
----------------------------------------------------------------------
.travis.yml | 3 +-
.../apache/syncope/fit/core/VirAttrITCase.java | 224 ++++++++++---------
2 files changed, 115 insertions(+), 112 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/29928e1e/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
index 241c951..bd888bd 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -26,7 +26,8 @@ script:
#invoker.streamLogs: we cannot access to log files through Travis web ui, so display everything in the console
- mvn --show-version --quiet clean install -Dinvoker.streamLogs=true
after_failure:
- - cat fit/core-reference/target/log/* fit/core/reference/target/failsafe-reports/org.apache.syncope.fit.core.VirAttrITCase-output.txt
+ - cat fit/core-reference/target/log/*
+ - cat fit/core/reference/target/failsafe-reports/org.apache.syncope.fit.*-output.txt
notifications:
email:
- dev@syncope.apache.org
http://git-wip-us.apache.org/repos/asf/syncope/blob/29928e1e/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirAttrITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirAttrITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirAttrITCase.java
index 3776eea..b67ae4e 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirAttrITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirAttrITCase.java
@@ -22,7 +22,6 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
import java.util.Locale;
import java.util.Map;
@@ -31,7 +30,7 @@ import javax.ws.rs.core.Response;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.SerializationUtils;
-import org.apache.syncope.common.lib.patch.GroupPatch;
+import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.patch.PasswordPatch;
import org.apache.syncope.common.lib.patch.StatusPatch;
import org.apache.syncope.common.lib.patch.StringPatchItem;
@@ -450,127 +449,130 @@ public class VirAttrITCase extends AbstractITCase {
@Test
public void issueSYNCOPE453() {
- final String resourceName = "issueSYNCOPE453-Res-" + getUUIDString();
- final String groupName = "issueSYNCOPE453-Group-" + getUUIDString();
-
- // -------------------------------------------
- // Create a resource ad-hoc
- // -------------------------------------------
- ResourceTO resourceTO = new ResourceTO();
-
- resourceTO.setKey(resourceName);
- resourceTO.setConnector(107L);
-
- ProvisionTO provisionTO = new ProvisionTO();
- provisionTO.setAnyType(AnyTypeKind.USER.name());
- provisionTO.setObjectClass(ObjectClass.ACCOUNT_NAME);
- resourceTO.getProvisions().add(provisionTO);
-
- MappingTO mapping = new MappingTO();
- provisionTO.setMapping(mapping);
-
- MappingItemTO item = new MappingItemTO();
- item.setIntAttrName("aLong");
- item.setIntMappingType(IntMappingType.UserPlainSchema);
- item.setExtAttrName("ID");
- item.setPurpose(MappingPurpose.PROPAGATION);
- item.setConnObjectKey(true);
- mapping.setConnObjectKeyItem(item);
-
- item = new MappingItemTO();
- item.setExtAttrName("USERNAME");
- item.setIntAttrName("username");
- item.setIntMappingType(IntMappingType.Username);
- item.setPurpose(MappingPurpose.PROPAGATION);
- mapping.getItems().add(item);
-
- item = new MappingItemTO();
- item.setExtAttrName("EMAIL");
- item.setIntAttrName("rvirtualdata");
- item.setIntMappingType(IntMappingType.GroupVirtualSchema);
- item.setPurpose(MappingPurpose.PROPAGATION);
- mapping.getItems().add(item);
-
- assertNotNull(getObject(
- resourceService.create(resourceTO).getLocation(), ResourceService.class, ResourceTO.class));
- // -------------------------------------------
-
- // -------------------------------------------
- // Create a VirAttrITCase ad-hoc
- // -------------------------------------------
- GroupTO groupTO = new GroupTO();
- groupTO.setName(groupName);
- groupTO.setRealm("/");
- groupTO.getResources().add(RESOURCE_NAME_LDAP);
- groupTO = createGroup(groupTO).getAny();
-
- String rvirtualdata = "ml@group.it";
-
- int i = 0;
- int maxit = 5;
-
- // wait for group propagation on LDAP
- do {
+ String resourceName = "issueSYNCOPE453-Res-" + getUUIDString();
+ Long groupKey = null;
+ String groupName = "issueSYNCOPE453-Group-" + getUUIDString();
+
+ try {
+ // -------------------------------------------
+ // Create a resource ad-hoc
+ // -------------------------------------------
+ ResourceTO resourceTO = new ResourceTO();
+
+ resourceTO.setKey(resourceName);
+ resourceTO.setConnector(107L);
+
+ ProvisionTO provisionTO = new ProvisionTO();
+ provisionTO.setAnyType(AnyTypeKind.USER.name());
+ provisionTO.setObjectClass(ObjectClass.ACCOUNT_NAME);
+ resourceTO.getProvisions().add(provisionTO);
+
+ MappingTO mapping = new MappingTO();
+ provisionTO.setMapping(mapping);
+
+ MappingItemTO item = new MappingItemTO();
+ item.setIntAttrName("aLong");
+ item.setIntMappingType(IntMappingType.UserPlainSchema);
+ item.setExtAttrName("ID");
+ item.setPurpose(MappingPurpose.PROPAGATION);
+ item.setConnObjectKey(true);
+ mapping.setConnObjectKeyItem(item);
+
+ item = new MappingItemTO();
+ item.setExtAttrName("USERNAME");
+ item.setIntAttrName("username");
+ item.setIntMappingType(IntMappingType.Username);
+ item.setPurpose(MappingPurpose.PROPAGATION);
+ mapping.getItems().add(item);
+
+ item = new MappingItemTO();
+ item.setExtAttrName("EMAIL");
+ item.setIntAttrName("rvirtualdata");
+ item.setIntMappingType(IntMappingType.GroupVirtualSchema);
+ item.setPurpose(MappingPurpose.PROPAGATION);
+ mapping.getItems().add(item);
+
+ assertNotNull(getObject(
+ resourceService.create(resourceTO).getLocation(), ResourceService.class, ResourceTO.class));
+ // -------------------------------------------
+ // -------------------------------------------
+ // Create a VirAttrITCase ad-hoc
+ // -------------------------------------------
+ VirSchemaTO rvirtualdata;
try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- }
+ rvirtualdata = schemaService.read(SchemaType.VIRTUAL, "rvirtualdata");
+ } catch (SyncopeClientException e) {
+ LOG.warn("rvirtualdata not found, re-creating", e);
- GroupPatch patch = new GroupPatch();
- patch.setKey(groupTO.getKey());
- rvirtualdata = i + rvirtualdata;
- patch.getVirAttrs().add(attrTO("rvirtualdata", rvirtualdata));
+ rvirtualdata = new VirSchemaTO();
+ rvirtualdata.setKey("rvirtualdata");
+ rvirtualdata.setExtAttrName("businessCategory");
+ rvirtualdata.setProvision(20);
- LOG.info("Updating " + groupName + " with " + rvirtualdata);
- groupTO = updateGroup(patch).getAny();
- assertNotNull(groupTO);
- LOG.info("Updated " + groupName + " now has virAttrs " + groupTO.getVirAttrs());
+ rvirtualdata = createSchema(SchemaType.VIRTUAL, rvirtualdata);
+ }
+ assertNotNull(rvirtualdata);
- i++;
- } while (groupTO.getVirAttrs().isEmpty() && i < maxit);
- if (i == 5) {
- fail("Timeout when propagating " + groupName + " to LDAP");
- }
+ if (!"minimal group".equals(rvirtualdata.getAnyTypeClass())) {
+ LOG.warn("rvirtualdata not in minimal group, restoring");
- assertEquals(1, groupTO.getVirAttrs().size());
- assertEquals(rvirtualdata, groupTO.getVirAttrs().iterator().next().getValues().get(0));
- // -------------------------------------------
+ AnyTypeClassTO minimalGroup = anyTypeClassService.read("minimal group");
+ minimalGroup.getVirSchemas().add(rvirtualdata.getKey());
+ anyTypeClassService.update(minimalGroup);
- // -------------------------------------------
- // Create new user
- // -------------------------------------------
- UserTO userTO = UserITCase.getUniqueSampleTO("syncope453@syncope.apache.org");
- userTO.getPlainAttrs().add(attrTO("aLong", "123"));
- userTO.getResources().clear();
- userTO.getResources().add(resourceName);
- userTO.getVirAttrs().clear();
- userTO.getDerAttrs().clear();
- userTO.getMemberships().clear();
+ rvirtualdata = schemaService.read(SchemaType.VIRTUAL, rvirtualdata.getKey());
+ assertEquals("minimal group", rvirtualdata.getAnyTypeClass());
+ }
- userTO.getMemberships().add(new MembershipTO.Builder().group(groupTO.getKey()).build());
+ GroupTO groupTO = new GroupTO();
+ groupTO.setName(groupName);
+ groupTO.setRealm("/");
+ groupTO.getVirAttrs().add(attrTO(rvirtualdata.getKey(), "ml@group.it"));
+ groupTO.getResources().add(RESOURCE_NAME_LDAP);
+ groupTO = createGroup(groupTO).getAny();
+ groupKey = groupTO.getKey();
+ assertEquals(1, groupTO.getVirAttrs().size());
+ assertEquals("ml@group.it", groupTO.getVirAttrs().iterator().next().getValues().get(0));
+ // -------------------------------------------
+
+ // -------------------------------------------
+ // Create new user
+ // -------------------------------------------
+ UserTO userTO = UserITCase.getUniqueSampleTO("syncope453@syncope.apache.org");
+ userTO.getPlainAttrs().add(attrTO("aLong", "123"));
+ userTO.getResources().clear();
+ userTO.getResources().add(resourceName);
+ userTO.getVirAttrs().clear();
+ userTO.getDerAttrs().clear();
+ userTO.getMemberships().clear();
- ProvisioningResult<UserTO> result = createUser(userTO);
- assertEquals(2, result.getPropagationStatuses().size());
- assertEquals(PropagationTaskExecStatus.SUCCESS, result.getPropagationStatuses().get(0).getStatus());
- assertEquals(PropagationTaskExecStatus.SUCCESS, result.getPropagationStatuses().get(1).getStatus());
- userTO = result.getAny();
+ userTO.getMemberships().add(new MembershipTO.Builder().group(groupTO.getKey()).build());
- JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
+ ProvisioningResult<UserTO> result = createUser(userTO);
+ assertEquals(2, result.getPropagationStatuses().size());
+ assertEquals(PropagationTaskExecStatus.SUCCESS, result.getPropagationStatuses().get(0).getStatus());
+ assertEquals(PropagationTaskExecStatus.SUCCESS, result.getPropagationStatuses().get(1).getStatus());
+ userTO = result.getAny();
- Map<String, Object> actuals = jdbcTemplate.queryForMap(
- "SELECT id, surname, email FROM testsync WHERE id=?",
- new Object[] { Integer.parseInt(userTO.getPlainAttrMap().get("aLong").getValues().get(0)) });
+ JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
- assertEquals(userTO.getPlainAttrMap().get("aLong").getValues().get(0), actuals.get("id").toString());
- assertEquals(rvirtualdata, actuals.get("email"));
- // -------------------------------------------
+ Map<String, Object> actuals = jdbcTemplate.queryForMap(
+ "SELECT id, surname, email FROM testsync WHERE id=?",
+ new Object[] { Integer.parseInt(userTO.getPlainAttrMap().get("aLong").getValues().get(0)) });
- // -------------------------------------------
- // Delete resource and group ad-hoc
- // -------------------------------------------
- resourceService.delete(resourceName);
- groupService.delete(groupTO.getKey());
- // -------------------------------------------
+ assertEquals(userTO.getPlainAttrMap().get("aLong").getValues().get(0), actuals.get("id").toString());
+ assertEquals("ml@group.it", actuals.get("email"));
+ // -------------------------------------------
+ } finally {
+ // -------------------------------------------
+ // Delete resource and group ad-hoc
+ // -------------------------------------------
+ resourceService.delete(resourceName);
+ if (groupKey != null) {
+ groupService.delete(groupKey);
+ }
+ // -------------------------------------------
+ }
}
@Test