001: /* ====================================================================
002: Licensed to the Apache Software Foundation (ASF) under one or more
003: contributor license agreements. See the NOTICE file distributed with
004: this work for additional information regarding copyright ownership.
005: The ASF licenses this file to You under the Apache License, Version 2.0
006: (the "License"); you may not use this file except in compliance with
007: the License. You may obtain a copy of the License at
008:
009: http://www.apache.org/licenses/LICENSE-2.0
010:
011: Unless required by applicable law or agreed to in writing, software
012: distributed under the License is distributed on an "AS IS" BASIS,
013: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: See the License for the specific language governing permissions and
015: limitations under the License.
016: ==================================================================== */
017:
018: package org.apache.poi.hpsf.basic;
019:
020: import java.io.ByteArrayInputStream;
021: import java.io.File;
022: import java.io.FileNotFoundException;
023: import java.io.IOException;
024:
025: import junit.framework.Assert;
026: import junit.framework.TestCase;
027:
028: import org.apache.poi.hpsf.Constants;
029: import org.apache.poi.hpsf.DocumentSummaryInformation;
030: import org.apache.poi.hpsf.HPSFException;
031: import org.apache.poi.hpsf.PropertySet;
032: import org.apache.poi.hpsf.PropertySetFactory;
033: import org.apache.poi.hpsf.Section;
034: import org.apache.poi.hpsf.SummaryInformation;
035:
036: /**
037: * <p>Tests whether Unicode string can be read from a
038: * DocumentSummaryInformation.</p>
039: *
040: * @author Rainer Klute (klute@rainer-klute.de)
041: * @since 2002-12-09
042: * @version $Id: TestUnicode.java 489730 2006-12-22 19:18:16Z bayard $
043: */
044: public class TestUnicode extends TestCase {
045:
046: static final String POI_FS = "TestUnicode.xls";
047: static final String[] POI_FILES = new String[] { "\005DocumentSummaryInformation", };
048: File data;
049: POIFile[] poiFiles;
050:
051: /**
052: * <p>Constructor</p>
053: *
054: * @param name the test case's name
055: */
056: public TestUnicode(final String name) {
057: super (name);
058: }
059:
060: /**
061: * <p>Read a the test file from the "data" directory.</p>
062: *
063: * @exception FileNotFoundException if the file to be read does not exist.
064: * @exception IOException if any other I/O exception occurs
065: */
066: protected void setUp() throws FileNotFoundException, IOException {
067: final File dataDir = new File(System
068: .getProperty("HPSF.testdata.path"));
069: data = new File(dataDir, POI_FS);
070: }
071:
072: /**
073: * <p>Tests the {@link PropertySet} methods. The test file has two
074: * property set: the first one is a {@link SummaryInformation},
075: * the second one is a {@link DocumentSummaryInformation}.</p>
076: *
077: * @exception IOException if an I/O exception occurs
078: * @exception HPSFException if an HPSF exception occurs
079: */
080: public void testPropertySetMethods() throws IOException,
081: HPSFException {
082: POIFile poiFile = Util.readPOIFiles(data, POI_FILES)[0];
083: byte[] b = poiFile.getBytes();
084: PropertySet ps = PropertySetFactory
085: .create(new ByteArrayInputStream(b));
086: Assert.assertTrue(ps.isDocumentSummaryInformation());
087: Assert.assertEquals(ps.getSectionCount(), 2);
088: Section s = (Section) ps.getSections().get(1);
089: Assert.assertEquals(s.getProperty(1), new Integer(
090: Constants.CP_UTF16));
091: Assert.assertEquals(s.getProperty(2), new Integer(-96070278));
092: Assert.assertEquals(s.getProperty(3),
093: "MCon_Info zu Office bei Schreiner");
094: Assert.assertEquals(s.getProperty(4),
095: "petrovitsch@schreiner-online.de");
096: Assert.assertEquals(s.getProperty(5), "Petrovitsch, Wilhelm");
097: }
098:
099: /**
100: * <p>Runs the test cases stand-alone.</p>
101: *
102: * @param args Command-line arguments.
103: */
104: public static void main(final String[] args) {
105: System.setProperty("HPSF.testdata.path",
106: "./src/testcases/org/apache/poi/hpsf/data");
107: junit.textui.TestRunner.run(TestUnicode.class);
108: }
109:
110: }
|