aboutsummaryrefslogtreecommitdiffstats
path: root/src/testcases/org/apache/poi/hpsf/basic/TestMetaDataIPI.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/testcases/org/apache/poi/hpsf/basic/TestMetaDataIPI.java')
-rw-r--r--src/testcases/org/apache/poi/hpsf/basic/TestMetaDataIPI.java1348
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);
+ }
+}