001: /*
002: * @(#)AnalysisMetaDataIOUTest.java
003: *
004: * Copyright (C) 2002-2003 Matt Albrecht
005: * groboclown@users.sourceforge.net
006: * http://groboutils.sourceforge.net
007: *
008: * Permission is hereby granted, free of charge, to any person obtaining a
009: * copy of this software and associated documentation files (the "Software"),
010: * to deal in the Software without restriction, including without limitation
011: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
012: * and/or sell copies of the Software, and to permit persons to whom the
013: * Software is furnished to do so, subject to the following conditions:
014: *
015: * The above copyright notice and this permission notice shall be included in
016: * all copies or substantial portions of the Software.
017: *
018: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
019: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
020: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
021: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
022: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
023: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
024: * DEALINGS IN THE SOFTWARE.
025: */
026:
027: package net.sourceforge.groboutils.codecoverage.v2.datastore;
028:
029: import java.io.IOException;
030: import java.io.StringReader;
031: import java.io.StringWriter;
032:
033: import junit.framework.Test;
034: import junit.framework.TestCase;
035: import junit.framework.TestSuite;
036: import net.sourceforge.groboutils.autodoc.v1.AutoDoc;
037: import net.sourceforge.groboutils.codecoverage.v2.CCCreatorUtil;
038: import net.sourceforge.groboutils.codecoverage.v2.IAnalysisMetaData;
039:
040: /**
041: * Tests the AnalysisMetaDataIO class.
042: *
043: * @author Matt Albrecht <a href="mailto:groboclown@users.sourceforge.net">groboclown@users.sourceforge.net</a>
044: * @version $Date: 2004/04/15 05:48:28 $
045: * @since December 28, 2002
046: */
047: public class AnalysisMetaDataIOUTest extends TestCase {
048: //-------------------------------------------------------------------------
049: // Standard JUnit Class-specific declarations
050:
051: private static final Class THIS_CLASS = AnalysisMetaDataIOUTest.class;
052: private static final AutoDoc DOC = new AutoDoc(THIS_CLASS);
053:
054: public AnalysisMetaDataIOUTest(String name) {
055: super (name);
056: }
057:
058: //-------------------------------------------------------------------------
059: // Tests
060:
061: public void testWriteAnalysisMetaData1() throws Exception {
062: AnalysisMetaDataIO amdio = new AnalysisMetaDataIO();
063: StringWriter sw = new StringWriter();
064: IAnalysisMetaData amd = createIAnalysisMetaData("c", "n",
065: (byte) -1);
066:
067: amdio.writeAnalysisMetaData(amd, sw);
068:
069: String res = sw.toString();
070: DOC.getLog().info("Wrote meta-data [" + res + "]");
071: assertEquals("Incorrect result format.", "1:c,1:n,-1,", res);
072: }
073:
074: public void testWriteAnalysisMetaData2() throws Exception {
075: AnalysisMetaDataIO amdio = new AnalysisMetaDataIO();
076: StringWriter sw = new StringWriter();
077: IAnalysisMetaData amd = createIAnalysisMetaData("123", "12345",
078: (byte) 100);
079:
080: amdio.writeAnalysisMetaData(amd, sw);
081:
082: String res = sw.toString();
083: DOC.getLog().info("Wrote meta-data [" + res + "]");
084: assertEquals("Incorrect result format.", "3:123,5:12345,100,",
085: res);
086: }
087:
088: public void testReadAnalysisMetaData1() throws Exception {
089: AnalysisMetaDataIO amdio = new AnalysisMetaDataIO();
090: StringReader sr = new StringReader("1:c,1:n,-1,");
091: IAnalysisMetaData amd = amdio.readAnalysisMetaData(sr);
092: assertNotNull("Returned null data.", amd);
093: assertEquals("Covered formatted text incorrect.", "c", amd
094: .getCoveredFormattedText());
095: assertEquals("Not covered formatted text incorrect.", "n", amd
096: .getNotCoveredFormattedText());
097: assertEquals("instruction weight incorrect.", (byte) -1, amd
098: .getInstructionWeight());
099: }
100:
101: public void testReadAnalysisMetaData2() throws Exception {
102: AnalysisMetaDataIO amdio = new AnalysisMetaDataIO();
103: StringReader sr = new StringReader("3:123,5:12345,100,");
104: IAnalysisMetaData amd = amdio.readAnalysisMetaData(sr);
105: assertNotNull("Returned null data.", amd);
106: assertEquals("Covered formatted text incorrect.", "123", amd
107: .getCoveredFormattedText());
108: assertEquals("Not covered formatted text incorrect.", "12345",
109: amd.getNotCoveredFormattedText());
110: assertEquals("instruction weight incorrect.", (byte) 100, amd
111: .getInstructionWeight());
112: }
113:
114: public void testReadAnalysisMetaData3() throws Exception {
115: AnalysisMetaDataIO amdio = new AnalysisMetaDataIO();
116: StringReader sr = new StringReader("");
117: try {
118: amdio.readAnalysisMetaData(sr);
119: fail("Did not throw IOException.");
120: } catch (IOException ioe) {
121: // verify ioe
122: }
123: }
124:
125: public void testReadAnalysisMetaData4() throws Exception {
126: AnalysisMetaDataIO amdio = new AnalysisMetaDataIO();
127: StringReader sr = new StringReader("1");
128: try {
129: amdio.readAnalysisMetaData(sr);
130: fail("Did not throw IOException.");
131: } catch (IOException ioe) {
132: // verify ioe
133: }
134: }
135:
136: public void testReadAnalysisMetaData5() throws Exception {
137: AnalysisMetaDataIO amdio = new AnalysisMetaDataIO();
138: StringReader sr = new StringReader("a:a");
139: try {
140: amdio.readAnalysisMetaData(sr);
141: fail("Did not throw IOException.");
142: } catch (IOException ioe) {
143: // verify ioe
144: }
145: }
146:
147: //-------------------------------------------------------------------------
148: // Helpers
149:
150: protected IAnalysisMetaData createIAnalysisMetaData(String c,
151: String nc, byte w) {
152: return CCCreatorUtil.createIAnalysisMetaData(c, nc, w);
153: }
154:
155: //-------------------------------------------------------------------------
156: // Standard JUnit declarations
157:
158: public static Test suite() {
159: TestSuite suite = new TestSuite(THIS_CLASS);
160:
161: return suite;
162: }
163:
164: public static void main(String[] args) {
165: String[] name = { THIS_CLASS.getName() };
166:
167: // junit.textui.TestRunner.main( name );
168: // junit.swingui.TestRunner.main( name );
169:
170: junit.textui.TestRunner.main(name);
171: }
172:
173: /**
174: *
175: * @exception Exception thrown under any exceptional condition.
176: */
177: protected void setUp() throws Exception {
178: super .setUp();
179:
180: // set ourself up
181: }
182:
183: /**
184: *
185: * @exception Exception thrown under any exceptional condition.
186: */
187: protected void tearDown() throws Exception {
188: // tear ourself down
189:
190: super.tearDown();
191: }
192: }
|