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);
60 // destOut = new DebugOutputStream(destOut);
62 Pmd2XmlConv converter = new Pmd2XmlConv();
63 converter.setInType(ModelFileType.XML_AUTO);
64 converter.setOutType(ModelFileType.PMD);
65 converter.setNewline("\n");
67 converter.convert(xmlis, destOut);
72 assertSameFile(klass, expPmdResource, destFile);
78 * PMDリソースをXMLに変換した結果がXMLリソースに等しいと表明する。
79 * @param klass リソース元クラス
80 * @param pmdResource PMDリソース名
81 * @param expXmlResource XMLリソース名
82 * @throws Exception エラー
84 public static void assertPmd2Xml(
87 String expXmlResource )
90 klass.getResourceAsStream(pmdResource);
92 pmdis = new BufferedInputStream(pmdis);
94 File destFile = openTempFile();
96 destOut = new FileOutputStream(destFile);
97 destOut = new BufferedOutputStream(destOut);
99 Pmd2XmlConv converter = new Pmd2XmlConv();
100 converter.setInType(ModelFileType.PMD);
101 converter.setOutType(ModelFileType.XML_101009);
102 converter.setNewline("\n");
103 converter.setGenerator(null);
105 converter.convert(pmdis, destOut);
110 assertSameFile(klass, expXmlResource, destFile);
116 * PMDリソースをXMLに変換した結果がXMLリソースに等しいと表明する。
117 * @param klass リソース元クラス
118 * @param pmdResource PMDリソース名
119 * @param expXmlResource XMLリソース名
120 * @throws Exception エラー
122 public static void assertPmd2Xml13(
125 String expXmlResource )
128 klass.getResourceAsStream(pmdResource);
129 assertNotNull(pmdis);
130 pmdis = new BufferedInputStream(pmdis);
132 File destFile = openTempFile();
133 OutputStream destOut;
134 destOut = new FileOutputStream(destFile);
135 destOut = new BufferedOutputStream(destOut);
137 Pmd2XmlConv converter = new Pmd2XmlConv();
138 converter.setInType(ModelFileType.PMD);
139 converter.setOutType(ModelFileType.XML_130128);
140 converter.setNewline("\n");
141 converter.setGenerator(null);
143 converter.convert(pmdis, destOut);
148 assertSameFile(klass, expXmlResource, destFile);
154 * リソースとファイルの内容が等しいと表明する。
155 * @param klass リソース元クラス
156 * @param resourceName リソース名
157 * @param resFile ファイル
158 * @throws IOException 入力エラー
160 public static void assertSameFile(
166 klass.getResourceAsStream(resourceName);
167 assertNotNull(expis);
169 InputStream resIn = new FileInputStream(resFile);
172 assertSameStream(expis, resIn);
182 * 2つの入力ストリーム内容が等しいと表明する。
183 * @param expIn 期待する入力ストリーム
184 * @param resIn 結果入力ストリーム
185 * @throws IOException 入力エラー
187 public static void assertSameStream(InputStream expIn, InputStream resIn)
189 InputStream expis = new BufferedInputStream(expIn);
190 InputStream resis = new BufferedInputStream(resIn);
194 int expCh = expis.read();
195 int resCh = resis.read();
198 assertEquals(expCh, resCh);
199 }catch(AssertionError e){
200 System.err.println("offset=" + offset);