1 | |
|
2 | |
|
3 | |
|
4 | |
|
5 | |
|
6 | |
|
7 | |
|
8 | |
|
9 | |
|
10 | |
|
11 | |
|
12 | |
|
13 | |
|
14 | |
|
15 | |
|
16 | |
|
17 | |
|
18 | |
|
19 | |
|
20 | |
|
21 | |
|
22 | |
|
23 | |
|
24 | |
|
25 | |
|
26 | |
|
27 | |
|
28 | |
|
29 | |
|
30 | |
|
31 | |
|
32 | |
|
33 | |
package com.jeantessier.diff; |
34 | |
|
35 | |
import java.io.*; |
36 | |
|
37 | 2 | public class TestDifferencesFactoryWithFilter extends TestDifferencesFactoryBase { |
38 | |
private StringBuffer buffer; |
39 | |
private MockDifferenceStrategy mockStrategy; |
40 | |
private ListBasedDifferenceStrategy strategy; |
41 | |
private DifferencesFactory factory; |
42 | |
|
43 | |
protected void setUp() throws Exception { |
44 | 2 | super.setUp(); |
45 | |
|
46 | 2 | buffer = new StringBuffer(); |
47 | 2 | mockStrategy = new MockDifferenceStrategy(new APIDifferenceStrategy(new NoDifferenceStrategy())); |
48 | 2 | strategy = new ListBasedDifferenceStrategy(mockStrategy, new BufferedReader(new StringReader(""))); |
49 | 2 | factory = new DifferencesFactory(strategy); |
50 | 2 | } |
51 | |
|
52 | |
public void testEmptyFilter() throws IOException { |
53 | 1 | ProjectDifferences differences = getDifferences(); |
54 | |
|
55 | 1 | assertTrue("IsEmpty()", differences.getPackageDifferences().isEmpty()); |
56 | |
|
57 | 1 | assertEquals("package", 0, mockStrategy.getPackageDifferentCount()); |
58 | 1 | assertEquals("class", 0, mockStrategy.getClassDifferentCount()); |
59 | 1 | assertEquals("field", 0, mockStrategy.getFieldDifferentCount()); |
60 | 1 | assertEquals("constant", 0, mockStrategy.getConstantValueDifferentCount()); |
61 | 1 | assertEquals("method", 0, mockStrategy.getMethodDifferentCount()); |
62 | 1 | assertEquals("code", 0, mockStrategy.getCodeDifferentCount()); |
63 | 1 | } |
64 | |
|
65 | |
public void testFilter() throws IOException { |
66 | 1 | buffer.append("ModifiedPackage\n"); |
67 | 1 | buffer.append("ModifiedPackage.ModifiedClass\n"); |
68 | 1 | buffer.append("ModifiedPackage.ModifiedClass.modifiedField\n"); |
69 | 1 | buffer.append("ModifiedPackage.ModifiedClass.modifiedMethod()\n"); |
70 | |
|
71 | 1 | ProjectDifferences differences = getDifferences(); |
72 | 1 | assertEquals("Nb packages", 1, differences.getPackageDifferences().size()); |
73 | |
|
74 | 1 | PackageDifferences modifiedPackage = (PackageDifferences) find("ModifiedPackage", differences.getPackageDifferences()); |
75 | 1 | assertEquals("Nb classes", 1, modifiedPackage.getClassDifferences().size()); |
76 | |
|
77 | 1 | ClassDifferences modifedClass = (ClassDifferences) find("ModifiedPackage.ModifiedClass", modifiedPackage.getClassDifferences()); |
78 | 1 | assertEquals("Nb features", 2, modifedClass.getFeatureDifferences().size()); |
79 | |
|
80 | 1 | assertEquals("package", 1, mockStrategy.getPackageDifferentCount()); |
81 | 1 | assertEquals("class", 1, mockStrategy.getClassDifferentCount()); |
82 | 1 | assertEquals("field", 1, mockStrategy.getFieldDifferentCount()); |
83 | 1 | assertEquals("constant", 1, mockStrategy.getConstantValueDifferentCount()); |
84 | 1 | assertEquals("method", 1, mockStrategy.getMethodDifferentCount()); |
85 | 1 | assertEquals("code", 1, mockStrategy.getCodeDifferentCount()); |
86 | 1 | } |
87 | |
|
88 | |
private ProjectDifferences getDifferences() throws IOException { |
89 | 2 | strategy.load(new BufferedReader(new StringReader(buffer.toString()))); |
90 | 2 | return (ProjectDifferences) factory.createProjectDifferences("test", "old", getOldPackages(), "new", getNewPackages()); |
91 | |
} |
92 | |
} |