diff options
Diffstat (limited to 'src/testcases/org/apache/poi/hpsf/basic/TestMetaDataIPI.java')
-rw-r--r-- | src/testcases/org/apache/poi/hpsf/basic/TestMetaDataIPI.java | 1348 |
1 files changed, 622 insertions, 726 deletions
diff --git a/src/testcases/org/apache/poi/hpsf/basic/TestMetaDataIPI.java b/src/testcases/org/apache/poi/hpsf/basic/TestMetaDataIPI.java index 8d94d2df6e..63bde0c2de 100644 --- a/src/testcases/org/apache/poi/hpsf/basic/TestMetaDataIPI.java +++ b/src/testcases/org/apache/poi/hpsf/basic/TestMetaDataIPI.java @@ -43,117 +43,80 @@ import org.apache.poi.poifs.filesystem.POIFSFileSystem; /** * Basing on: src/examples/src/org/apache/poi/hpsf/examples/ModifyDocumentSummaryInformation.java * This class tests reading and writing of meta data. No actual document is created. All information - * is stored in a virtal document in a ByteArrayOutputStream + * is stored in a virtual document in a ByteArrayOutputStream * @author Matthias G\u00fcnter */ -public class TestMetaDataIPI extends TestCase{ - - private ByteArrayOutputStream bout= null; //our store - private POIFSFileSystem poifs=null; - DirectoryEntry dir = null; - DocumentSummaryInformation dsi=null; - SummaryInformation si=null; - - - - /** - * Setup is used to get the document ready. Gets the DocumentSummaryInformation and the - * SummaryInformation to reasonable values - */ - public void setUp(){ - bout=new ByteArrayOutputStream(); - poifs= new POIFSFileSystem(); - dir = poifs.getRoot(); - dsi=null; - try - { - DocumentEntry dsiEntry = (DocumentEntry) - dir.getEntry(DocumentSummaryInformation.DEFAULT_STREAM_NAME); - DocumentInputStream dis = new DocumentInputStream(dsiEntry); - PropertySet ps = new PropertySet(dis); - dis.close(); - dsi = new DocumentSummaryInformation(ps); - - - } - catch (FileNotFoundException ex) - { - /* There is no document summary information yet. We have to create a - * new one. */ - dsi = PropertySetFactory.newDocumentSummaryInformation(); - assertNotNull(dsi); - } catch (IOException e) { - e.printStackTrace(); - fail(); - } catch (NoPropertySetStreamException e) { - e.printStackTrace(); - fail(); - } catch (MarkUnsupportedException e) { - e.printStackTrace(); - fail(); - } catch (UnexpectedPropertySetTypeException e) { - e.printStackTrace(); - fail(); - } - assertNotNull(dsi); - try - { - DocumentEntry dsiEntry = (DocumentEntry) - dir.getEntry(SummaryInformation.DEFAULT_STREAM_NAME); - DocumentInputStream dis = new DocumentInputStream(dsiEntry); - PropertySet ps = new PropertySet(dis); - dis.close(); - si = new SummaryInformation(ps); - - - } - catch (FileNotFoundException ex) - { - /* There is no document summary information yet. We have to create a - * new one. */ - si = PropertySetFactory.newSummaryInformation(); - assertNotNull(si); - } catch (IOException e) { - e.printStackTrace(); - fail(); - } catch (NoPropertySetStreamException e) { - e.printStackTrace(); - fail(); - } catch (MarkUnsupportedException e) { - e.printStackTrace(); - fail(); - } catch (UnexpectedPropertySetTypeException e) { - e.printStackTrace(); - fail(); +public final class TestMetaDataIPI extends TestCase{ + + private ByteArrayOutputStream bout; //our store + private POIFSFileSystem poifs; + private DirectoryEntry dir; + private DocumentSummaryInformation dsi; + private SummaryInformation si; + + + + /** + * Setup is used to get the document ready. Gets the DocumentSummaryInformation and the + * SummaryInformation to reasonable values + */ + public void setUp() { + bout = new ByteArrayOutputStream(); + poifs = new POIFSFileSystem(); + dir = poifs.getRoot(); + dsi = null; + try { + DocumentEntry dsiEntry = (DocumentEntry) dir + .getEntry(DocumentSummaryInformation.DEFAULT_STREAM_NAME); + DocumentInputStream dis = new DocumentInputStream(dsiEntry); + PropertySet ps = new PropertySet(dis); + dis.close(); + dsi = new DocumentSummaryInformation(ps); + + } catch (FileNotFoundException ex) { + /* + * There is no document summary information yet. We have to create a + * new one. + */ + dsi = PropertySetFactory.newDocumentSummaryInformation(); + assertNotNull(dsi); + } catch (Exception e) { + e.printStackTrace(); + fail(); + } + assertNotNull(dsi); + try { + DocumentEntry dsiEntry = (DocumentEntry) dir + .getEntry(SummaryInformation.DEFAULT_STREAM_NAME); + DocumentInputStream dis = new DocumentInputStream(dsiEntry); + PropertySet ps = new PropertySet(dis); + dis.close(); + si = new SummaryInformation(ps); + + } catch (FileNotFoundException ex) { + /* + * There is no document summary information yet. We have to create a + * new one. + */ + si = PropertySetFactory.newSummaryInformation(); + assertNotNull(si); + } catch (Exception e) { + e.printStackTrace(); + fail(); + } + assertNotNull(dsi); } - assertNotNull(dsi); - - - } - - /** - * Setting a lot of things to null. - */ - public void tearDown(){ - bout=null; - poifs=null; - dir=null; - dsi=null; - - } - - - /** - * Closes the ByteArrayOutputStream and reads it into a ByteArrayInputStream. - * When finished writing information this method is used in the tests to - * start reading from the created document and then the see if the results match. - * - */ - public void closeAndReOpen(){ - - try { + + /** + * Closes the ByteArrayOutputStream and reads it into a ByteArrayInputStream. + * When finished writing information this method is used in the tests to + * start reading from the created document and then the see if the results match. + */ + public void closeAndReOpen() { + + try { dsi.write(dir, DocumentSummaryInformation.DEFAULT_STREAM_NAME); - si.write(dir,SummaryInformation.DEFAULT_STREAM_NAME); + si.write(dir, SummaryInformation.DEFAULT_STREAM_NAME); } catch (WritingNotSupportedException e) { e.printStackTrace(); fail(); @@ -162,659 +125,592 @@ public class TestMetaDataIPI extends TestCase{ fail(); } - si=null; - dsi=null; + si = null; + dsi = null; try { - poifs.writeFilesystem(bout); bout.flush(); - } catch (IOException e) { - e.printStackTrace(); fail(); } - - InputStream is=new ByteArrayInputStream(bout.toByteArray()); - assertNotNull(is); - POIFSFileSystem poifs=null; + + InputStream is = new ByteArrayInputStream(bout.toByteArray()); + assertNotNull(is); + POIFSFileSystem poifs = null; try { poifs = new POIFSFileSystem(is); } catch (IOException e) { - e.printStackTrace(); fail(); } - try { + try { is.close(); } catch (IOException e) { e.printStackTrace(); fail(); } - assertNotNull(poifs); - /* Read the document summary information. */ - DirectoryEntry dir = poifs.getRoot(); - - try - { - DocumentEntry dsiEntry = (DocumentEntry) - dir.getEntry(DocumentSummaryInformation.DEFAULT_STREAM_NAME); - DocumentInputStream dis = new DocumentInputStream(dsiEntry); - PropertySet ps = new PropertySet(dis); - dis.close(); - dsi = new DocumentSummaryInformation(ps); - } - catch (FileNotFoundException ex) - { - fail(); - } catch (IOException e) { - e.printStackTrace(); + assertNotNull(poifs); + /* Read the document summary information. */ + DirectoryEntry dir = poifs.getRoot(); + + try { + DocumentEntry dsiEntry = (DocumentEntry) dir + .getEntry(DocumentSummaryInformation.DEFAULT_STREAM_NAME); + DocumentInputStream dis = new DocumentInputStream(dsiEntry); + PropertySet ps = new PropertySet(dis); + dis.close(); + dsi = new DocumentSummaryInformation(ps); + } catch (FileNotFoundException ex) { fail(); - } catch (NoPropertySetStreamException e) { + } catch (Exception e) { e.printStackTrace(); fail(); - } catch (MarkUnsupportedException e) { + } + try { + DocumentEntry dsiEntry = (DocumentEntry) dir + .getEntry(SummaryInformation.DEFAULT_STREAM_NAME); + DocumentInputStream dis = new DocumentInputStream(dsiEntry); + PropertySet ps = new PropertySet(dis); + dis.close(); + si = new SummaryInformation(ps); + + } catch (FileNotFoundException ex) { + /* + * There is no document summary information yet. We have to create a + * new one. + */ + si = PropertySetFactory.newSummaryInformation(); + assertNotNull(si); + } catch (Exception e) { e.printStackTrace(); fail(); - } catch (UnexpectedPropertySetTypeException e) { - e.printStackTrace(); + } + } + + /** + * Sets the most important information in DocumentSummaryInformation and Summary Information and rereads it + */ + public void testOne() { + + // DocumentSummaryInformation + dsi.setCompany("xxxCompanyxxx"); + dsi.setManager("xxxManagerxxx"); + dsi.setCategory("xxxCategoryxxx"); + + // SummaryInformation + si.setTitle("xxxTitlexxx"); + si.setAuthor("xxxAuthorxxx"); + si.setComments("xxxCommentsxxx"); + si.setKeywords("xxxKeyWordsxxx"); + si.setSubject("xxxSubjectxxx"); + + // Custom Properties (in DocumentSummaryInformation + CustomProperties customProperties = dsi.getCustomProperties(); + if (customProperties == null) { + customProperties = new CustomProperties(); + } + + /* Insert some custom properties into the container. */ + customProperties.put("Key1", "Value1"); + customProperties.put("Schl\u00fcssel2", "Wert2"); + customProperties.put("Sample Integer", new Integer(12345)); + customProperties.put("Sample Boolean", Boolean.TRUE); + Date date = new Date(); + customProperties.put("Sample Date", date); + customProperties.put("Sample Double", new Double(-1.0001)); + customProperties.put("Sample Negative Integer", new Integer(-100000)); + + dsi.setCustomProperties(customProperties); + + // start reading + closeAndReOpen(); + + // testing + assertNotNull(dsi); + assertNotNull(si); + + assertEquals("Category", "xxxCategoryxxx", dsi.getCategory()); + assertEquals("Company", "xxxCompanyxxx", dsi.getCompany()); + assertEquals("Manager", "xxxManagerxxx", dsi.getManager()); + + assertEquals("", "xxxAuthorxxx", si.getAuthor()); + assertEquals("", "xxxTitlexxx", si.getTitle()); + assertEquals("", "xxxCommentsxxx", si.getComments()); + assertEquals("", "xxxKeyWordsxxx", si.getKeywords()); + assertEquals("", "xxxSubjectxxx", si.getSubject()); + + /* + * Read the custom properties. If there are no custom properties yet, + * the application has to create a new CustomProperties object. It will + * serve as a container for custom properties. + */ + customProperties = dsi.getCustomProperties(); + if (customProperties == null) { fail(); } - try - { - DocumentEntry dsiEntry = (DocumentEntry) - dir.getEntry(SummaryInformation.DEFAULT_STREAM_NAME); - DocumentInputStream dis = new DocumentInputStream(dsiEntry); - PropertySet ps = new PropertySet(dis); - dis.close(); - si = new SummaryInformation(ps); - - - } - catch (FileNotFoundException ex) - { - /* There is no document summary information yet. We have to create a - * new one. */ - si = PropertySetFactory.newSummaryInformation(); - assertNotNull(si); - } catch (IOException e) { - e.printStackTrace(); - fail(); - } catch (NoPropertySetStreamException e) { - e.printStackTrace(); - fail(); - } catch (MarkUnsupportedException e) { - e.printStackTrace(); - fail(); - } catch (UnexpectedPropertySetTypeException e) { - e.printStackTrace(); - fail(); - } - } - - /** - * Sets the most important information in DocumentSummaryInformation and Summary Information and rereads it - * - */ - public void testOne(){ - - //DocumentSummaryInformation - dsi.setCompany("xxxCompanyxxx"); - dsi.setManager("xxxManagerxxx"); - dsi.setCategory("xxxCategoryxxx"); - - //SummaryInformation - si.setTitle("xxxTitlexxx"); - si.setAuthor("xxxAuthorxxx"); - si.setComments("xxxCommentsxxx"); - si.setKeywords("xxxKeyWordsxxx"); - si.setSubject("xxxSubjectxxx"); - - //Custom Properties (in DocumentSummaryInformation - CustomProperties customProperties = dsi.getCustomProperties(); - if (customProperties == null){ - customProperties = new CustomProperties(); - } - - /* Insert some custom properties into the container. */ - customProperties.put("Key1", "Value1"); - customProperties.put("Schl\u00fcssel2", "Wert2"); - customProperties.put("Sample Integer", new Integer(12345)); - customProperties.put("Sample Boolean", new Boolean(true)); - Date date=new Date(); - customProperties.put("Sample Date", date); - customProperties.put("Sample Double", new Double(-1.0001)); - customProperties.put("Sample Negative Integer", new Integer(-100000)); - - dsi.setCustomProperties(customProperties); - - //start reading - closeAndReOpen(); - - //testing - assertNotNull(dsi); - assertNotNull(si); - - assertEquals("Category","xxxCategoryxxx",dsi.getCategory()); - assertEquals("Company","xxxCompanyxxx",dsi.getCompany()); - assertEquals("Manager","xxxManagerxxx",dsi.getManager()); - - assertEquals("","xxxAuthorxxx",si.getAuthor()); - assertEquals("","xxxTitlexxx",si.getTitle()); - assertEquals("","xxxCommentsxxx",si.getComments()); - assertEquals("","xxxKeyWordsxxx",si.getKeywords()); - assertEquals("","xxxSubjectxxx",si.getSubject()); - - - /* Read the custom properties. If there are no custom properties yet, - * the application has to create a new CustomProperties object. It will - * serve as a container for custom properties. */ - customProperties = dsi.getCustomProperties(); - if (customProperties == null){ - fail(); - } - - /* Insert some custom properties into the container. */ - String a1=(String) customProperties.get("Key1"); - assertEquals("Key1","Value1",a1); - String a2=(String) customProperties.get("Schl\u00fcssel2"); - assertEquals("Schl\u00fcssel2","Wert2",a2); - Integer a3=(Integer) customProperties.get("Sample Integer"); - assertEquals("Sample Number",new Integer(12345),a3); - Boolean a4=(Boolean) customProperties.get("Sample Boolean"); - assertEquals("Sample Boolean",new Boolean(true),a4); - Date a5=(Date) customProperties.get("Sample Date"); - assertEquals("Custom Date:",date,a5); - - Double a6=(Double) customProperties.get("Sample Double"); - assertEquals("Custom Float",new Double(-1.0001),a6); - - Integer a7=(Integer) customProperties.get("Sample Negative Integer"); - assertEquals("Neg", new Integer(-100000),a7); - } - - - /** - * multiplies a string - * @param s Input String - * @return the multiplied String - */ - public String elongate(String s){ - StringBuffer sb=new StringBuffer(); - for (int i=0;i<10000;i++){ - sb.append(s); - sb.append(" "); - } - return sb.toString(); - } - - - - /** - * Test very long input in each of the fields (approx 30-60KB each) - * - */ -public void testTwo(){ - - String company=elongate("company"); - String manager=elongate("manager"); - String category=elongate("category"); - String title=elongate("title"); - String author=elongate("author"); - String comments=elongate("comments"); - String keywords=elongate("keywords"); - String subject=elongate("subject"); - String p1=elongate("p1"); - String p2=elongate("p2"); - String k1=elongate("k1"); - String k2=elongate("k2"); - - dsi.setCompany(company); - dsi.setManager(manager); - dsi.setCategory(category); - - si.setTitle(title); - si.setAuthor(author); - si.setComments(comments); - si.setKeywords(keywords); - si.setSubject(subject); - CustomProperties customProperties = dsi.getCustomProperties(); - if (customProperties == null){ - customProperties = new CustomProperties(); - } - - /* Insert some custom properties into the container. */ - customProperties.put(k1, p1); - customProperties.put(k2, p2); - customProperties.put("Sample Number", new Integer(12345)); - customProperties.put("Sample Boolean", new Boolean(true)); - Date date=new Date(); - customProperties.put("Sample Date", date); - - dsi.setCustomProperties(customProperties); - - - closeAndReOpen(); - - assertNotNull(dsi); - assertNotNull(si); - /* Change the category to "POI example". Any former category value will - * be lost. If there has been no category yet, it will be created. */ - assertEquals("Category",category,dsi.getCategory()); - assertEquals("Company",company,dsi.getCompany()); - assertEquals("Manager",manager,dsi.getManager()); - - assertEquals("",author,si.getAuthor()); - assertEquals("",title,si.getTitle()); - assertEquals("",comments,si.getComments()); - assertEquals("",keywords,si.getKeywords()); - assertEquals("",subject,si.getSubject()); - - - /* Read the custom properties. If there are no custom properties - * yet, the application has to create a new CustomProperties object. - * It will serve as a container for custom properties. */ - customProperties = dsi.getCustomProperties(); - if (customProperties == null){ - fail(); - } - - /* Insert some custom properties into the container. */ - String a1=(String) customProperties.get(k1); - assertEquals("Key1",p1,a1); - String a2=(String) customProperties.get(k2); - assertEquals("Schl\u00fcssel2",p2,a2); - Integer a3=(Integer) customProperties.get("Sample Number"); - assertEquals("Sample Number",new Integer(12345),a3); - Boolean a4=(Boolean) customProperties.get("Sample Boolean"); - assertEquals("Sample Boolean",new Boolean(true),a4); - Date a5=(Date) customProperties.get("Sample Date"); - assertEquals("Custom Date:",date,a5); + /* Insert some custom properties into the container. */ + String a1 = (String) customProperties.get("Key1"); + assertEquals("Key1", "Value1", a1); + String a2 = (String) customProperties.get("Schl\u00fcssel2"); + assertEquals("Schl\u00fcssel2", "Wert2", a2); + Integer a3 = (Integer) customProperties.get("Sample Integer"); + assertEquals("Sample Number", new Integer(12345), a3); + Boolean a4 = (Boolean) customProperties.get("Sample Boolean"); + assertEquals("Sample Boolean", Boolean.TRUE, a4); + Date a5 = (Date) customProperties.get("Sample Date"); + assertEquals("Custom Date:", date, a5); + + Double a6 = (Double) customProperties.get("Sample Double"); + assertEquals("Custom Float", new Double(-1.0001), a6); + + Integer a7 = (Integer) customProperties.get("Sample Negative Integer"); + assertEquals("Neg", new Integer(-100000), a7); + } + /** + * multiplies a string + * @param s Input String + * @return the multiplied String + */ + private static String elongate(String s) { + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < 10000; i++) { + sb.append(s); + sb.append(" "); + } + return sb.toString(); } - -/** - * adds strange characters to the string - * @param s Input String - * @return the multiplied String - */ -public String strangize(String s){ - StringBuffer sb=new StringBuffer(); - String[] umlaute= {"\u00e4","\u00fc","\u00f6","\u00dc","$","\u00d6","\u00dc","\u00c9","\u00d6","@","\u00e7","&"}; - char j=0; - Random rand=new Random(); - for (int i=0;i<5;i++){ - sb.append(s); - sb.append(" "); - j=(char) rand.nextInt(220); - j+=33; - // System.out.println(j); - sb.append(">"); - sb.append(new Character(j)); - sb.append("="); - sb.append(umlaute[rand.nextInt(umlaute.length)]); - sb.append("<"); - } - - return sb.toString(); -} + /** + * Test very long input in each of the fields (approx 30-60KB each) + */ + public void testTwo() { + + String company = elongate("company"); + String manager = elongate("manager"); + String category = elongate("category"); + String title = elongate("title"); + String author = elongate("author"); + String comments = elongate("comments"); + String keywords = elongate("keywords"); + String subject = elongate("subject"); + String p1 = elongate("p1"); + String p2 = elongate("p2"); + String k1 = elongate("k1"); + String k2 = elongate("k2"); + + dsi.setCompany(company); + dsi.setManager(manager); + dsi.setCategory(category); + + si.setTitle(title); + si.setAuthor(author); + si.setComments(comments); + si.setKeywords(keywords); + si.setSubject(subject); + CustomProperties customProperties = dsi.getCustomProperties(); + if (customProperties == null) { + customProperties = new CustomProperties(); + } + /* Insert some custom properties into the container. */ + customProperties.put(k1, p1); + customProperties.put(k2, p2); + customProperties.put("Sample Number", new Integer(12345)); + customProperties.put("Sample Boolean", Boolean.TRUE); + Date date = new Date(); + customProperties.put("Sample Date", date); + + dsi.setCustomProperties(customProperties); + + closeAndReOpen(); + + assertNotNull(dsi); + assertNotNull(si); + /* + * Change the category to "POI example". Any former category value will + * be lost. If there has been no category yet, it will be created. + */ + assertEquals("Category", category, dsi.getCategory()); + assertEquals("Company", company, dsi.getCompany()); + assertEquals("Manager", manager, dsi.getManager()); + + assertEquals("", author, si.getAuthor()); + assertEquals("", title, si.getTitle()); + assertEquals("", comments, si.getComments()); + assertEquals("", keywords, si.getKeywords()); + assertEquals("", subject, si.getSubject()); + + /* + * Read the custom properties. If there are no custom properties yet, + * the application has to create a new CustomProperties object. It will + * serve as a container for custom properties. + */ + customProperties = dsi.getCustomProperties(); + if (customProperties == null) { + fail(); + } -/** - * Tests with strange characters in keys and data (Umlaute etc.) - * - */ -public void testThree(){ - - String company=strangize("company"); - String manager=strangize("manager"); - String category=strangize("category"); - String title=strangize("title"); - String author=strangize("author"); - String comments=strangize("comments"); - String keywords=strangize("keywords"); - String subject=strangize("subject"); - String p1=strangize("p1"); - String p2=strangize("p2"); - String k1=strangize("k1"); - String k2=strangize("k2"); - - dsi.setCompany(company); - dsi.setManager(manager); - dsi.setCategory(category); - - si.setTitle(title); - si.setAuthor(author); - si.setComments(comments); - si.setKeywords(keywords); - si.setSubject(subject); - CustomProperties customProperties = dsi.getCustomProperties(); - if (customProperties == null){ - customProperties = new CustomProperties(); - } - - /* Insert some custom properties into the container. */ - customProperties.put(k1, p1); - customProperties.put(k2, p2); - customProperties.put("Sample Number", new Integer(12345)); - customProperties.put("Sample Boolean", new Boolean(false)); - Date date=new Date(0); - customProperties.put("Sample Date", date); - - dsi.setCustomProperties(customProperties); - - - closeAndReOpen(); - - assertNotNull(dsi); - assertNotNull(si); - /* Change the category to "POI example". Any former category value will - * be lost. If there has been no category yet, it will be created. */ - assertEquals("Category",category,dsi.getCategory()); - assertEquals("Company",company,dsi.getCompany()); - assertEquals("Manager",manager,dsi.getManager()); - - assertEquals("",author,si.getAuthor()); - assertEquals("",title,si.getTitle()); - assertEquals("",comments,si.getComments()); - assertEquals("",keywords,si.getKeywords()); - assertEquals("",subject,si.getSubject()); - - - /* Read the custom properties. If there are no custom properties yet, - * the application has to create a new CustomProperties object. It will - * serve as a container for custom properties. */ - customProperties = dsi.getCustomProperties(); - if (customProperties == null){ - fail(); - } - - /* Insert some custom properties into the container. */ - // System.out.println(k1); - String a1=(String) customProperties.get(k1); - assertEquals("Key1",p1,a1); - String a2=(String) customProperties.get(k2); - assertEquals("Schl\u00fcssel2",p2,a2); - Integer a3=(Integer) customProperties.get("Sample Number"); - assertEquals("Sample Number",new Integer(12345),a3); - Boolean a4=(Boolean) customProperties.get("Sample Boolean"); - assertEquals("Sample Boolean",new Boolean(false),a4); - Date a5=(Date) customProperties.get("Sample Date"); - assertEquals("Custom Date:",date,a5); - + /* Insert some custom properties into the container. */ + String a1 = (String) customProperties.get(k1); + assertEquals("Key1", p1, a1); + String a2 = (String) customProperties.get(k2); + assertEquals("Schl\u00fcssel2", p2, a2); + Integer a3 = (Integer) customProperties.get("Sample Number"); + assertEquals("Sample Number", new Integer(12345), a3); + Boolean a4 = (Boolean) customProperties.get("Sample Boolean"); + assertEquals("Sample Boolean", Boolean.TRUE, a4); + Date a5 = (Date) customProperties.get("Sample Date"); + assertEquals("Custom Date:", date, a5); } - - /** - * Iterative testing: writing, reading etc. - * - */ - public void testFour(){ - for (int i=1;i<100;i++){ - setUp(); - testThree(); - tearDown(); - } - } - - - /** - * adds strange characters to the string with the adding of unicode characters - * @param s Input String - * @return the multiplied String - */ - public String strangizeU(String s){ - - StringBuffer sb=new StringBuffer(); - String[] umlaute= {"\u00e4","\u00fc","\u00f6","\u00dc","$","\u00d6","\u00dc","\u00c9","\u00d6","@","\u00e7","&"}; - char j=0; - Random rand=new Random(); - for (int i=0;i<5;i++){ - sb.append(s); - sb.append(" "); - j=(char) rand.nextInt(220); - j+=33; - // System.out.println(j); - sb.append(">"); - sb.append(new Character(j)); - sb.append("="); - sb.append(umlaute[rand.nextInt(umlaute.length)]); - sb.append("<"); - } - sb.append("\u00e4\u00f6\u00fc\uD840\uDC00"); - return sb.toString(); - } - /** - * Unicode test - * - */ - public void testUnicode(){ - String company=strangizeU("company"); - String manager=strangizeU("manager"); - String category=strangizeU("category"); - String title=strangizeU("title"); - String author=strangizeU("author"); - String comments=strangizeU("comments"); - String keywords=strangizeU("keywords"); - String subject=strangizeU("subject"); - String p1=strangizeU("p1"); - String p2=strangizeU("p2"); - String k1=strangizeU("k1"); - String k2=strangizeU("k2"); - - dsi.setCompany(company); - dsi.setManager(manager); - dsi.setCategory(category); - - si.setTitle(title); - si.setAuthor(author); - si.setComments(comments); - si.setKeywords(keywords); - si.setSubject(subject); - CustomProperties customProperties = dsi.getCustomProperties(); - if (customProperties == null){ - customProperties = new CustomProperties(); - } - - /* Insert some custom properties into the container. */ - customProperties.put(k1, p1); - customProperties.put(k2, p2); - customProperties.put("Sample Number", new Integer(12345)); - customProperties.put("Sample Boolean", new Boolean(true)); - Date date=new Date(); - customProperties.put("Sample Date", date); - - dsi.setCustomProperties(customProperties); - - - closeAndReOpen(); - - assertNotNull(dsi); - assertNotNull(si); - /* Change the category to "POI example". Any former category value will - * be lost. If there has been no category yet, it will be created. */ - assertEquals("Category",category,dsi.getCategory()); - assertEquals("Company",company,dsi.getCompany()); - assertEquals("Manager",manager,dsi.getManager()); - - assertEquals("",author,si.getAuthor()); - assertEquals("",title,si.getTitle()); - assertEquals("",comments,si.getComments()); - assertEquals("",keywords,si.getKeywords()); - assertEquals("",subject,si.getSubject()); - - - /* Read the custom properties. If there are no custom properties yet, - * the application has to create a new CustomProperties object. It will - * serve as a container for custom properties. */ - customProperties = dsi.getCustomProperties(); - if (customProperties == null){ - fail(); - } - - /* Insert some custom properties into the container. */ - // System.out.println(k1); - String a1=(String) customProperties.get(k1); - assertEquals("Key1",p1,a1); - String a2=(String) customProperties.get(k2); - assertEquals("Schl\u00fcssel2",p2,a2); - Integer a3=(Integer) customProperties.get("Sample Number"); - assertEquals("Sample Number",new Integer(12345),a3); - Boolean a4=(Boolean) customProperties.get("Sample Boolean"); - assertEquals("Sample Boolean",new Boolean(true),a4); - Date a5=(Date) customProperties.get("Sample Date"); - assertEquals("Custom Date:",date,a5); - - - - } - - - /** - * Iterative testing of the unicode test - * + + /** + * adds strange characters to the string + * @param s Input String + * @return the multiplied String + */ + private static String strangize(String s) { + StringBuffer sb = new StringBuffer(); + String[] umlaute = { "\u00e4", "\u00fc", "\u00f6", "\u00dc", "$", "\u00d6", "\u00dc", + "\u00c9", "\u00d6", "@", "\u00e7", "&" }; + char j = 0; + Random rand = new Random(0); // TODO - no Random - tests should be completely deterministic + for (int i = 0; i < 5; i++) { + sb.append(s); + sb.append(" "); + j = (char) rand.nextInt(220); + j += 33; + // System.out.println(j); + sb.append(">"); + sb.append(new Character(j)); + sb.append("="); + sb.append(umlaute[rand.nextInt(umlaute.length)]); + sb.append("<"); + } + + return sb.toString(); + } + + + /** + * Tests with strange characters in keys and data (Umlaute etc.) + */ + public void testThree() { + + String company = strangize("company"); + String manager = strangize("manager"); + String category = strangize("category"); + String title = strangize("title"); + String author = strangize("author"); + String comments = strangize("comments"); + String keywords = strangize("keywords"); + String subject = strangize("subject"); + String p1 = strangize("p1"); + String p2 = strangize("p2"); + String k1 = strangize("k1"); + String k2 = strangize("k2"); + + dsi.setCompany(company); + dsi.setManager(manager); + dsi.setCategory(category); + + si.setTitle(title); + si.setAuthor(author); + si.setComments(comments); + si.setKeywords(keywords); + si.setSubject(subject); + CustomProperties customProperties = dsi.getCustomProperties(); + if (customProperties == null) { + customProperties = new CustomProperties(); + } + + /* Insert some custom properties into the container. */ + customProperties.put(k1, p1); + customProperties.put(k2, p2); + customProperties.put("Sample Number", new Integer(12345)); + customProperties.put("Sample Boolean", Boolean.FALSE); + Date date = new Date(0); + customProperties.put("Sample Date", date); + + dsi.setCustomProperties(customProperties); + + closeAndReOpen(); + + assertNotNull(dsi); + assertNotNull(si); + /* + * Change the category to "POI example". Any former category value will + * be lost. If there has been no category yet, it will be created. + */ + assertEquals("Category", category, dsi.getCategory()); + assertEquals("Company", company, dsi.getCompany()); + assertEquals("Manager", manager, dsi.getManager()); + + assertEquals("", author, si.getAuthor()); + assertEquals("", title, si.getTitle()); + assertEquals("", comments, si.getComments()); + assertEquals("", keywords, si.getKeywords()); + assertEquals("", subject, si.getSubject()); + + /* + * Read the custom properties. If there are no custom properties yet, + * the application has to create a new CustomProperties object. It will + * serve as a container for custom properties. + */ + customProperties = dsi.getCustomProperties(); + if (customProperties == null) { + fail(); + } + + /* Insert some custom properties into the container. */ + // System.out.println(k1); + String a1 = (String) customProperties.get(k1); + assertEquals("Key1", p1, a1); + String a2 = (String) customProperties.get(k2); + assertEquals("Schl\u00fcssel2", p2, a2); + Integer a3 = (Integer) customProperties.get("Sample Number"); + assertEquals("Sample Number", new Integer(12345), a3); + Boolean a4 = (Boolean) customProperties.get("Sample Boolean"); + assertEquals("Sample Boolean", Boolean.FALSE, a4); + Date a5 = (Date) customProperties.get("Sample Date"); + assertEquals("Custom Date:", date, a5); + + } + + /** + * Iterative testing: writing, reading etc. + */ + public void testFour() { + for (int i = 1; i < 100; i++) { + setUp(); + testThree(); + } + } + + + + /** + * adds strange characters to the string with the adding of unicode characters + * @param s Input String + * @return the multiplied String */ - public void testSix(){ - for (int i=1;i<100;i++){ - setUp(); - testUnicode(); - tearDown(); - } - } - + private static String strangizeU(String s) { + + StringBuffer sb = new StringBuffer(); + String[] umlaute = { "\u00e4", "\u00fc", "\u00f6", "\u00dc", "$", "\u00d6", "\u00dc", + "\u00c9", "\u00d6", "@", "\u00e7", "&" }; + char j = 0; + Random rand = new Random(0); // TODO - no Random - tests should be completely deterministic + for (int i = 0; i < 5; i++) { + sb.append(s); + sb.append(" "); + j = (char) rand.nextInt(220); + j += 33; + // System.out.println(j); + sb.append(">"); + sb.append(new Character(j)); + sb.append("="); + sb.append(umlaute[rand.nextInt(umlaute.length)]); + sb.append("<"); + } + sb.append("\u00e4\u00f6\u00fc\uD840\uDC00"); + return sb.toString(); + } + + /** + * Unicode test + */ + public void testUnicode() { + String company = strangizeU("company"); + String manager = strangizeU("manager"); + String category = strangizeU("category"); + String title = strangizeU("title"); + String author = strangizeU("author"); + String comments = strangizeU("comments"); + String keywords = strangizeU("keywords"); + String subject = strangizeU("subject"); + String p1 = strangizeU("p1"); + String p2 = strangizeU("p2"); + String k1 = strangizeU("k1"); + String k2 = strangizeU("k2"); + + dsi.setCompany(company); + dsi.setManager(manager); + dsi.setCategory(category); + + si.setTitle(title); + si.setAuthor(author); + si.setComments(comments); + si.setKeywords(keywords); + si.setSubject(subject); + CustomProperties customProperties = dsi.getCustomProperties(); + if (customProperties == null) { + customProperties = new CustomProperties(); + } + + /* Insert some custom properties into the container. */ + customProperties.put(k1, p1); + customProperties.put(k2, p2); + customProperties.put("Sample Number", new Integer(12345)); + customProperties.put("Sample Boolean", Boolean.TRUE); + Date date = new Date(); + customProperties.put("Sample Date", date); + + dsi.setCustomProperties(customProperties); + + closeAndReOpen(); + + assertNotNull(dsi); + assertNotNull(si); + /* + * Change the category to "POI example". Any former category value will + * be lost. If there has been no category yet, it will be created. + */ + assertEquals("Category", category, dsi.getCategory()); + assertEquals("Company", company, dsi.getCompany()); + assertEquals("Manager", manager, dsi.getManager()); + + assertEquals("", author, si.getAuthor()); + assertEquals("", title, si.getTitle()); + assertEquals("", comments, si.getComments()); + assertEquals("", keywords, si.getKeywords()); + assertEquals("", subject, si.getSubject()); + + /* + * Read the custom properties. If there are no custom properties yet, + * the application has to create a new CustomProperties object. It will + * serve as a container for custom properties. + */ + customProperties = dsi.getCustomProperties(); + if (customProperties == null) { + fail(); + } + + /* Insert some custom properties into the container. */ + // System.out.println(k1); + String a1 = (String) customProperties.get(k1); + assertEquals("Key1", p1, a1); + String a2 = (String) customProperties.get(k2); + assertEquals("Schl\u00fcssel2", p2, a2); + Integer a3 = (Integer) customProperties.get("Sample Number"); + assertEquals("Sample Number", new Integer(12345), a3); + Boolean a4 = (Boolean) customProperties.get("Sample Boolean"); + assertEquals("Sample Boolean", Boolean.TRUE, a4); + Date a5 = (Date) customProperties.get("Sample Date"); + assertEquals("Custom Date:", date, a5); + } + /** - * Tests conversion in custom fields and errors - * - */ - public void testConvAndExistance(){ - - - CustomProperties customProperties = dsi.getCustomProperties(); - if (customProperties == null){ - customProperties = new CustomProperties(); - } - - /* Insert some custom properties into the container. */ - customProperties.put("int", new Integer(12345)); - customProperties.put("negint", new Integer(-12345)); - customProperties.put("long", new Long(12345)); - customProperties.put("neglong", new Long(-12345)); - customProperties.put("boolean", new Boolean(true)); - customProperties.put("string", "a String"); - //customProperties.put("float", new Float(12345.0)); is not valid - //customProperties.put("negfloat", new Float(-12345.1)); is not valid - customProperties.put("double", new Double(12345.2)); - customProperties.put("negdouble", new Double(-12345.3)); - //customProperties.put("char", new Character('a')); is not valid - - Date date=new Date(); - customProperties.put("date", date); - - dsi.setCustomProperties(customProperties); - - - closeAndReOpen(); - - assertNotNull(dsi); - assertNotNull(si); - /* Change the category to "POI example". Any former category value will - * be lost. If there has been no category yet, it will be created. */ - assertNull(dsi.getCategory()); - assertNull(dsi.getCompany()); - assertNull(dsi.getManager()); - - assertNull(si.getAuthor()); - assertNull(si.getTitle()); - assertNull(si.getComments()); - assertNull(si.getKeywords()); - assertNull(si.getSubject()); - - - /* Read the custom properties. If there are no custom properties - * yet, the application has to create a new CustomProperties object. - * It will serve as a container for custom properties. */ - customProperties = dsi.getCustomProperties(); - if (customProperties == null){ - fail(); - } - - /* Insert some custom properties into the container. */ - - Integer a3=(Integer) customProperties.get("int"); - assertEquals("int",new Integer(12345),a3); - - a3=(Integer) customProperties.get("negint"); - assertEquals("negint",new Integer(-12345),a3); - - Long al=(Long) customProperties.get("neglong"); - assertEquals("neglong",new Long(-12345),al); - - al=(Long) customProperties.get("long"); - assertEquals("long",new Long(12345),al); - - Boolean a4=(Boolean) customProperties.get("boolean"); - assertEquals("boolean",new Boolean(true),a4); - - Date a5=(Date) customProperties.get("date"); - assertEquals("Custom Date:",date,a5); - - Double d=(Double) customProperties.get("double"); - assertEquals("int",new Double(12345.2),d); - - d=(Double) customProperties.get("negdouble"); - assertEquals("string",new Double(-12345.3),d); - - String s=(String) customProperties.get("string"); - assertEquals("sring","a String",s); - - Object o=null; - - o=customProperties.get("string"); - if (!(o instanceof String)){ - fail(); - } - o=customProperties.get("boolean"); - if (!(o instanceof Boolean)){ - fail(); - } - - o=customProperties.get("int"); - if (!(o instanceof Integer)){ - fail(); - } - o=customProperties.get("negint"); - if (!(o instanceof Integer)){ - fail(); - } - - o=customProperties.get("long"); - if (!(o instanceof Long)){ - fail(); - } - o=customProperties.get("neglong"); - if (!(o instanceof Long)){ - fail(); - } - - o=customProperties.get("double"); - if (!(o instanceof Double)){ - fail(); - } - o=customProperties.get("negdouble"); - if (!(o instanceof Double)){ - fail(); - } - - o=customProperties.get("date"); - if (!(o instanceof Date)){ - fail(); - } - } - - - -}
\ No newline at end of file + * Iterative testing of the unicode test + * + */ + public void testSix() { + for (int i = 1; i < 100; i++) { + setUp(); + testUnicode(); + } + } + + + /** + * Tests conversion in custom fields and errors + */ + public void testConvAndExistence() { + + CustomProperties customProperties = dsi.getCustomProperties(); + if (customProperties == null) { + customProperties = new CustomProperties(); + } + + /* Insert some custom properties into the container. */ + customProperties.put("int", new Integer(12345)); + customProperties.put("negint", new Integer(-12345)); + customProperties.put("long", new Long(12345)); + customProperties.put("neglong", new Long(-12345)); + customProperties.put("boolean", Boolean.TRUE); + customProperties.put("string", "a String"); + // customProperties.put("float", new Float(12345.0)); is not valid + // customProperties.put("negfloat", new Float(-12345.1)); is not valid + customProperties.put("double", new Double(12345.2)); + customProperties.put("negdouble", new Double(-12345.3)); + // customProperties.put("char", new Character('a')); is not valid + + Date date = new Date(); + customProperties.put("date", date); + + dsi.setCustomProperties(customProperties); + + closeAndReOpen(); + + assertNotNull(dsi); + assertNotNull(si); + /* + * Change the category to "POI example". Any former category value will + * be lost. If there has been no category yet, it will be created. + */ + assertNull(dsi.getCategory()); + assertNull(dsi.getCompany()); + assertNull(dsi.getManager()); + + assertNull(si.getAuthor()); + assertNull(si.getTitle()); + assertNull(si.getComments()); + assertNull(si.getKeywords()); + assertNull(si.getSubject()); + + /* + * Read the custom properties. If there are no custom properties yet, + * the application has to create a new CustomProperties object. It will + * serve as a container for custom properties. + */ + customProperties = dsi.getCustomProperties(); + if (customProperties == null) { + fail(); + } + + /* Insert some custom properties into the container. */ + + Integer a3 = (Integer) customProperties.get("int"); + assertEquals("int", new Integer(12345), a3); + + a3 = (Integer) customProperties.get("negint"); + assertEquals("negint", new Integer(-12345), a3); + + Long al = (Long) customProperties.get("neglong"); + assertEquals("neglong", new Long(-12345), al); + + al = (Long) customProperties.get("long"); + assertEquals("long", new Long(12345), al); + + Boolean a4 = (Boolean) customProperties.get("boolean"); + assertEquals("boolean", Boolean.TRUE, a4); + + Date a5 = (Date) customProperties.get("date"); + assertEquals("Custom Date:", date, a5); + + Double d = (Double) customProperties.get("double"); + assertEquals("int", new Double(12345.2), d); + + d = (Double) customProperties.get("negdouble"); + assertEquals("string", new Double(-12345.3), d); + + String s = (String) customProperties.get("string"); + assertEquals("sring", "a String", s); + + + assertTrue(customProperties.get("string") instanceof String); + assertTrue(customProperties.get("boolean") instanceof Boolean); + assertTrue(customProperties.get("int") instanceof Integer); + assertTrue(customProperties.get("negint") instanceof Integer); + assertTrue(customProperties.get("long") instanceof Long); + assertTrue(customProperties.get("neglong") instanceof Long); + assertTrue(customProperties.get("double") instanceof Double); + assertTrue(customProperties.get("negdouble") instanceof Double); + assertTrue(customProperties.get("date") instanceof Date); + } +} |