    1   /*
    2    * Copyright (c) 2003
    3    * Information Desire GmbH
    4    * All rights reserved.
    5    */
    6   package com.infodesire.infobit;
    7
    8   import com.infodesire.infobit.data.Acl;
    9   import com.infodesire.infobit.data.Infobit;
    10
    11  import com.infodesire.infobit.external.InfobitExporter;
    12  import com.infodesire.infobit.external.InfobitImporter;
    13
    14  import com.infodesire.infobit.external.impl.ImporterImpl;
    15  // import com.infodesire.infobit.external.impl.VelocityExporter;
    16  import com.infodesire.infobit.external.impl.SimpleExporter;
    17
    18  import junit.framework.TestCase;
    19  import junit.framework.TestSuite;
    20
    21  import org.apache.commons.logging.Log;
    22  import org.apache.commons.logging.LogFactory;
    23
    24  import java.io.BufferedReader;
    25  import java.io.IOException;
    26  import java.io.InputStream;
    27  import java.io.InputStreamReader;
    28  import java.io.Reader;
    29  import java.io.StringReader;
    30  import java.io.StringWriter;
    31
    32  import java.util.ArrayList;
    33  import java.util.Collection;
    34  import java.util.HashMap;
    35  import java.util.HashSet;
    36  import java.util.List;
    37  import java.util.Map;
    38  import java.util.Set;
    39
    40  /***
    41   * Test cases asserting the XML representation of infobits
    42   *
    43   * @author    peter
    44   * @created   August 27, 2003
    45   * @version   $Revision: 1.1 $
    46   */
    47  public class XMLImportTest extends XMLTestBase {
    48
    49      /***
    50       * The infobit importer being part of the fixture
    51       */
    52      protected InfobitImporter _importer;
    53
    54
    55      /***
    56       * Initializes the test cases.
    57       *
    58       * @param name  Test name
    59       */
    60      public XMLImportTest(String name) {
    61          super(name);
    62      }
    63
    64
    65      /***
    66       * Common test case fixture.
    67       *
    68       * @exception Exception  Description of Exception
    69       */
    70      public void setUp() throws Exception {
    71          super.setUp();
    72          _importer = new ImporterImpl();
    73          _importer.setManager(_manager);
    74          _importer.setAcl(_defaultAcl);
    75          _importer.init();
    76      }
    77
    78
    79      /***
    80       * Common teardown of test case fixtures.
    81       *
    82       * @exception Exception  Description of Exception
    83       */
    84      public void tearDown() throws Exception {
    85      }
    86
    87
    88      /***
    89       * Checks export of an empty infobit.
    90       *
    91       * @exception Exception  Description of Exception
    92       */
    93      public void testEmptyInfobitImport() throws Exception {
    94          String path = "/com/infodesire/infobit/external/emptyInfobit.xml";
    95          performImportTest("testEmptyInfobitImport", path);
    96      }
    97
    98
    99      /***
    100      * Checks the import of an infobit with multiple (text content) versions
    101      * attached.
    102      *
    103      * @exception Exception  Generic error
    104      */
    105     public void testMultiVersionInfobitImport() throws Exception {
    106         String path =
    107             "/com/infodesire/infobit/external/multiVersionInfobit.xml";
    108         performImportTest("testMultiVersionInfobitImport", path);
    109     }
    110
    111
    112     /***
    113      * Checks the import of an infobit with a binary content version attached.
    114      *
    115      * @exception Exception  Description of Exception
    116      */
    117     public void testBinaryContentInfobitImport() throws Exception {
    118         String path =
    119             "/com/infodesire/infobit/external/binaryContentInfobit.xml";
    120         performImportTest("testBinaryContentInfobitImport", path);
    121     }
    122
    123
    124     /***
    125      * Checks the XML representation of multiple unrelated infobits.
    126      *
    127      * @exception Exception  Description of Exception
    128      */
    129     public void testMultipleInfobitsImport() throws Exception {
    130         String path = "/com/infodesire/infobit/external/multipleInfobits.xml";
    131         performImportTest("testMultipleInfobitsImport", path);
    132     }
    133
    134
    135     /***
    136      * Checks the import of a template content infobit.
    137      *
    138      * @exception Exception  Description of Exception
    139      */
    140     public void testTemplateInfobitImport() throws Exception {
    141         String path = "/com/infodesire/infobit/external/templateInfobit.xml";
    142         performImportTest("testTemplateInfobitImport", path);
    143     }
    144
    145
    146     /***
    147      * Checks the XML representation of a set of script with its referred
    148      * template infobit.
    149      *
    150      * @exception Exception  Description of Exception
    151      */
    152     public void testScriptSetImport() throws Exception {
    153         String path = "/com/infodesire/infobit/external/scriptSet.xml";
    154         performImportTest("testScriptSetImport", path);
    155     }
    156
    157
    158     /***
    159      * Executes a test to successfully import an infobit. The Test consists in
    160      * importing (with import already validated) an infobit, re-exporting it and
    161      * assuring that the re-exported representation coincides with the initial
    162      * one.
    163      *
    164      * @param name           Descriptive name of the test, used for tracing only
    165      * @param path           Path to the XML representation (to be located in
    166      *      the classpath) which to test export for.
    167      * @exception Exception  Description of Exception
    168      */
    169     private void performImportTest(String name, String path)
    170          throws Exception {
    171
    172         InputStream is = getClass().getResourceAsStream(path);
    173         InputStreamReader source = new InputStreamReader(is);
    174
    175         List diag = new ArrayList();
    176         List infobits = _importer.importInfobits(source, path, diag);
    177         assertTrue("import errors", diag.size() == 0);
    178
    179         StringWriter dest = new StringWriter();
    180         _exporter.export(infobits, dest);
    181         dest.close();
    182         String reexport = dest.toString();
    183         Reader reexReader = new StringReader(reexport);
    184
    185         //  DEBUG
    186         System.out.println("Import: " + name);
    187         System.out.print(reexport);
    188
    189         is = getClass().getResourceAsStream(path);
    190         source = new InputStreamReader(is);
    191
    192         BufferedReader obtained = new BufferedReader(reexReader);
    193         BufferedReader expected = new BufferedReader(source);
    194         checkDocument(obtained, expected);
    195     }
    196
    197 }

This page was automatically generated by Maven