FileDocCategorySizeDatePackage
TestDocumentDescriptor.javaAPI DocApache Poi 3.0.16678Mon Jan 01 12:39:44 GMT 2007org.apache.poi.poifs.filesystem

TestDocumentDescriptor

public class TestDocumentDescriptor extends TestCase
Class to test DocumentDescriptor functionality
author
Marc Johnson

Fields Summary
Constructors Summary
public TestDocumentDescriptor(String name)
Constructor TestDocumentDescriptor

param
name

        super(name);
    
Methods Summary
public static voidmain(java.lang.String[] ignored_args)
main method to run the unit tests

param
ignored_args

        System.out.println(
            "Testing org.apache.poi.poifs.eventfilesystem.DocumentDescriptor");
        junit.textui.TestRunner.run(TestDocumentDescriptor.class);
    
public voidtestEquality()
test equality

        String[]            names =
        {
            "c1", "c2", "c3", "c4", "c5"
        };
        POIFSDocumentPath   a1    = new POIFSDocumentPath();
        POIFSDocumentPath   a2    = new POIFSDocumentPath(null);
        POIFSDocumentPath   a3    = new POIFSDocumentPath(new String[ 0 ]);
        POIFSDocumentPath   a4    = new POIFSDocumentPath(a1, null);
        POIFSDocumentPath   a5    = new POIFSDocumentPath(a1,
                                        new String[ 0 ]);
        POIFSDocumentPath[] paths =
        {
            a1, a2, a3, a4, a5
        };

        for (int j = 0; j < paths.length; j++)
        {
            for (int k = 0; k < paths.length; k++)
            {
                for (int m = 0; m < names.length; m++)
                {
                    DocumentDescriptor d1 = new DocumentDescriptor(paths[ j ],
                                                names[ m ]);

                    for (int n = 0; n < names.length; n++)
                    {
                        DocumentDescriptor d2 =
                            new DocumentDescriptor(paths[ k ], names[ n ]);

                        if (m == n)
                        {
                            assertEquals("" + j + "," + k + "," + m + ","
                                         + n, d1, d2);
                        }
                        else
                        {
                            assertTrue("" + j + "," + k + "," + m + "," + n,
                                       !d1.equals(d2));
                        }
                    }
                }
            }
        }
        a2 = new POIFSDocumentPath(a1, new String[]
        {
            "foo"
        });
        a3 = new POIFSDocumentPath(a2, new String[]
        {
            "bar"
        });
        a4 = new POIFSDocumentPath(a3, new String[]
        {
            "fubar"
        });
        a5 = new POIFSDocumentPath(a4, new String[]
        {
            "foobar"
        });
        POIFSDocumentPath[] builtUpPaths =
        {
            a1, a2, a3, a4, a5
        };
        POIFSDocumentPath[] fullPaths    =
        {
            new POIFSDocumentPath(), new POIFSDocumentPath(new String[]
            {
                "foo"
            }), new POIFSDocumentPath(new String[]
            {
                "foo", "bar"
            }), new POIFSDocumentPath(new String[]
            {
                "foo", "bar", "fubar"
            }), new POIFSDocumentPath(new String[]
            {
                "foo", "bar", "fubar", "foobar"
            })
        };

        for (int k = 0; k < builtUpPaths.length; k++)
        {
            for (int j = 0; j < fullPaths.length; j++)
            {
                for (int m = 0; m < names.length; m++)
                {
                    DocumentDescriptor d1 =
                        new DocumentDescriptor(fullPaths[ j ], names[ m ]);

                    for (int n = 0; n < names.length; n++)
                    {
                        DocumentDescriptor d2 =
                            new DocumentDescriptor(builtUpPaths[ k ],
                                                   names[ n ]);

                        if ((k == j) && (m == n))
                        {
                            assertEquals("" + j + "," + k + "," + m + ","
                                         + n, d1, d2);
                        }
                        else
                        {
                            assertTrue("" + j + "," + k + "," + m + "," + n,
                                       !(d1.equals(d2)));
                        }
                    }
                }
            }
        }
        POIFSDocumentPath[] badPaths =
        {
            new POIFSDocumentPath(new String[]
            {
                "_foo"
            }), new POIFSDocumentPath(new String[]
            {
                "foo", "_bar"
            }), new POIFSDocumentPath(new String[]
            {
                "foo", "bar", "_fubar"
            }), new POIFSDocumentPath(new String[]
            {
                "foo", "bar", "fubar", "_foobar"
            })
        };

        for (int k = 0; k < builtUpPaths.length; k++)
        {
            for (int j = 0; j < badPaths.length; j++)
            {
                for (int m = 0; m < names.length; m++)
                {
                    DocumentDescriptor d1 =
                        new DocumentDescriptor(badPaths[ j ], names[ m ]);

                    for (int n = 0; n < names.length; n++)
                    {
                        DocumentDescriptor d2 =
                            new DocumentDescriptor(builtUpPaths[ k ],
                                                   names[ n ]);

                        assertTrue("" + j + "," + k + "," + m + "," + n,
                                   !(d1.equals(d2)));
                    }
                }
            }
        }