6 import java.io.BufferedInputStream;
7 import java.io.BufferedOutputStream;
9 import java.io.FileInputStream;
10 import java.io.FileOutputStream;
11 import java.io.IOException;
12 import java.io.InputStream;
13 import java.io.OutputStream;
14 import jp.sfjp.mikutoga.pmd2xml.ModelFileType;
15 import jp.sfjp.mikutoga.pmd2xml.Pmd2XmlConv;
17 import static org.junit.Assert.*;
22 public class CnvAssert {
31 * @throws IOException エラー
33 public static File openTempFile() throws IOException{
34 File file = File.createTempFile("pmd2xml", null);
40 * XMLリソースをPMDに変換した結果がPMDリソースに等しいと表明する。
41 * @param klass リソース元クラス
42 * @param xmlResource XMLリソース名
43 * @param expPmdResource PMDリソース名
44 * @throws Exception エラー
46 public static void assertXml2Pmd(
49 String expPmdResource )
52 klass.getResourceAsStream(xmlResource);
54 xmlis = new BufferedInputStream(xmlis);
56 File destFile = openTempFile();
58 destOut = new FileOutputStream(destFile);
59 destOut = new BufferedOutputStream(destOut);
61 Pmd2XmlConv converter = new Pmd2XmlConv();
62 converter.setInType(ModelFileType.XML_AUTO);
63 converter.setOutType(ModelFileType.PMD);
64 converter.setNewline("\n");
66 converter.convert(xmlis, destOut);
71 assertSameFile(klass, expPmdResource, destFile);
77 * PMDリソースをXMLに変換した結果がXMLリソースに等しいと表明する。
78 * @param klass リソース元クラス
79 * @param pmdResource PMDリソース名
80 * @param expXmlResource XMLリソース名
81 * @throws Exception エラー
83 public static void assertPmd2Xml(
86 String expXmlResource )
89 klass.getResourceAsStream(pmdResource);
91 pmdis = new BufferedInputStream(pmdis);
93 File destFile = openTempFile();
95 destOut = new FileOutputStream(destFile);
96 destOut = new BufferedOutputStream(destOut);
98 Pmd2XmlConv converter = new Pmd2XmlConv();
99 converter.setInType(ModelFileType.PMD);
100 converter.setOutType(ModelFileType.XML_101009);
101 converter.setNewline("\n");
102 converter.setGenerator(null);
104 converter.convert(pmdis, destOut);
109 assertSameFile(klass, expXmlResource, destFile);
115 * PMDリソースをXMLに変換した結果がXMLリソースに等しいと表明する。
116 * @param klass リソース元クラス
117 * @param pmdResource PMDリソース名
118 * @param expXmlResource XMLリソース名
119 * @throws Exception エラー
121 public static void assertPmd2Xml13(
124 String expXmlResource )
127 klass.getResourceAsStream(pmdResource);
128 assertNotNull(pmdis);
129 pmdis = new BufferedInputStream(pmdis);
131 File destFile = openTempFile();
132 OutputStream destOut;
133 destOut = new FileOutputStream(destFile);
134 destOut = new BufferedOutputStream(destOut);
136 Pmd2XmlConv converter = new Pmd2XmlConv();
137 converter.setInType(ModelFileType.PMD);
138 converter.setOutType(ModelFileType.XML_130128);
139 converter.setNewline("\n");
140 converter.setGenerator(null);
142 converter.convert(pmdis, destOut);
147 assertSameFile(klass, expXmlResource, destFile);
153 * リソースとファイルの内容が等しいと表明する。
154 * @param klass リソース元クラス
155 * @param resourceName リソース名
156 * @param resFile ファイル
157 * @throws IOException 入力エラー
159 public static void assertSameFile(
165 klass.getResourceAsStream(resourceName);
166 assertNotNull(expis);
168 InputStream resIn = new FileInputStream(resFile);
171 assertSameStream(expis, resIn);
181 * 2つの入力ストリーム内容が等しいと表明する。
182 * @param expIn 期待する入力ストリーム
183 * @param resIn 結果入力ストリーム
184 * @throws IOException 入力エラー
186 public static void assertSameStream(InputStream expIn, InputStream resIn)
188 InputStream expis = new BufferedInputStream(expIn);
189 InputStream resis = new BufferedInputStream(resIn);
193 int expCh = expis.read();
194 int resCh = resis.read();
196 assertEquals(expCh, resCh);