1
2
3
4
5
6
7 package net.sourceforge.addam.ddlrun.filters;
8
9 import junit.framework.TestCase;
10
11 import java.util.Arrays;
12 import java.util.List;
13 import java.util.Iterator;
14
15 import net.sourceforge.addam.ddlrun.filters.DifferenceFilter;
16
17 public class DifferenceFilterUTEST extends TestCase {
18
19 private List itemsToRemove = Arrays.asList(new String[]{
20 "script1.sql",
21 "script2.sql",
22 });
23
24 public void testEmptyLines() {
25 DifferenceFilter filter = new DifferenceFilter(itemsToRemove, true);
26 List allItems = Arrays.asList(new String[]{
27 "",
28 " ",
29 });
30 Iterator desiredItems = filter.getIterator(allItems);
31 assertEquals(false, desiredItems.hasNext());
32 }
33
34 public void testComments() {
35 DifferenceFilter filter = new DifferenceFilter(itemsToRemove, true);
36 List allItems = Arrays.asList(new String[]{
37 "-- ignore this one",
38 "script1.sql",
39 "-- ignore this one too",
40 });
41
42 Iterator desiredItems = filter.getIterator(allItems);
43 assertEquals(false, desiredItems.hasNext());
44 }
45
46 public void testExpectedUsage() {
47 DifferenceFilter filter = new DifferenceFilter(itemsToRemove, true);
48 List allItems = Arrays.asList(new String[]{
49 "-- comment for script1",
50 "script1.sql",
51 "",
52 "-- comment for script2",
53 "script2.sql",
54 "",
55 "-- comment for script3",
56 "script3.sql",
57 "-- comment for script4,5",
58 "script4.sql",
59 "script5.sql",
60 "-- these are dupes and should be ignored",
61 "script4.sql",
62 "script5.sql"
63 });
64
65 Iterator desiredItems = filter.getIterator(allItems);
66 assertEquals("script3.sql", desiredItems.next());
67 assertEquals("script4.sql", desiredItems.next());
68 assertEquals("script5.sql", desiredItems.next());
69 assertEquals(false, desiredItems.hasNext());
70 }
71
72 public void testNoIgnoreDupes() {
73 DifferenceFilter filter = new DifferenceFilter(itemsToRemove, false);
74 List allItems = Arrays.asList(new String[]{
75 "-- comment for script1",
76 "script1.sql",
77 "",
78 "-- comment for script2",
79 "script2.sql",
80 "",
81 "-- comment for script3",
82 "script3.sql",
83 "-- comment for script4,5",
84 "script4.sql",
85 "script5.sql",
86 "-- these are dupes but should NOT be ignored",
87 "script4.sql",
88 "script5.sql"
89 });
90
91 Iterator desiredItems = filter.getIterator(allItems);
92 assertEquals("script3.sql", desiredItems.next());
93 assertEquals("script4.sql", desiredItems.next());
94 assertEquals("script5.sql", desiredItems.next());
95 assertEquals("script4.sql", desiredItems.next());
96 assertEquals("script5.sql", desiredItems.next());
97 assertEquals(false, desiredItems.hasNext());
98 }
99 }