Revision: 180
Author: maestri.stefano
Date: Sat Apr 17 13:47:23 2010
Log: Fixes issue 39
http://code.google.com/p/testedby/source/detail?r=180
Modified:
/trunk/src/main/java/it/javalinux/testedby/metadata/StatusMetadata.java
/trunk/src/test/java/it/javalinux/testedby/metadata/StatusMetadataTest.java
=======================================
--- /trunk/src/main/java/it/javalinux/testedby/metadata/StatusMetadata.java
Wed Apr 14 09:27:15 2010
+++ /trunk/src/main/java/it/javalinux/testedby/metadata/StatusMetadata.java
Sat Apr 17 13:47:23 2010
@@ -20,6 +20,8 @@
*/
package it.javalinux.testedby.metadata;
+import java.util.Date;
+
/**
* The status of a link
*
@@ -43,10 +45,13 @@
private Class<?> upperMostClassInHierarchyDefiningThisMetadata;
+ private final Long creationDateInMillis;
+
private boolean onAbstract;
public StatusMetadata() {
super();
+ creationDateInMillis = (new Date()).getTime();
}
/**
@@ -62,6 +67,7 @@
this.fromAnnotation = fromAnnotation;
this.fromInstrumentation = fromInstrumentation;
this.passedOnLastRun = false;
+ creationDateInMillis = (new Date()).getTime();
}
/**
@@ -224,7 +230,11 @@
this.fromAnnotation |= r.isFromAnnotation();
this.fromInstrumentation |= r.isFromInstrumentation();
this.justCreated = this.justCreated && r.isJustCreated();
- this.passedOnLastRun |= r.isPassedOnLastRun();
+ if (creationDateInMillis > r.getCreationDateInMillis()) {
+ //do nothing this.passedOnLastRun is the one to be kept
+ } else {
+ this.passedOnLastRun = r.isPassedOnLastRun();
+ }
this.valid = this.valid && r.isValid();
return true;
} else {
@@ -271,4 +281,11 @@
public String toString() {
return "StatusMetadata [fromAnnotation=" + fromAnnotation + ",
fromInstrumentation=" + fromInstrumentation + ", justCreated=" +
justCreated + ", onAbstract=" + onAbstract + ", passedOnLastRun=" +
passedOnLastRun + ", upperMostClassInHierarchyDefiningThisMetadata=" +
upperMostClassInHierarchyDefiningThisMetadata + ", valid=" + valid + "]";
}
-}
+
+ /**
+ * @return creationDateInMillis
+ */
+ public Long getCreationDateInMillis() {
+ return creationDateInMillis;
+ }
+}
=======================================
---
/trunk/src/test/java/it/javalinux/testedby/metadata/StatusMetadataTest.java
Sat Apr 17 13:46:54 2010
+++
/trunk/src/test/java/it/javalinux/testedby/metadata/StatusMetadataTest.java
Sat Apr 17 13:47:23 2010
@@ -32,16 +32,39 @@
*/
public class StatusMetadataTest {
- /**
- * Test method for {@link
it.javalinux.testedby.metadata.StatusMetadata#merge(it.javalinux.testedby.metadata.Mergeable)}.
- */
+
@Test
- public void
mergeShouldSetPassedOnLastRunIfRightMergedPassedOnLastRun() {
+ public void
mergeShouldSetPassedOnLastRunIfLastCreatedPassedOnLastRun() throws
Exception {
StatusMetadata left = new StatusMetadata(true, true, true, true);
+ Thread.currentThread().sleep(1);
StatusMetadata right = new StatusMetadata(true, true, true, true);
+ left.failedOnLastRun();
right.passedOnLastRun();
assertThat(left.merge(right), is(true));
assertThat(left.isFailedOnLastRun(), is(false));
}
+
+ @Test
+ public void
mergeShouldSetFailedOnLastRunIfLastCreatedFailedOnLastRun() throws
Exception {
+ StatusMetadata left = new StatusMetadata(true, true, true, true);
+ Thread.currentThread().sleep(1);
+ StatusMetadata right = new StatusMetadata(true, true, true, true);
+ left.passedOnLastRun();
+ right.failedOnLastRun();
+ assertThat(left.merge(right), is(true));
+ assertThat(left.isFailedOnLastRun(), is(true));
+ }
+
+ @Test
+ public void mergeShouldNotSetPassedOnLastRunIfRightIsNotLastCreated()
throws Exception {
+ StatusMetadata right = new StatusMetadata(true, true, true, true);
+ Thread.currentThread().sleep(1);
+ StatusMetadata left = new StatusMetadata(true, true, true, true);
+ left.failedOnLastRun();
+ right.passedOnLastRun();
+ assertThat(left.merge(right), is(true));
+ assertThat(left.isFailedOnLastRun(), is(true));
+ }
+
}
--
You received this message because you are subscribed to the Google Groups "testedby-commit" group.
To post to this group, send email to
testedb...@googlegroups.com.
To unsubscribe from this group, send email to
testedby-comm...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/testedby-commit?hl=en.