>From 72dd9d071ce140f267b8b4effd34d122627135e6 Mon Sep 17 00:00:00 2001
From: Mark Struberg <struberg@yahoo.de>
Date: Mon, 15 Jun 2009 08:07:53 +0200
Subject: [PATCH] fixed toString for CommitTimeRevFilter + wrote JUnit tests for after, before and between walks
---
.../spearce/jgit/revwalk/RevWalkFilterTest.java | 62 ++++++++++++++++++++
.../jgit/revwalk/filter/CommitTimeRevFilter.java | 21 +++++--
2 files changed, 78 insertions(+), 5 deletions(-)
diff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/revwalk/RevWalkFilterTest.java b/org.spearce.jgit.test/tst/org/spearce/jgit/revwalk/RevWalkFilterTest.java
index 6a26d2e..c9ed18c 100644
--- a/org.spearce.jgit.test/tst/org/spearce/jgit/revwalk/RevWalkFilterTest.java
+++ b/org.spearce.jgit.test/tst/org/spearce/jgit/revwalk/RevWalkFilterTest.java
@@ -38,11 +38,13 @@
package org.spearce.jgit.revwalk;
import java.io.IOException;
+import java.util.Date;
import org.spearce.jgit.errors.IncorrectObjectTypeException;
import org.spearce.jgit.errors.MissingObjectException;
import org.spearce.jgit.errors.StopWalkException;
import org.spearce.jgit.revwalk.filter.AndRevFilter;
+import org.spearce.jgit.revwalk.filter.CommitTimeRevFilter;
import org.spearce.jgit.revwalk.filter.NotRevFilter;
import org.spearce.jgit.revwalk.filter.OrRevFilter;
import org.spearce.jgit.revwalk.filter.RevFilter;
@@ -215,6 +217,66 @@ public void testFilter_NO_MERGES() throws Exception {
assertCommit(a, rw.next());
assertNull(rw.next());
}
+
+ public void testCommitTimeRevFilter() throws Exception {
+ final RevCommit a = commit();
+ tick(100);
+
+ final RevCommit b = commit(a);
+ tick(100);
+
+ Date since = new Date(nowTick);
+ final RevCommit c1 = commit(b);
+ tick(100);
+
+ final RevCommit c2 = commit(b);
+ tick(100);
+
+ Date until = new Date(nowTick);
+ final RevCommit d = commit(c1, c2);
+ tick(100);
+
+ final RevCommit e = commit(d);
+
+ {
+ RevFilter after = CommitTimeRevFilter.after(since);
+ assertNotNull(after);
+ System.out.println(after.toString());
+ rw.setRevFilter(after);
+ markStart(e);
+ assertCommit(e, rw.next());
+ assertCommit(d, rw.next());
+ assertCommit(c2, rw.next());
+ assertCommit(c1, rw.next());
+ assertNull(rw.next());
+ }
+
+ {
+ RevFilter before = CommitTimeRevFilter.before(until);
+ assertNotNull(before);
+ System.out.println(before.toString());
+ rw.reset();
+ rw.setRevFilter(before);
+ markStart(e);
+ assertCommit(c2, rw.next());
+ assertCommit(c1, rw.next());
+ assertCommit(b, rw.next());
+ assertCommit(a, rw.next());
+ assertNull(rw.next());
+ }
+
+ {
+ RevFilter between = CommitTimeRevFilter.between(since, until);
+ assertNotNull(between);
+ System.out.println(between.toString());
+ rw.reset();
+ rw.setRevFilter(between);
+ markStart(e);
+ assertCommit(c2, rw.next());
+ assertCommit(c1, rw.next());
+ assertNull(rw.next());
+ }
+ }
private static class MyAll extends RevFilter {
@Override
diff --git a/org.spearce.jgit/src/org/spearce/jgit/revwalk/filter/CommitTimeRevFilter.java b/org.spearce.jgit/src/org/spearce/jgit/revwalk/filter/CommitTimeRevFilter.java
index 0aaa78d..2af9862 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/revwalk/filter/CommitTimeRevFilter.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/revwalk/filter/CommitTimeRevFilter.java
@@ -93,11 +93,6 @@ public RevFilter clone() {
return this;
}
- @Override
- public String toString() {
- return super.toString() + "(" + new Date(when * 1000) + ")";
- }
-
private static class Before extends CommitTimeRevFilter {
Before(final long ts) {
super(ts);
@@ -109,6 +104,11 @@ public boolean include(final RevWalk walker, final RevCommit cmit)
IncorrectObjectTypeException, IOException {
return cmit.getCommitTime() <= when;
}
+
+ @Override
+ public String toString() {
+ return super.toString() + "(" + new Date(when * 1000L) + ")";
+ }
}
private static class After extends CommitTimeRevFilter {
@@ -128,6 +128,11 @@ public boolean include(final RevWalk walker, final RevCommit cmit)
throw StopWalkException.INSTANCE;
return true;
}
+
+ @Override
+ public String toString() {
+ return super.toString() + "(" + new Date(when * 1000L) + ")";
+ }
}
private static class Between extends CommitTimeRevFilter {
@@ -144,6 +149,12 @@ public boolean include(final RevWalk walker, final RevCommit cmit)
IncorrectObjectTypeException, IOException {
return cmit.getCommitTime() <= until && cmit.getCommitTime() >= when;
}
+
+ @Override
+ public String toString() {
+ return super.toString() + "(" + new Date(when * 1000L) + " - " + new Date(until * 1000L) + ")";
+ }
+
}
}
--
1.6.0.6