001: package com.mockrunner.test.gen;
002:
003: import java.util.ArrayList;
004: import java.util.Iterator;
005: import java.util.List;
006: import java.util.Set;
007:
008: import com.mockrunner.gen.proc.PackageImportSorter;
009:
010: import junit.framework.TestCase;
011:
012: public class PackageImportSorterTest extends TestCase {
013: private PackageImportSorter sorter;
014:
015: protected void setUp() throws Exception {
016: sorter = new PackageImportSorter();
017: }
018:
019: private List getMatchingTestList() {
020: List imports = new ArrayList();
021: imports.add("com.abc.base.Base");
022: imports.add("java.util.List");
023: imports.add("com.mockrunner.struts.ActionTestCaseAdapter");
024: imports.add("java.util.Enumeration");
025: imports.add("javax.servlet.jsp.JspException");
026: imports.add("org.apache.commons.beanutils.BeanUtils");
027: imports.add("javax.sql.DataSource");
028: imports.add("java.io.BufferedWriter");
029: imports.add("org.apache.struts.action.DynaActionFormClass");
030: imports.add("org.mypack.TestClass");
031: imports.add("javax.servlet.ServletRequest");
032: imports.add("javax.swing.Box");
033: imports.add("java.net.URL");
034: imports.add("com.mockrunner.test.gen.PackageImportSorterTest");
035: return imports;
036: }
037:
038: private List getNonMatchingTestList() {
039: List imports = new ArrayList();
040: imports.add("co.bc.DEF");
041: imports.add("co.ac.ABC");
042: imports.add("abc.def.Base");
043: imports.add("zzzz.yyy.YYY");
044: imports.add("uuu.ooo.PPP");
045: imports.add("coy.ooo.PPP");
046: imports.add("mem.abc.ABC");
047: return imports;
048: }
049:
050: public void testMatchingGroups() {
051: List result = sorter.sortBlocks(getMatchingTestList());
052: assertEquals(4, result.size());
053: Iterator block1 = ((Set) result.get(0)).iterator();
054: assertEquals("java.io.BufferedWriter", block1.next());
055: assertEquals("java.net.URL", block1.next());
056: assertEquals("java.util.Enumeration", block1.next());
057: assertEquals("java.util.List", block1.next());
058: Iterator block2 = ((Set) result.get(1)).iterator();
059: assertEquals("javax.servlet.ServletRequest", block2.next());
060: assertEquals("javax.servlet.jsp.JspException", block2.next());
061: assertEquals("javax.sql.DataSource", block2.next());
062: assertEquals("javax.swing.Box", block2.next());
063: Iterator block3 = ((Set) result.get(2)).iterator();
064: assertEquals("org.apache.commons.beanutils.BeanUtils", block3
065: .next());
066: assertEquals("org.apache.struts.action.DynaActionFormClass",
067: block3.next());
068: assertEquals("org.mypack.TestClass", block3.next());
069: Iterator block4 = ((Set) result.get(3)).iterator();
070: assertEquals("com.abc.base.Base", block4.next());
071: assertEquals("com.mockrunner.struts.ActionTestCaseAdapter",
072: block4.next());
073: assertEquals("com.mockrunner.test.gen.PackageImportSorterTest",
074: block4.next());
075: }
076:
077: public void testNonMatchingGroups() {
078: List result = sorter.sortBlocks(getNonMatchingTestList());
079: assertEquals(1, result.size());
080: Iterator block = ((Set) result.get(0)).iterator();
081: assertEquals("abc.def.Base", block.next());
082: assertEquals("co.ac.ABC", block.next());
083: assertEquals("co.bc.DEF", block.next());
084: assertEquals("coy.ooo.PPP", block.next());
085: assertEquals("mem.abc.ABC", block.next());
086: assertEquals("uuu.ooo.PPP", block.next());
087: assertEquals("zzzz.yyy.YYY", block.next());
088: }
089:
090: public void testMixedGroups() {
091: List testList = new ArrayList();
092: testList.addAll(getNonMatchingTestList());
093: testList.addAll(getMatchingTestList());
094: List result = sorter.sortBlocks(testList);
095: assertEquals(8, result.size());
096: Iterator block1 = ((Set) result.get(0)).iterator();
097: assertEquals("java.io.BufferedWriter", block1.next());
098: assertEquals("java.net.URL", block1.next());
099: assertEquals("java.util.Enumeration", block1.next());
100: assertEquals("java.util.List", block1.next());
101: Iterator block2 = ((Set) result.get(1)).iterator();
102: assertEquals("javax.servlet.ServletRequest", block2.next());
103: assertEquals("javax.servlet.jsp.JspException", block2.next());
104: assertEquals("javax.sql.DataSource", block2.next());
105: assertEquals("javax.swing.Box", block2.next());
106: Iterator block3 = ((Set) result.get(2)).iterator();
107: assertEquals("mem.abc.ABC", block3.next());
108: Iterator block4 = ((Set) result.get(3)).iterator();
109: assertEquals("org.apache.commons.beanutils.BeanUtils", block4
110: .next());
111: assertEquals("org.apache.struts.action.DynaActionFormClass",
112: block4.next());
113: assertEquals("org.mypack.TestClass", block4.next());
114: Iterator block5 = ((Set) result.get(4)).iterator();
115: assertEquals("uuu.ooo.PPP", block5.next());
116: assertEquals("zzzz.yyy.YYY", block5.next());
117: Iterator block6 = ((Set) result.get(5)).iterator();
118: assertEquals("abc.def.Base", block6.next());
119: assertEquals("co.ac.ABC", block6.next());
120: assertEquals("co.bc.DEF", block6.next());
121: Iterator block7 = ((Set) result.get(6)).iterator();
122: assertEquals("com.abc.base.Base", block7.next());
123: assertEquals("com.mockrunner.struts.ActionTestCaseAdapter",
124: block7.next());
125: assertEquals("com.mockrunner.test.gen.PackageImportSorterTest",
126: block7.next());
127: Iterator block8 = ((Set) result.get(7)).iterator();
128: assertEquals("coy.ooo.PPP", block8.next());
129: }
130:
131: public void testMixedWithSingleGroup() {
132: List testList = new ArrayList();
133: testList.addAll(getNonMatchingTestList());
134: testList.add("java.util.Enumeration");
135: List result = sorter.sortBlocks(testList);
136: assertEquals(3, result.size());
137: Iterator block1 = ((Set) result.get(0)).iterator();
138: assertEquals("abc.def.Base", block1.next());
139: assertEquals("co.ac.ABC", block1.next());
140: assertEquals("co.bc.DEF", block1.next());
141: assertEquals("coy.ooo.PPP", block1.next());
142: Iterator block2 = ((Set) result.get(1)).iterator();
143: assertEquals("java.util.Enumeration", block2.next());
144: Iterator block3 = ((Set) result.get(2)).iterator();
145: assertEquals("mem.abc.ABC", block3.next());
146: assertEquals("uuu.ooo.PPP", block3.next());
147: assertEquals("zzzz.yyy.YYY", block3.next());
148: }
149:
150: public void testMixedWithTwoGroups() {
151: List testList = new ArrayList();
152: testList.addAll(getNonMatchingTestList());
153: testList.add("java.util.Enumeration");
154: testList.add("org.mypack.TestClass");
155: List result = sorter.sortBlocks(testList);
156: assertEquals(5, result.size());
157: Iterator block1 = ((Set) result.get(0)).iterator();
158: assertEquals("abc.def.Base", block1.next());
159: assertEquals("co.ac.ABC", block1.next());
160: assertEquals("co.bc.DEF", block1.next());
161: assertEquals("coy.ooo.PPP", block1.next());
162: Iterator block2 = ((Set) result.get(1)).iterator();
163: assertEquals("java.util.Enumeration", block2.next());
164: Iterator block3 = ((Set) result.get(2)).iterator();
165: assertEquals("mem.abc.ABC", block3.next());
166: Iterator block4 = ((Set) result.get(3)).iterator();
167: assertEquals("org.mypack.TestClass", block4.next());
168: Iterator block5 = ((Set) result.get(4)).iterator();
169: assertEquals("uuu.ooo.PPP", block5.next());
170: assertEquals("zzzz.yyy.YYY", block5.next());
171: }
172:
173: public void testMixedWithThreeGroups() {
174: List testList = new ArrayList();
175: testList.addAll(getNonMatchingTestList());
176: testList.add("java.util.Enumeration");
177: testList.add("org.mypack.TestClass");
178: testList.add("javax.sql.DataSource");
179: List result = sorter.sortBlocks(testList);
180: assertEquals(6, result.size());
181: Iterator block1 = ((Set) result.get(0)).iterator();
182: assertEquals("abc.def.Base", block1.next());
183: assertEquals("co.ac.ABC", block1.next());
184: assertEquals("co.bc.DEF", block1.next());
185: assertEquals("coy.ooo.PPP", block1.next());
186: Iterator block2 = ((Set) result.get(1)).iterator();
187: assertEquals("java.util.Enumeration", block2.next());
188: Iterator block3 = ((Set) result.get(2)).iterator();
189: assertEquals("javax.sql.DataSource", block3.next());
190: Iterator block4 = ((Set) result.get(3)).iterator();
191: assertEquals("mem.abc.ABC", block4.next());
192: Iterator block5 = ((Set) result.get(4)).iterator();
193: assertEquals("org.mypack.TestClass", block5.next());
194: Iterator block6 = ((Set) result.get(5)).iterator();
195: assertEquals("uuu.ooo.PPP", block6.next());
196: assertEquals("zzzz.yyy.YYY", block6.next());
197: }
198: }
|