r1844 - in trunk/topia-service-replication/src: main/java/org/nuiton/topia/replication/model test/java/org/nuiton/topia/replication
Author: tchemit Date: 2010-03-17 01:18:04 +0100 (Wed, 17 Mar 2010) New Revision: 1844 Log: improve code and tester Modified: trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/model/ReplicationModel.java trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/model/ReplicationNode.java trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/AbstractReplicationEngineTest.java Modified: trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/model/ReplicationModel.java =================================================================== --- trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/model/ReplicationModel.java 2010-03-15 10:57:51 UTC (rev 1843) +++ trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/model/ReplicationModel.java 2010-03-17 00:18:04 UTC (rev 1844) @@ -72,34 +72,34 @@ public ReplicationModel(TopiaEntityEnum[] contracts, Set<Class<? extends TopiaEntity>> types, String... topiaIds) { this.contracts = contracts; this.topiaIds = topiaIds; - this.replicateAll = false; - this.nodes = new LinkedHashMap<Class<? extends TopiaEntity>, ReplicationNode>(); - this.order = new ArrayList<ReplicationNode>(); + replicateAll = false; + nodes = new LinkedHashMap<Class<? extends TopiaEntity>, ReplicationNode>(); + order = new ArrayList<ReplicationNode>(); Map<Class<? extends TopiaEntity>, ReplicationNode> tmpNodes = new HashMap<Class<? extends TopiaEntity>, ReplicationNode>(); for (Class<? extends TopiaEntity> k : types) { TopiaEntityEnum e = TopiaEntityHelper.getEntityEnum(k, contracts); ReplicationNode replicationNode = new ReplicationNode(e); tmpNodes.put(k, replicationNode); } - this.nodes = Collections.unmodifiableMap(tmpNodes); + nodes = Collections.unmodifiableMap(tmpNodes); } public ReplicationModel(TopiaEntityEnum[] contracts, boolean replicateAll, String... topiaIds) { this.contracts = contracts; this.topiaIds = topiaIds; this.replicateAll = replicateAll; - this.nodes = new LinkedHashMap<Class<? extends TopiaEntity>, ReplicationNode>(); - this.order = new ArrayList<ReplicationNode>(); + nodes = new LinkedHashMap<Class<? extends TopiaEntity>, ReplicationNode>(); + order = new ArrayList<ReplicationNode>(); Map<Class<? extends TopiaEntity>, ReplicationNode> tmpNodes = new HashMap<Class<? extends TopiaEntity>, ReplicationNode>(); for (TopiaEntityEnum e : contracts) { ReplicationNode replicationNode = new ReplicationNode(e); tmpNodes.put(e.getContract(), replicationNode); if (!replicateAll) { // mode restreint : l'ordre est induit par l'ordre sur les contrats passes - this.order.add(replicationNode); + order.add(replicationNode); } } - this.nodes = Collections.unmodifiableMap(tmpNodes); + nodes = Collections.unmodifiableMap(tmpNodes); } Modified: trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/model/ReplicationNode.java =================================================================== --- trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/model/ReplicationNode.java 2010-03-15 10:57:51 UTC (rev 1843) +++ trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/model/ReplicationNode.java 2010-03-17 00:18:04 UTC (rev 1844) @@ -75,13 +75,13 @@ public ReplicationNode(TopiaEntityEnum contract) { this.contract = contract; - this.operator = EntityOperatorStore.getOperator(contract); - this.associations = new HashMap<String, ReplicationNode>(); - this.dependencies = new HashMap<String, ReplicationNode>(); - this.shell = new HashSet<ReplicationNode>(); - this.associationsToDettach = new HashSet<String>(); - this.dependenciesToDettach = new HashSet<String>(); - this.operations = new ArrayList<ReplicationOperationDef>(); + operator = EntityOperatorStore.getOperator(contract); + associations = new HashMap<String, ReplicationNode>(); + dependencies = new HashMap<String, ReplicationNode>(); + shell = new HashSet<ReplicationNode>(); + associationsToDettach = new HashSet<String>(); + dependenciesToDettach = new HashSet<String>(); + operations = new ArrayList<ReplicationOperationDef>(); if (log.isTraceEnabled()) { log.trace("new node : " + this); } @@ -209,14 +209,14 @@ if (getClass() != obj.getClass()) { return false; } - final ReplicationNode other = (ReplicationNode) obj; - return this.contract == other.contract; + ReplicationNode other = (ReplicationNode) obj; + return contract == other.contract; } @Override public int hashCode() { int hash = 7; - hash = 37 * hash + (this.contract.hashCode()); + hash = 37 * hash + contract.hashCode(); return hash; } Modified: trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/AbstractReplicationEngineTest.java =================================================================== --- trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/AbstractReplicationEngineTest.java 2010-03-15 10:57:51 UTC (rev 1843) +++ trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/AbstractReplicationEngineTest.java 2010-03-17 00:18:04 UTC (rev 1844) @@ -57,7 +57,7 @@ protected TopiaContextImplementor dstCtxt; protected TopiaReplicationImplementor service; protected ReplicationModel model; - static private boolean init ; + static protected boolean init ; static private Long testsTimeStamp; static private File testsBasedir; static private final String TEST_BASEDIR = "target%1$ssurefire-tests%1$s%2$td_%2$tm_%2$tY%1$s%2$tH_%2$tM_%2$tS"; @@ -79,8 +79,13 @@ if (!init) { I18n.init(Locale.FRANCE); - - context = createDb("source"); + + try { + context = createDb("source"); + } catch (Exception e) { + getLog().error("could not create db source.", e); + throw e; + } init = true; } @@ -185,7 +190,10 @@ Set<?> detectTypes; detectTypes = service.detectTypes(getContracts(), entity.getTopiaId()); - assertEquals(expectedCouple.length, detectTypes.size()); + assertEquals("expected types : "+ + Arrays.toString(expectedCouple) + + " but was "+detectTypes, + expectedCouple.length, detectTypes.size()); for (Object o : expectedCouple) { assertTrue(detectTypes.contains(o)); } @@ -247,7 +255,10 @@ entity.getClass(), getContracts()); assertNotNull(c); shell = model.getNode(c.getContract()).getShell(); - assertEquals(expected.length, shell.size()); + assertEquals( + "expected shell : "+ Arrays.toString(expected) + ", but was " + + shell, expected.length, shell.size()); + for (int i = 0, j = expected.length; i < j; i++) { TopiaEntityEnum type = expected[i]; ReplicationNode node = model.getNode(type.getContract()); @@ -256,9 +267,9 @@ } } - protected void detectDependencies(TopiaEntity entity, - TopiaEntityEnum[]... expected) throws - TopiaException { + protected void detectDependencies( + TopiaEntity entity, + TopiaEntityEnum[]... expected) throws TopiaException { createModel(entity); model.detectAssociations(); @@ -440,7 +451,13 @@ protected void assertDbEquals(TopiaEntityEnum[] contracts, TopiaContextImplementor ctxt, TopiaContextImplementor ctxt2) throws TopiaException { Set<String> ids = new HashSet<String>(); + if (getLog().isInfoEnabled()) { + getLog().info("will verify db for contracts "+ Arrays.toString(contracts)); + } for (TopiaEntityEnum c : contracts) { + if (getLog().isDebugEnabled()) { + getLog().debug("verify for contract " + c); + } TopiaDAO<? extends TopiaEntity> daoSrc = ctxt.getDAO(c.getContract()); TopiaDAO<? extends TopiaEntity> daoDst = ctxt2.getDAO(c.getContract()); long nbSrc = daoSrc.size(); @@ -452,6 +469,9 @@ Collections.sort(idsDst); assertEquals(idsSrc, idsDst); for (String id : idsSrc) { + if (getLog().isDebugEnabled()) { + getLog().debug("verify for entity " + id); + } TopiaEntity eSrc = daoSrc.findByTopiaId(id); TopiaEntity eDst = daoDst.findByTopiaId(id); assertEquals(eSrc, eDst); @@ -476,6 +496,14 @@ getLog().debug("expected : " + expected + " / actual " + actual); } TopiaEntityEnum contract = TopiaEntityHelper.getEntityEnum(expected.getClass(), getContracts()); + if (contract==null) { + // this type of entity in not dealed here... + getLog().debug("untested property type " + expected.getClass()); + return; + } + Assert.assertNotNull( + "contract not found for "+ expected.getClass() + " in " + + Arrays.toString(getContracts()), contract); EntityOperator<TopiaEntity> operator = EntityOperatorStore.getOperator(contract); List<String> associationProperties = operator.getAssociationProperties(); for (String name : associationProperties) {
participants (1)
-
tchemit@users.nuiton.org