Mercurial > hg4j
annotate test/org/tmatesoft/hg/test/TestStatus.java @ 74:6f1b88693d48
Complete refactoring to org.tmatesoft
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Mon, 24 Jan 2011 03:14:45 +0100 |
parents | 0e499fed9b3d |
children | e62f9638fb27 |
rev | line source |
---|---|
61
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
1 /* |
66
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
2 * Copyright (c) 2011 TMate Software Ltd |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
3 * |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
4 * This program is free software; you can redistribute it and/or modify |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
5 * it under the terms of the GNU General Public License as published by |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
6 * the Free Software Foundation; version 2 of the License. |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
7 * |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
8 * This program is distributed in the hope that it will be useful, |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
11 * GNU General Public License for more details. |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
12 * |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
13 * For information on how to redistribute this software under |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
14 * the terms of a license other than GNU General Public License |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
15 * contact TMate Software at support@svnkit.com |
61
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
16 */ |
66
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
17 package org.tmatesoft.hg.test; |
61
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
18 |
74
6f1b88693d48
Complete refactoring to org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
68
diff
changeset
|
19 import static org.tmatesoft.hg.repo.HgRepository.TIP; |
68
0e499fed9b3d
StatusCommand with tests. Extra constants to indicate common revision cases
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
66
diff
changeset
|
20 |
61
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
21 import java.util.Collection; |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
22 import java.util.LinkedList; |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
23 import java.util.List; |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
24 |
68
0e499fed9b3d
StatusCommand with tests. Extra constants to indicate common revision cases
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
66
diff
changeset
|
25 import org.tmatesoft.hg.core.StatusCommand; |
74
6f1b88693d48
Complete refactoring to org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
68
diff
changeset
|
26 import org.tmatesoft.hg.repo.HgRepository; |
6f1b88693d48
Complete refactoring to org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
68
diff
changeset
|
27 import org.tmatesoft.hg.repo.Lookup; |
6f1b88693d48
Complete refactoring to org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
68
diff
changeset
|
28 import org.tmatesoft.hg.repo.StatusCollector; |
6f1b88693d48
Complete refactoring to org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
68
diff
changeset
|
29 import org.tmatesoft.hg.repo.WorkingCopyStatusCollector; |
68
0e499fed9b3d
StatusCommand with tests. Extra constants to indicate common revision cases
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
66
diff
changeset
|
30 |
61
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
31 |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
32 /** |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
33 * |
66
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
34 * @author Artem Tikhomirov |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
35 * @author TMate Software Ltd. |
61
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
36 */ |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
37 public class TestStatus { |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
38 |
68
0e499fed9b3d
StatusCommand with tests. Extra constants to indicate common revision cases
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
66
diff
changeset
|
39 private final HgRepository repo; |
66
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
40 private StatusOutputParser statusParser; |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
41 private ExecHelper eh; |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
42 |
61
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
43 public static void main(String[] args) throws Exception { |
74
6f1b88693d48
Complete refactoring to org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
68
diff
changeset
|
44 HgRepository repo = new Lookup().detectFromWorkingDir(); |
66
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
45 TestStatus test = new TestStatus(repo); |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
46 test.testLowLevel(); |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
47 test.testStatusCommand(); |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
48 } |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
49 |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
50 public TestStatus(HgRepository hgRepo) { |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
51 repo = hgRepo; |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
52 statusParser = new StatusOutputParser(); |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
53 eh = new ExecHelper(statusParser, null); |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
54 } |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
55 |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
56 public void testLowLevel() throws Exception { |
74
6f1b88693d48
Complete refactoring to org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
68
diff
changeset
|
57 final WorkingCopyStatusCollector wcc = new WorkingCopyStatusCollector(repo); |
68
0e499fed9b3d
StatusCommand with tests. Extra constants to indicate common revision cases
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
66
diff
changeset
|
58 statusParser.reset(); |
61
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
59 eh.run("hg", "status", "-A"); |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
60 StatusCollector.Record r = wcc.status(HgRepository.TIP); |
62
25819103de17
Few more tests for status
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
61
diff
changeset
|
61 report("hg status -A", r, statusParser); |
25819103de17
Few more tests for status
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
61
diff
changeset
|
62 // |
25819103de17
Few more tests for status
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
61
diff
changeset
|
63 statusParser.reset(); |
25819103de17
Few more tests for status
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
61
diff
changeset
|
64 int revision = 3; |
25819103de17
Few more tests for status
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
61
diff
changeset
|
65 eh.run("hg", "status", "-A", "--rev", String.valueOf(revision)); |
25819103de17
Few more tests for status
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
61
diff
changeset
|
66 r = wcc.status(revision); |
25819103de17
Few more tests for status
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
61
diff
changeset
|
67 report("status -A --rev " + revision, r, statusParser); |
25819103de17
Few more tests for status
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
61
diff
changeset
|
68 // |
25819103de17
Few more tests for status
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
61
diff
changeset
|
69 statusParser.reset(); |
25819103de17
Few more tests for status
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
61
diff
changeset
|
70 eh.run("hg", "status", "-A", "--change", String.valueOf(revision)); |
25819103de17
Few more tests for status
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
61
diff
changeset
|
71 r = new StatusCollector.Record(); |
25819103de17
Few more tests for status
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
61
diff
changeset
|
72 new StatusCollector(repo).change(revision, r); |
25819103de17
Few more tests for status
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
61
diff
changeset
|
73 report("status -A --change " + revision, r, statusParser); |
25819103de17
Few more tests for status
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
61
diff
changeset
|
74 } |
25819103de17
Few more tests for status
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
61
diff
changeset
|
75 |
66
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
76 public void testStatusCommand() throws Exception { |
68
0e499fed9b3d
StatusCommand with tests. Extra constants to indicate common revision cases
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
66
diff
changeset
|
77 final StatusCommand sc = new StatusCommand(repo).all(); |
0e499fed9b3d
StatusCommand with tests. Extra constants to indicate common revision cases
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
66
diff
changeset
|
78 StatusCollector.Record r; |
0e499fed9b3d
StatusCommand with tests. Extra constants to indicate common revision cases
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
66
diff
changeset
|
79 statusParser.reset(); |
0e499fed9b3d
StatusCommand with tests. Extra constants to indicate common revision cases
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
66
diff
changeset
|
80 eh.run("hg", "status", "-A"); |
0e499fed9b3d
StatusCommand with tests. Extra constants to indicate common revision cases
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
66
diff
changeset
|
81 sc.execute(r = new StatusCollector.Record()); |
0e499fed9b3d
StatusCommand with tests. Extra constants to indicate common revision cases
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
66
diff
changeset
|
82 report("hg status -A", r, statusParser); |
0e499fed9b3d
StatusCommand with tests. Extra constants to indicate common revision cases
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
66
diff
changeset
|
83 // |
0e499fed9b3d
StatusCommand with tests. Extra constants to indicate common revision cases
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
66
diff
changeset
|
84 statusParser.reset(); |
0e499fed9b3d
StatusCommand with tests. Extra constants to indicate common revision cases
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
66
diff
changeset
|
85 int revision = 3; |
0e499fed9b3d
StatusCommand with tests. Extra constants to indicate common revision cases
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
66
diff
changeset
|
86 eh.run("hg", "status", "-A", "--rev", String.valueOf(revision)); |
0e499fed9b3d
StatusCommand with tests. Extra constants to indicate common revision cases
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
66
diff
changeset
|
87 sc.base(revision).execute(r = new StatusCollector.Record()); |
0e499fed9b3d
StatusCommand with tests. Extra constants to indicate common revision cases
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
66
diff
changeset
|
88 report("status -A --rev " + revision, r, statusParser); |
0e499fed9b3d
StatusCommand with tests. Extra constants to indicate common revision cases
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
66
diff
changeset
|
89 // |
0e499fed9b3d
StatusCommand with tests. Extra constants to indicate common revision cases
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
66
diff
changeset
|
90 statusParser.reset(); |
0e499fed9b3d
StatusCommand with tests. Extra constants to indicate common revision cases
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
66
diff
changeset
|
91 eh.run("hg", "status", "-A", "--change", String.valueOf(revision)); |
0e499fed9b3d
StatusCommand with tests. Extra constants to indicate common revision cases
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
66
diff
changeset
|
92 sc.base(TIP).revision(revision).execute(r = new StatusCollector.Record()); |
0e499fed9b3d
StatusCommand with tests. Extra constants to indicate common revision cases
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
66
diff
changeset
|
93 report("status -A --change " + revision, r, statusParser); |
0e499fed9b3d
StatusCommand with tests. Extra constants to indicate common revision cases
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
66
diff
changeset
|
94 |
0e499fed9b3d
StatusCommand with tests. Extra constants to indicate common revision cases
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
66
diff
changeset
|
95 // TODO check not -A, but defaults()/custom set of modifications |
66
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
96 } |
52dc3f4cfc76
Primitive test suite in org.tmatesoft
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
62
diff
changeset
|
97 |
62
25819103de17
Few more tests for status
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
61
diff
changeset
|
98 private static void report(String what, StatusCollector.Record r, StatusOutputParser statusParser) { |
25819103de17
Few more tests for status
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
61
diff
changeset
|
99 System.out.println(">>>" + what); |
61
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
100 reportNotEqual("MODIFIED", r.getModified(), statusParser.getModified()); |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
101 reportNotEqual("ADDED", r.getAdded(), statusParser.getAdded()); |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
102 reportNotEqual("REMOVED", r.getRemoved(), statusParser.getRemoved()); |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
103 reportNotEqual("CLEAN", r.getClean(), statusParser.getClean()); |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
104 reportNotEqual("IGNORED", r.getIgnored(), statusParser.getIgnored()); |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
105 reportNotEqual("MISSING", r.getMissing(), statusParser.getMissing()); |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
106 reportNotEqual("UNKNOWN", r.getUnknown(), statusParser.getUnknown()); |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
107 // TODO compare equals |
62
25819103de17
Few more tests for status
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
61
diff
changeset
|
108 System.out.println("<<<\n"); |
61
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
109 } |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
110 |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
111 private static <T> void reportNotEqual(String what, Collection<T> l1, Collection<T> l2) { |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
112 List<T> diff = difference(l1, l2); |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
113 System.out.print(what); |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
114 if (!diff.isEmpty()) { |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
115 System.out.print(" are NOT the same: "); |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
116 for (T t : diff) { |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
117 System.out.print(t); |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
118 System.out.print(", "); |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
119 } |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
120 System.out.println(); |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
121 } else { |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
122 System.out.println(" are the same"); |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
123 } |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
124 } |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
125 |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
126 private static <T> List<T> difference(Collection<T> l1, Collection<T> l2) { |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
127 LinkedList<T> result = new LinkedList<T>(l2); |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
128 for (T t : l1) { |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
129 if (l2.contains(t)) { |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
130 result.remove(t); |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
131 } else { |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
132 result.add(t); |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
133 } |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
134 } |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
135 return result; |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
136 } |
fac8e7fcc8b0
Simple test framework - capable of parsing Hg cmdline output to compare with Java result
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
137 } |