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 2017/05/10 06:34:23 UTC
[2/2] syncope git commit: Some IT: more robustness
Some IT: more robustness
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/9c180285
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/9c180285
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/9c180285
Branch: refs/heads/master
Commit: 9c180285b624b2e6cc3ff4639055b4e3ecd6c75b
Parents: c1cd3fe
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Wed May 10 08:33:57 2017 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Wed May 10 08:34:11 2017 +0200
----------------------------------------------------------------------
.../org/apache/syncope/fit/AbstractITCase.java | 33 ++++++++++++++++++++
.../syncope/fit/core/AuthenticationITCase.java | 4 +--
.../syncope/fit/core/MembershipITCase.java | 4 +--
.../apache/syncope/fit/core/PullTaskITCase.java | 26 ++++++---------
.../syncope/fit/core/UserIssuesITCase.java | 19 ++++++-----
.../apache/syncope/fit/core/UserSelfITCase.java | 8 ++---
.../syncope/fit/core/UserWorkflowITCase.java | 12 ++-----
.../apache/syncope/fit/core/VirAttrITCase.java | 24 +++++++-------
8 files changed, 76 insertions(+), 54 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/9c180285/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
index 86e9c74..1ef0d32 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
@@ -19,6 +19,7 @@
package org.apache.syncope.fit;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
import java.io.InputStream;
import java.net.URI;
@@ -92,6 +93,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.junit.FixMethodOrder;
import org.junit.runners.MethodSorters;
+import org.springframework.jdbc.core.JdbcTemplate;
@FixMethodOrder(MethodSorters.JVM)
public abstract class AbstractITCase {
@@ -488,4 +490,35 @@ public abstract class AbstractITCase {
}
}
}
+
+ protected <T> T queryForObject(
+ final JdbcTemplate jdbcTemplate,
+ final int maxWaitSeconds,
+ final String sql, final Class<T> requiredType, final Object... args) {
+
+ int i = 0;
+ int maxit = maxWaitSeconds;
+
+ T object = null;
+
+ do {
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ }
+
+ try {
+ object = jdbcTemplate.queryForObject(sql, requiredType, args);
+ } catch (Exception e) {
+ LOG.warn("While executing query {}", sql, e);
+ }
+
+ i++;
+ } while (object == null && i < maxit);
+ if (object == null) {
+ fail("Timeout when executing query " + sql);
+ }
+
+ return object;
+ }
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9c180285/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthenticationITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthenticationITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthenticationITCase.java
index 74a8924..55d0cd3 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthenticationITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthenticationITCase.java
@@ -566,8 +566,8 @@ public class AuthenticationITCase extends AbstractITCase {
// 4. check that the db resource has still the initial password value
final JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
- String value = jdbcTemplate.queryForObject(
- "SELECT PASSWORD FROM test WHERE ID=?", String.class, user.getUsername());
+ String value = queryForObject(
+ jdbcTemplate, 50, "SELECT PASSWORD FROM test WHERE ID=?", String.class, user.getUsername());
assertEquals(Encryptor.getInstance().encode("password123", CipherAlgorithm.SHA1), value.toUpperCase());
// 5. successfully authenticate with old (on db resource) and new (on internal storage) password values
http://git-wip-us.apache.org/repos/asf/syncope/blob/9c180285/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MembershipITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MembershipITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MembershipITCase.java
index 577af66..74a78d3 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MembershipITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MembershipITCase.java
@@ -277,8 +277,8 @@ public class MembershipITCase extends AbstractITCase {
// 2. verify that user was found on resource
JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
- String idOnResource = jdbcTemplate.queryForObject(
- "SELECT id FROM testpull WHERE id=?", String.class, "5432");
+ String idOnResource = queryForObject(
+ jdbcTemplate, 50, "SELECT id FROM testpull WHERE id=?", String.class, "5432");
assertEquals("5432", idOnResource);
// 3. unlink user from resource, then remove it
http://git-wip-us.apache.org/repos/asf/syncope/blob/9c180285/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
index d1710ee..8458767 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
@@ -94,7 +94,6 @@ import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@@ -925,15 +924,10 @@ public class PullTaskITCase extends AbstractTaskITCase {
assertEquals("virtualvalue", userTO.getVirAttrMap().get("virtualdata").getValues().get(0));
// ...and that propagation to db succeeded
- try {
- JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
-
- String value = jdbcTemplate.queryForObject(
- "SELECT USERNAME FROM testpull WHERE ID=?", String.class, userTO.getKey());
- assertEquals("virtualvalue", value);
- } catch (EmptyResultDataAccessException e) {
- fail();
- }
+ JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
+ String value = queryForObject(
+ jdbcTemplate, 50, "SELECT USERNAME FROM testpull WHERE ID=?", String.class, userTO.getKey());
+ assertEquals("virtualvalue", value);
}
@Test
@@ -948,8 +942,8 @@ public class PullTaskITCase extends AbstractTaskITCase {
// 2. Check that the DB resource has the correct password
JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
- String value = jdbcTemplate.queryForObject(
- "SELECT PASSWORD FROM test WHERE ID=?", String.class, user.getUsername());
+ String value = queryForObject(
+ jdbcTemplate, 50, "SELECT PASSWORD FROM test WHERE ID=?", String.class, user.getUsername());
assertEquals(Encryptor.getInstance().encode("security123", CipherAlgorithm.SHA1), value.toUpperCase());
// 3. Update the password in the DB
@@ -1135,8 +1129,8 @@ public class PullTaskITCase extends AbstractTaskITCase {
// ...and propagated
JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
- String email = jdbcTemplate.queryForObject(
- "SELECT EMAIL FROM TESTPULL WHERE USERNAME=?", String.class, user.getUsername());
+ String email = queryForObject(
+ jdbcTemplate, 50, "SELECT EMAIL FROM TESTPULL WHERE USERNAME=?", String.class, user.getUsername());
assertEquals(user.getPlainAttrMap().get("email").getValues().get(0), email);
// 4. update the user on the external resource
@@ -1157,8 +1151,8 @@ public class PullTaskITCase extends AbstractTaskITCase {
assertEquals("pullFromLDAP2@syncope.apache.org", user.getPlainAttrMap().get("email").getValues().get(0));
// ...and propagated
- email = jdbcTemplate.queryForObject(
- "SELECT EMAIL FROM TESTPULL WHERE USERNAME=?", String.class, user.getUsername());
+ email = queryForObject(
+ jdbcTemplate, 50, "SELECT EMAIL FROM TESTPULL WHERE USERNAME=?", String.class, user.getUsername());
assertEquals(user.getPlainAttrMap().get("email").getValues().get(0), email);
} catch (Exception e) {
LOG.error("Unexpected during issueSYNCOPE1062()", e);
http://git-wip-us.apache.org/repos/asf/syncope/blob/9c180285/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java
index f143290..a831dd0 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java
@@ -140,7 +140,7 @@ public class UserIssuesITCase extends AbstractITCase {
updateUser(userPatch);
}
- @Test(expected = EmptyResultDataAccessException.class)
+ @Test
public void issue213() {
UserTO userTO = UserITCase.getUniqueSampleTO("issue213@syncope.apache.org");
userTO.getResources().add(RESOURCE_NAME_TESTDB);
@@ -150,14 +150,11 @@ public class UserIssuesITCase extends AbstractITCase {
assertEquals(1, userTO.getResources().size());
JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
-
- String username = jdbcTemplate.queryForObject("SELECT id FROM test WHERE id=?", String.class,
- userTO.getUsername());
-
+ String username = queryForObject(
+ jdbcTemplate, 50, "SELECT id FROM test WHERE id=?", String.class, userTO.getUsername());
assertEquals(userTO.getUsername(), username);
UserPatch userPatch = new UserPatch();
-
userPatch.setKey(userTO.getKey());
userPatch.getResources().add(
new StringPatchItem.Builder().operation(PatchOperation.DELETE).value(RESOURCE_NAME_TESTDB).build());
@@ -165,7 +162,13 @@ public class UserIssuesITCase extends AbstractITCase {
userTO = updateUser(userPatch).getEntity();
assertTrue(userTO.getResources().isEmpty());
- jdbcTemplate.queryForObject("SELECT id FROM test WHERE id=?", String.class, userTO.getUsername());
+ Exception exception = null;
+ try {
+ jdbcTemplate.queryForObject("SELECT id FROM test WHERE id=?", String.class, userTO.getUsername());
+ } catch (EmptyResultDataAccessException e) {
+ exception = e;
+ }
+ assertNotNull(exception);
}
@Test
@@ -740,7 +743,7 @@ public class UserIssuesITCase extends AbstractITCase {
userPatch.setKey(userTO.getKey());
userPatch.setPassword(
new PasswordPatch.Builder().value(getUUIDString() + "abbcbcbddd123").resource(RESOURCE_NAME_TESTDB).
- build());
+ build());
result = updateUser(userPatch);
assertEquals(RESOURCE_NAME_TESTDB, userTO.getResources().iterator().next());
http://git-wip-us.apache.org/repos/asf/syncope/blob/9c180285/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserSelfITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserSelfITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserSelfITCase.java
index b7b6f56..7b633a5 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserSelfITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserSelfITCase.java
@@ -277,8 +277,8 @@ public class UserSelfITCase extends AbstractITCase {
// verify propagation (including password) on external db
JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
- String pwdOnResource = jdbcTemplate.queryForObject("SELECT password FROM test WHERE id=?", String.class,
- user.getUsername());
+ String pwdOnResource = queryForObject(
+ jdbcTemplate, 50, "SELECT password FROM test WHERE id=?", String.class, user.getUsername());
assertTrue(StringUtils.isNotBlank(pwdOnResource));
// 2. verify that new user is able to authenticate
@@ -317,8 +317,8 @@ public class UserSelfITCase extends AbstractITCase {
assertNull(read.getToken());
// 7. verify that password was changed on external resource
- String newPwdOnResource = jdbcTemplate.queryForObject("SELECT password FROM test WHERE id=?", String.class,
- user.getUsername());
+ String newPwdOnResource = queryForObject(
+ jdbcTemplate, 50, "SELECT password FROM test WHERE id=?", String.class, user.getUsername());
assertTrue(StringUtils.isNotBlank(newPwdOnResource));
assertNotEquals(pwdOnResource, newPwdOnResource);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9c180285/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserWorkflowITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserWorkflowITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserWorkflowITCase.java
index 53b9303..31a3e3d 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserWorkflowITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserWorkflowITCase.java
@@ -201,15 +201,9 @@ public class UserWorkflowITCase extends AbstractITCase {
assertEquals("active", userTO.getStatus());
assertEquals(Collections.singleton(RESOURCE_NAME_TESTDB), userTO.getResources());
- exception = null;
- try {
- final String username = jdbcTemplate.queryForObject("SELECT id FROM test WHERE id=?", String.class,
- userTO.getUsername());
- assertEquals(userTO.getUsername(), username);
- } catch (EmptyResultDataAccessException e) {
- exception = e;
- }
- assertNull(exception);
+ String username = queryForObject(
+ jdbcTemplate, 50, "SELECT id FROM test WHERE id=?", String.class, userTO.getUsername());
+ assertEquals(userTO.getUsername(), username);
// 6. update user
UserPatch userPatch = new UserPatch();
http://git-wip-us.apache.org/repos/asf/syncope/blob/9c180285/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 accf2a7..97ebbc0 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
@@ -236,15 +236,14 @@ public class VirAttrITCase extends AbstractITCase {
// 3. update virtual attribute directly
JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
-
- String value = jdbcTemplate.queryForObject(
- "SELECT USERNAME FROM testpull WHERE ID=?", String.class, actual.getKey());
+ String value = queryForObject(
+ jdbcTemplate, 50, "SELECT USERNAME FROM testpull WHERE ID=?", String.class, actual.getKey());
assertEquals("virattrcache", value);
jdbcTemplate.update("UPDATE testpull set USERNAME='virattrcache2' WHERE ID=?", actual.getKey());
- value = jdbcTemplate.queryForObject(
- "SELECT USERNAME FROM testpull WHERE ID=?", String.class, actual.getKey());
+ value = queryForObject(
+ jdbcTemplate, 50, "SELECT USERNAME FROM testpull WHERE ID=?", String.class, actual.getKey());
assertEquals("virattrcache2", value);
// 4. check for cached attribute value
@@ -400,15 +399,14 @@ public class VirAttrITCase extends AbstractITCase {
// 4. update value on external resource
// ----------------------------------------
JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
-
- String value = jdbcTemplate.queryForObject(
- "SELECT USERNAME FROM testpull WHERE ID=?", String.class, userTO.getKey());
+ String value = queryForObject(
+ jdbcTemplate, 50, "SELECT USERNAME FROM testpull WHERE ID=?", String.class, userTO.getKey());
assertEquals("virattrcache", value);
jdbcTemplate.update("UPDATE testpull set USERNAME='virattrcache2' WHERE ID=?", userTO.getKey());
- value = jdbcTemplate.queryForObject(
- "SELECT USERNAME FROM testpull WHERE ID=?", String.class, userTO.getKey());
+ value = queryForObject(
+ jdbcTemplate, 50, "SELECT USERNAME FROM testpull WHERE ID=?", String.class, userTO.getKey());
assertEquals("virattrcache2", value);
// ----------------------------------------
@@ -702,9 +700,9 @@ public class VirAttrITCase extends AbstractITCase {
// modify virtual attribute
userPatch.getVirAttrs().add(
new AttrTO.Builder().schema(virSchema.getKey()).
- value("test@issue691.dom3.org").
- value("test@issue691.dom4.org").
- build());
+ value("test@issue691.dom3.org").
+ value("test@issue691.dom4.org").
+ build());
UserTO updated = updateUser(userPatch).getEntity();
assertNotNull(updated);