/**
   *
   *
   * <pre>
   * ibm-ejb-jar-bnd.xmi 파일에 대한 파싱 테스트
   * </pre>
   */
  @Test
  public void testIbmEjbJarBnd() {
    // 초기화
    File file = new File(this.getClass().getResource("/parser/ibm-ejb-jar-bnd.xmi").getFile());
    AnalyzeDefinition analyzeDefinition = new AnalyzeDefinition();

    PDFMetadataDefinition metadataDefinition = new PDFMetadataDefinition();
    ThreadLocalUtil.clearSharedObject();
    ThreadLocalUtil.add(ChameleonConstants.PDF_METADATA_DEFINITION, metadataDefinition);

    try {
      File jboss =
          new File(new File(this.getClass().getResource("/parser").getFile()), "jboss.xml");
      if (jboss.exists()) {
        jboss.delete();
      }

      // 테스트
      new IbmEjbJarBndXMIParser().parse(file, analyzeDefinition);

      // 검증
      List<EjbRecommend> recommendList = metadataDefinition.getEjbRecommendList();
      List<String> transFileList = metadataDefinition.getEjbTransFileList();
      assertTrue("recommendList의 크기는 2이어야 합니다.", recommendList.size() == 2);
      assertTrue("transFileList의 크기는 1이어야 합니다.", transFileList.size() == 1);
      assertTrue(
          "첫 번째 transFileList는 \"jboss.xml\"이어야 합니다.", transFileList.get(0).endsWith("jboss.xml"));

      System.err.println(recommendList.get(0).getContents());
      System.err.println(recommendList.get(1).getContents());

      // jboss.xml 파일 생섬 결과 검증
      jboss = new File(this.getClass().getResource("/parser/jboss.xml").getFile());
      assertTrue("jboss.xml 파일이 생성되어 있어야 합니다.", jboss.exists());
      jboss.delete();
    } catch (Throwable t) {
      fail("Exception이 발생하면 안됩니다.");
    }
  } // end of testIbmEjbJarBnd()