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.sourceforge.mikutoga.pmd.ModelFileType;
15 import jp.sourceforge.mikutoga.pmd2xml.Pmd2XmlConv;
17 import static org.junit.Assert.*;
22 public class CnvAssert {
28 * @throws IOException エラー
30 public static File openTempFile() throws IOException{
31 File file = File.createTempFile("pmd2xml", null);
37 * XMLリソースをPMDに変換した結果がPMDリソースに等しいと表明する。
38 * @param klass リソース元クラス
39 * @param xmlResource XMLリソース名
40 * @param expPmdResource PMDリソース名
41 * @throws Exception エラー
43 public static void assertXml2Pmd(
46 String expPmdResource )
49 klass.getResourceAsStream(xmlResource);
51 xmlis = new BufferedInputStream(xmlis);
53 File destFile = openTempFile();
55 destOut = new FileOutputStream(destFile);
56 destOut = new BufferedOutputStream(destOut);
58 Pmd2XmlConv converter = new Pmd2XmlConv();
59 converter.setInType(ModelFileType.XML_101009);
60 converter.setOutType(ModelFileType.PMD);
61 converter.setNewline("\n");
63 converter.convert(xmlis, destOut);
68 assertSameFile(klass, expPmdResource, destFile);
74 * PMDリソースをXMLに変換した結果がXMLリソースに等しいと表明する。
75 * @param klass リソース元クラス
76 * @param pmdResource PMDリソース名
77 * @param expXmlResource XMLリソース名
78 * @throws Exception エラー
80 public static void assertPmd2Xml(
83 String expXmlResource )
86 klass.getResourceAsStream(pmdResource);
88 pmdis = new BufferedInputStream(pmdis);
90 File destFile = openTempFile();
92 destOut = new FileOutputStream(destFile);
93 destOut = new BufferedOutputStream(destOut);
95 Pmd2XmlConv converter = new Pmd2XmlConv();
96 converter.setInType(ModelFileType.PMD);
97 converter.setOutType(ModelFileType.XML_101009);
98 converter.setNewline("\n");
99 converter.setGenerator(null);
101 converter.convert(pmdis, destOut);
106 assertSameFile(klass, expXmlResource, destFile);
112 * リソースとファイルの内容が等しいと表明する。
113 * @param klass リソース元クラス
114 * @param resourceName リソース名
115 * @param resFile ファイル
116 * @throws IOException 入力エラー
118 public static void assertSameFile(
124 klass.getResourceAsStream(resourceName);
125 assertNotNull(expis);
127 InputStream resIn = new FileInputStream(resFile);
130 assertSameStream(expis, resIn);
140 * 2つの入力ストリーム内容が等しいと表明する。
141 * @param expIn 期待する入力ストリーム
142 * @param resIn 結果入力ストリーム
143 * @throws IOException 入力エラー
145 public static void assertSameStream(InputStream expIn, InputStream resIn)
147 InputStream expis = new BufferedInputStream(expIn);
148 InputStream resis = new BufferedInputStream(resIn);
152 int expCh = expis.read();
153 int resCh = resis.read();
155 assertEquals(expCh, resCh);