jp.escofi.emr.transformer.writer.XmlWriterCallerTestE001_001.java Source code

Java tutorial

Introduction

Here is the source code for jp.escofi.emr.transformer.writer.XmlWriterCallerTestE001_001.java

Source

 package jp.escofi.emr.transformer.writer;

 import java.io.BufferedReader;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.sql.SQLException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;

 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.parsers.SAXParserFactory;

 import jp.escofi.emr.engine.common.constant.MessageCode;
 import jp.escofi.emr.engine.common.exception.EMRException;
 import jp.escofi.emr.transformer.constant.PDSConstants;
 import jp.escofi.emr.transformer.sql.KeyitemMapper;
 import jp.escofi.emr.transformer.sql.ResultObjectMapper;
 import jp.iwin.pds.xml2db.datatable.TblAttributeElem;
 import jp.iwin.pds.xml2db.datatable.TblAttributeField;
 import jp.iwin.pds.xml2db.datatable.TblAttributeGroup;
 import jp.iwin.pds.xml2db.datatable.TblAttributeValue;
 import jp.iwin.pds.xml2db.datatable.TblDataModel;
 import jp.iwin.pds.xml2db.datatable.TblKeySolve;
 import jp.iwin.pds.xml2db.datatable.TblMapper;

 import org.apache.ibatis.io.Resources;
 import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 import org.junit.Test;
 import org.xml.sax.SAXException;

 /**
  * ^pc?[eXgNX?iE001n001?`026?j
  * <P>
  * ^pc?[?(?C??)neXg?\bh`NX?B
  * </P>
  * @author $Author: song.ck $
  */
 public class XmlWriterCallerTestE001_001 extends XmlWriterCallerTest {

     /**
      * eXgID?FPXWXML_E_001_1 ^pc?[?n
      */
     @Test
     public void testPXWXML_E_001_1() throws Exception {

         String[] cmdarray = new String[] { "java", "-classpath",
                 "Z:/OutputXML/bin;Z:/OutputXML/lib/commons-logging-1.1.1.jar;Z:/OutputXML/lib/log4j-1.2.9.jar;Z:/OutputXML/lib/mybatis-3.0.2.jar;Z:/OutputXML/lib/db2jcc.jar;Z:/OutputXML/lib/db2jcc_license_cu.jar;Z:/OutputXML/lib/pds.jar;Z:/OutputXML/lib/pdstool.jar",
                 "jp.iwin.pds.xmlwriter.XmlWriterCaller" };
         String expectedMessage = "G?[R?[h?FP908E?AG?[?bZ?[W?F?s??B??s??B?i??F[]?j";
         this.main(cmdarray, expectedMessage);
     }

     /**
      * eXgID?FPXWXML_E_001_2 ^pc?[?n
      */
     @Test
     public void testPXWXML_E_001_2() throws Exception {

         String[] cmdarray = new String[] { "java", "-classpath",
                 "Z:/OutputXML/bin;Z:/OutputXML/lib/commons-logging-1.1.1.jar;Z:/OutputXML/lib/log4j-1.2.9.jar;Z:/OutputXML/lib/mybatis-3.0.2.jar;Z:/OutputXML/lib/db2jcc.jar;Z:/OutputXML/lib/db2jcc_license_cu.jar;Z:/OutputXML/lib/pds.jar;Z:/OutputXML/lib/pdstool.jar",
                 "jp.iwin.pds.xmlwriter.XmlWriterCaller", this.driver, this.url, this.username, this.password,
                 this.productCD };
         String expectedMessage = String.format(
                 "G?[R?[h?FP908E?AG?[?bZ?[W?F?s??B??s??B?i??F[%1$s, %2$s, %3$s, %4$s, %5$s]?j",
                 this.driver, this.url, this.username, this.password, this.productCD);
         this.main(cmdarray, expectedMessage);
     }

     /**
      * eXgID?FPXWXML_E_001_3 ^pc?[?n
      */
     @Test
     public void testPXWXML_E_001_3() throws Exception {

         String[] cmdarray = new String[] { "java", "-classpath",
                 "Z:/OutputXML/bin;Z:/OutputXML/lib/commons-logging-1.1.1.jar;Z:/OutputXML/lib/log4j-1.2.9.jar;Z:/OutputXML/lib/mybatis-3.0.2.jar;Z:/OutputXML/lib/db2jcc.jar;Z:/OutputXML/lib/db2jcc_license_cu.jar;Z:/OutputXML/lib/pds.jar;Z:/OutputXML/lib/pdstool.jar",
                 "jp.iwin.pds.xmlwriter.XmlWriterCaller", this.driver, this.url, this.username, this.password,
                 this.productCD, this.xmlbase, "XXX" };
         String expectedMessage = String.format(
                 "G?[R?[h?FP908E?AG?[?bZ?[W?F?s??B??s??B?i??F[%1$s, %2$s, %3$s, %4$s, %5$s, %6$s, XXX]?j",
                 this.driver, this.url, this.username, this.password, this.productCD, this.xmlbase);
         this.main(cmdarray, expectedMessage);
     }

     /**
      * eXgID?FPXWXML_E_001_4 ^pc?[?n
      */
     @Test
     public void testPXWXML_E_001_4() throws Exception {

         // ----------------------<<Mock>>-------------------------------//
         // Virtual Mock Objectp?Apl??B
         setReturnValueAt(Resources.class, "getResourceAsReader", 0, new IOException());

         try {
             execXmlWriter();
         } catch (EMRException e) {
             assertEquals(MessageCode.EMR_B_P904E, e.getErrCode());
             assertEquals("XMLt@C?oIOG?[??B(t@CpX?Fconfiguration.xml)",
                     e.getMessage());
         }
     }

     /**
      * eXgID?FPXWXML_E_001_5 ^pc?[?n
      */
     @Test
     public void testPXWXML_E_001_5() throws Exception {

         // ----------------------<<Mock>>-------------------------------//
         // Virtual Mock Objectp?Apl??B
         setReturnValueAt(SqlSessionFactoryBuilder.class, "build", 0, new NullPointerException());

         try {
             execXmlWriter();
         } catch (EMRException e) {
             assertEquals(MessageCode.EMR_B_P903E, e.getErrCode());
             assertEquals("DBRlNVs?B", e.getMessage());
         }
     }

     /**
      * eXgID?FPXWXML_E_001_6 ^pc?[?n
      */
     @Test
     public void testPXWXML_E_001_6() throws Exception {
         // ?l
         this.driver += "test";

         try {
             execXmlWriter();
         } catch (EMRException e) {
             assertEquals(MessageCode.EMR_B_P903E, e.getErrCode());
             assertEquals("DBRlNVs?B", e.getMessage());
         }
     }

     /**
      * eXgID?FPXWXML_E_001_7 ^pc?[?n
      */
     @Test
     public void testPXWXML_E_001_7() throws Exception {
         // ?l
         this.url += "test";

         try {
             execXmlWriter();
         } catch (EMRException e) {
             assertEquals(MessageCode.EMR_B_P903E, e.getErrCode());
             assertEquals("DBRlNVs?B", e.getMessage());
         }
     }

     /**
      * eXgID?FPXWXML_E_001_8 ^pc?[?n
      */
     @Test
     public void testPXWXML_E_001_8() throws Exception {
         // ?l
         this.username += "test";

         try {
             execXmlWriter();
         } catch (EMRException e) {
             assertEquals(MessageCode.EMR_B_P903E, e.getErrCode());
             assertEquals("DBRlNVs?B", e.getMessage());
         }
     }

     /**
      * eXgID?FPXWXML_E_001_9 ^pc?[?n
      */
     @Test
     public void testPXWXML_E_001_9() throws Exception {
         // ?l
         this.password += "test";

         try {
             execXmlWriter();
         } catch (EMRException e) {
             assertEquals(MessageCode.EMR_B_P903E, e.getErrCode());
             assertEquals("DBRlNVs?B", e.getMessage());
         }
     }

     /**
      * eXgID?FPXWXML_E_001_10 ^pc?[?n
      */
     @Test
     public void testPXWXML_E_001_10() throws Exception {
         // ?l
         this.productCD = "ZZZZZ_9999";

         try {
             execXmlWriter();
         } catch (EMRException e) {
             assertEquals(MessageCode.EMR_B_P906E, e.getErrCode());
             assertEquals(String.format("?f?[^??B(?CD?F%1$s)", this.productCD), e.getMessage());
         }
     }

     /**
      * eXgID?FPXWXML_E_001_11 ^pc?[?n
      */
     @Test
     public void testPXWXML_E_001_11() throws Exception {

         // f?[^
         TblDataModel dataModel = createDefaultDatamodel();
         TblAttributeGroup attGroup = createDefaultAttGroup(dataModel);

         insertMeta(dataModel, attGroup);

         // XML?t@C
         File f = new File(this.xmlbase + File.separator + "XML_Meta.xml");

         // ?fBNg
         createOutputDir();

         // XML?t@C??p?X
         f.createNewFile();
         f.setReadOnly();

         try {
             execXmlWriter();
         } catch (EMRException e) {
             assertEquals(MessageCode.EMR_B_P904E, e.getErrCode());
             assertEquals(String.format("XMLt@C?oIOG?[??B(t@CpX?F%1$s)",
                     f.getAbsolutePath()), e.getMessage());
         } finally {
             f.delete();
         }
     }

     /**
      * eXgID?FPXWXML_E_001_12 ^pc?[?n
      */
     @Test
     public void testPXWXML_E_001_12() throws Exception {

         // f?[^
         TblDataModel dataModel = createDefaultDatamodel();
         TblAttributeGroup attGroup = createDefaultAttGroup(dataModel);

         insertMeta(dataModel, attGroup);

         // ?fBNg
         createOutputDir();

         // fBNg??
         File dir = createDir("XML_Meta.xml");

         try {
             execXmlWriter();
         } catch (EMRException e) {
             assertEquals(MessageCode.EMR_B_P904E, e.getErrCode());
             assertEquals(
                     String.format("XMLt@C?oIOG?[??B(t@CpX?F%1$s)", this.xmlbase),
                     e.getMessage());
         } finally {

             if (!dir.delete()) {
                 throw new IOException("delete fail.");
             }
         }
     }

     /**
      * eXgID?FPXWXML_E_001_13 ^pc?[?n
      */
     @Test
     public void testPXWXML_E_001_13() throws Exception {

         // f?[^
         TblDataModel dataModel = createDefaultDatamodel();
         TblAttributeGroup attGroup = createDefaultAttGroup(dataModel);
         TblAttributeElem attElem = createDefaultAttElem(dataModel);
         TblAttributeField attField = createDefaultAttField(attElem, attGroup);
         TblAttributeValue attValue = createDefaultAttValue(attField);
         List<TblAttributeValue> attValueList = new ArrayList<TblAttributeValue>(1);

         attValueList.add(attValue);
         insertDatamodel(dataModel, attGroup, attElem, attField, attValueList, null);

         // ?fBNg
         createOutputDir();

         // f?[^ft@C
         File f = new File(this.xmlbase + File.separator + "PENSER_N_001_1.xml");

         f.createNewFile();
         f.setReadOnly();

         try {
             execXmlWriter();
         } catch (EMRException e) {
             assertEquals(MessageCode.EMR_B_P904E, e.getErrCode());
             assertEquals(String.format("XMLt@C?oIOG?[??B(t@CpX?F%1$s)",
                     f.getAbsolutePath()), e.getMessage());
         } finally {
             f.delete();
         }
     }

     /**
      * eXgID?FPXWXML_E_001_14 ^pc?[?n
      */
     @Test
     public void testPXWXML_E_001_14() throws Exception {

         // f?[^
         TblDataModel dataModel = createDefaultDatamodel();
         TblAttributeGroup attGroup = createDefaultAttGroup(dataModel);
         TblAttributeElem attElem = createDefaultAttElem(dataModel);
         TblAttributeField attField = createDefaultAttField(attElem, attGroup);
         TblAttributeValue attValue = createDefaultAttValue(attField);
         List<TblAttributeValue> attValueList = new ArrayList<TblAttributeValue>(1);

         attValueList.add(attValue);
         insertDatamodel(dataModel, attGroup, attElem, attField, attValueList, null);

         // ?fBNg
         createOutputDir();

         // fBNg??
         File dir = createDir("PENSER_N_001_1.xml");

         try {
             execXmlWriter();
         } catch (EMRException e) {
             assertEquals(MessageCode.EMR_B_P904E, e.getErrCode());
             assertEquals(
                     String.format("XMLt@C?oIOG?[??B(t@CpX?F%1$s)", this.xmlbase),
                     e.getMessage());
         } finally {

             if (!dir.delete()) {
                 throw new IOException("delete fail.");
             }
         }
     }

     /**
      * eXgID?FPXWXML_E_001_15 ^pc?[?n
      */
     @Test
     public void testPXWXML_E_001_15() throws Exception {

         // f?[^
         TblDataModel dataModel = createDefaultDatamodel();
         TblAttributeGroup attGroup = createDefaultAttGroup(dataModel);
         TblAttributeElem attElem = createDefaultAttElem(dataModel);
         TblAttributeField attField = createDefaultAttField(attElem, attGroup);
         TblAttributeValue attValue = createDefaultAttValue(attField);
         List<TblAttributeValue> attValueList = new ArrayList<TblAttributeValue>(1);

         attField.setCondition_flg(true);
         attValueList.add(attValue);
         insertDatamodel(dataModel, attGroup, attElem, attField, attValueList, null);

         // ?fBNg
         createOutputDir();

         // ----------------------<<Mock>>-------------------------------//
         // Virtual Mock Objectp?Apl??B
         setReturnValueAt(SAXParserFactory.class, "newSAXParser", 0, new ParserConfigurationException());

         try {
             execXmlWriter();
         } catch (EMRException e) {
             assertEquals(MessageCode.EMR_B_P905E, e.getErrCode());
             assertEquals(
                     String.format("XMLt@C?oXMLG?[??B(t@CpX?F%1$s)", this.xmlbase),
                     e.getMessage());
         }
     }

     /**
      * eXgID?FPXWXML_E_001_16 ^pc?[?n
      */
     @Test
     public void testPXWXML_E_001_16() throws Exception {

         // f?[^
         TblDataModel dataModel = createDefaultDatamodel();
         TblAttributeGroup attGroup = createDefaultAttGroup(dataModel);
         TblAttributeElem attElem = createDefaultAttElem(dataModel);
         TblAttributeField attField = createDefaultAttField(attElem, attGroup);
         TblAttributeValue attValue = createDefaultAttValue(attField);
         List<TblAttributeValue> attValueList = new ArrayList<TblAttributeValue>(1);

         attField.setCondition_flg(true);
         attValueList.add(attValue);
         insertDatamodel(dataModel, attGroup, attElem, attField, attValueList, null);

         // ?fBNg
         createOutputDir();

         // ----------------------<<Mock>>-------------------------------//
         // Virtual Mock Objectp?Apl??B
         setReturnValueAt(SAXParserFactory.class, "newSAXParser", 0, new SAXException());

         try {
             execXmlWriter();
         } catch (EMRException e) {
             assertEquals(MessageCode.EMR_B_P905E, e.getErrCode());
             assertEquals(
                     String.format("XMLt@C?oXMLG?[??B(t@CpX?F%1$s)", this.xmlbase),
                     e.getMessage());
         }
     }

     /**
      * eXgID?FPXWXML_E_001_17 ^pc?[?n
      */
     @Test
     public void testPXWXML_E_001_17() throws Exception {

         // f?[^
         TblDataModel dataModel = createDefaultDatamodel();
         TblAttributeGroup attGroup = createDefaultAttGroup(dataModel);
         TblAttributeElem attElem = createDefaultAttElem(dataModel);
         TblAttributeField attField = createDefaultAttField(attElem, attGroup);
         TblAttributeValue attValue = createDefaultAttValue(attField);
         List<TblAttributeValue> attValueList = new ArrayList<TblAttributeValue>(1);

         attField.setCondition_flg(true);
         attValueList.add(attValue);
         insertDatamodel(dataModel, attGroup, attElem, attField, attValueList, null);

         // ?fBNg
         createOutputDir();

         // ----------------------<<Mock>>-------------------------------//
         // Virtual Mock Objectp?Apl??B
         setReturnValueAt(DatamodelinfoWriter.class, "write", 0, new RuntimeException(new SQLException()));

         try {
             execXmlWriter();
         } catch (EMRException e) {
             assertEquals(MessageCode.EMR_B_P909E, e.getErrCode());
             assertEquals("XMLt@C?o??SQLG?[??B", e.getMessage());
         }
     }

/**
 * eXgID?FPXWXML_E_001_18 ^pc?[?n
 */
@Test
public void testPXWXML_E_001_18() throws Exception {

   // f?[^
   TblDataModel dataModel = createDefaultDatamodel();
   TblAttributeGroup attGroup = createDefaultAttGroup(dataModel);
   TblAttributeElem attElem = createDefaultAttElem(dataModel);
   TblAttributeField attField = createDefaultAttField(attElem, attGroup);
   TblAttributeValue attValue = createDefaultAttValue(attField);
   List<TblAttributeValue> attValueList = new ArrayList<TblAttributeValue>(1);

   attField.setCondition_flg(true);
   attValueList.add(attValue);
   insertDatamodel(dataModel, attGroup, attElem, attField, attValueList, null);

   // ?fBNg
   createOutputDir();

   // ----------------------<<Mock>>-------------------------------//
   // Virtual Mock Objectp?Apl??B
   setReturnValueAt(DatamodelinfoWriter.class, "write", 0,
         new NullPointerException());

   try {
      execXmlWriter();
   } catch (EMRException e) {
      assertEquals(MessageCode.EMR_B_P910E, e.getErrCode());
      assertEquals("\???B",
            e.getMessage());
   }
}

     /**
      * eXgID?FPXWXML_E_001_19 ^pc?[?n
      */
     @Test
     public void testPXWXML_E_001_19() throws Exception {

         // f?[^
         TblDataModel dataModel = createDefaultDatamodel();
         TblAttributeGroup attGroup = createDefaultAttGroup(dataModel);

         dataModel.setProduct_id(99999);
         insertMeta(dataModel, attGroup);

         try {
             execXmlWriter();
         } catch (EMRException e) {
             assertEquals(MessageCode.EMR_B_P912E, e.getErrCode());
             assertEquals(String.format("f?[^f??B(?CD?F%1$s)", this.productCD),
                     e.getMessage());
         }
     }

     /**
      * eXgID?FPXWXML_E_001_20 ^pc?[?n
      */
     @Test
     public void testPXWXML_E_001_20() throws Exception {

         // f?[^
         TblDataModel dataModel = createDefaultDatamodel();
         TblAttributeGroup attGroup = createDefaultAttGroup(dataModel);

         attGroup.setDatamodel_id(99999);
         insertMeta(dataModel, attGroup);

         // ?fBNg
         createOutputDir();

         // ^pc?[?s
         execXmlWriter();

         Properties p = new Properties();
         String base = "Z:/OutputXML/xml/XmlWriter/in/TestData_E001";

         p.setProperty("xml.datamodel.base", base);
         p.setProperty("xml.meta.filepath", base + "/" + getTestcaseID() + "_Meta.xml");

         //      PUTPropertyUtil.setProperty(p);
         replaceProperty(p);

         // ?ot@Cr
         diffResult();
     }

     /**
      * eXgID?FPXWXML_E_001_21 ^pc?[?n
      */
     @Test
     public void testPXWXML_E_001_21() throws Exception {

         // f?[^
         TblDataModel dataModel = createDefaultDatamodel();
         TblAttributeGroup attGroup = createDefaultAttGroup(dataModel);
         TblAttributeElem attElem = createDefaultAttElem(dataModel);
         TblAttributeField attField = createDefaultAttField(attElem, attGroup);
         TblAttributeValue attValue = createDefaultAttValue(attField);
         List<TblAttributeValue> attValueList = new ArrayList<TblAttributeValue>(1);

         attField.setCondition_flg(true);
         attValueList.add(attValue);
         insertDatamodel(dataModel, attGroup, attElem, attField, attValueList, null);

         // ?fBNg
         createOutputDir();

         // ----------------------<<Mock>>-------------------------------//
         // Virtual Mock Objectp?Apl??B
         setReturnValueAt(KeyitemMapper.class, "selectKeyitem", 0, new ArrayList<KeyitemWriter>());

         try {
             execXmlWriter();
         } catch (EMRException e) {
             assertEquals(String.format("?O?[v??B(f?[^fID?F%1$s)",
                     dataModel.getDatamodel_id()), e.getMessage());
         }
     }

/**
 * eXgID?FPXWXML_E_001_22 ^pc?[?n
 */
@Test
public void testPXWXML_E_001_22() throws Exception {

   // f?[^
   TblDataModel dataModel = createDefaultDatamodel();
   TblAttributeGroup attGroup = createDefaultAttGroup(dataModel);
   TblAttributeElem attElem = createDefaultAttElem(dataModel);
   TblAttributeField attField = createDefaultAttField(attElem, attGroup);
   TblAttributeValue attValue = createDefaultAttValue(attField);
   List<TblAttributeValue> attValueList = new ArrayList<TblAttributeValue>(1);
   List<TblKeySolve> keyList = new ArrayList<TblKeySolve>(2);

   TblKeySolve key = new TblKeySolve();

   key.setKey_solve_id(1);
   key.setDatamodel_id(dataModel.getDatamodel_id());
   key.setIndex(1);
   key.setKey_en_name("testkey01");
   keyList.add(key);

   key = new TblKeySolve();
   key.setKey_solve_id(2);
   key.setDatamodel_id(dataModel.getDatamodel_id());
   key.setIndex(1);
   key.setKey_en_name("testkey02");
   keyList.add(key);

   attField.setCondition_flg(true);
   attValueList.add(attValue);
   insertDatamodel(dataModel, attGroup, attElem, attField, attValueList, keyList);

   // ?fBNg
   createOutputDir();

   try {
      execXmlWriter();
   } catch (EMRException e) {
      assertEquals(MessageCode.EMR_B_P910E, e.getErrCode());
      assertEquals("\???B",
            e.getMessage());
   }
}

/**
 * eXgID?FPXWXML_E_001_23 ^pc?[?n
 */
@Test
public void testPXWXML_E_001_23() throws Exception {

   // f?[^
   TblDataModel dataModel = createDefaultDatamodel();
   TblAttributeGroup attGroup = createDefaultAttGroup(dataModel);
   TblAttributeElem attElem = createDefaultAttElem(dataModel);
   TblAttributeField attField = createDefaultAttField(attElem, attGroup);
   TblAttributeValue attValue = createDefaultAttValue(attField);
   List<TblAttributeValue> attValueList = new ArrayList<TblAttributeValue>(1);

   attField.setCondition_flg(true);
   attValueList.add(attValue);
   insertDatamodel(dataModel, attGroup, attElem, attField, attValueList, null);

   // ?fBNg
   createOutputDir();

   // ----------------------<<Mock>>-------------------------------//
   // Virtual Mock Objectp?Apl??B
   setReturnNullAt(ResultObjectMapper.class, "select", 0);

   try {
      execXmlWriter();
   } catch (EMRException e) {
      assertEquals(MessageCode.EMR_B_P910E, e.getErrCode());
      assertEquals("\???B",
            e.getMessage());
   }
}

/**
 * eXgID?FPXWXML_E_001_24 ^pc?[?n
 */
@Test
public void testPXWXML_E_001_24() throws Exception {

   // f?[^
   TblDataModel dataModel = createDefaultDatamodel();
   TblAttributeGroup attGroup = createDefaultAttGroup(dataModel);
   TblAttributeElem attElem = createDefaultAttElem(dataModel);
   TblAttributeField attField = createDefaultAttField(attElem, attGroup);
   TblAttributeValue attValue = createDefaultAttValue(attField);
   List<TblAttributeValue> attValueList = new ArrayList<TblAttributeValue>(1);

   attValue.setAttribute_field_id(99999);
   attValueList.add(attValue);
   insertDatamodel(dataModel, attGroup, attElem, attField, attValueList, null);

   // ?fBNg
   createOutputDir();

   try {
      execXmlWriter();
   } catch (EMRException e) {
      e.printStackTrace();
      assertEquals(MessageCode.EMR_B_P910E, e.getErrCode());
      assertEquals("\???B",
            e.getMessage());
   }
}

/**
 * eXgID?FPXWXML_E_001_25 ^pc?[?n
 */
@Test
public void testPXWXML_E_001_25() throws Exception {

   // f?[^
   TblDataModel dataModel = createDefaultDatamodel();
   TblAttributeGroup attGroup = createDefaultAttGroup(dataModel);
   TblAttributeElem attElem = createDefaultAttElem(dataModel);
   TblAttributeField attField = createDefaultAttField(attElem, attGroup);
   List<TblAttributeValue> attValueList = new ArrayList<TblAttributeValue>(2);

   for (int i = 1; i < 3; i++) {
      TblAttributeValue attValue = createDefaultAttValue(attField);

      attValue.setAttribute_value_id(i);
      attValue.setSingle_value(String.format("value%1$03d", i));
      attValueList.add(attValue);
   }
   insertDatamodel(dataModel, attGroup, attElem, attField, attValueList, null);

   // ?fBNg
   createOutputDir();

   try {
      execXmlWriter();
   } catch (EMRException e) {
      assertEquals(MessageCode.EMR_B_P910E, e.getErrCode());
      assertEquals("\???B",
            e.getMessage());
   }
}

/**
 * eXgID?FPXWXML_E_001_26 ^pc?[?n
 */
@Test
public void testPXWXML_E_001_26() throws Exception {

   // f?[^
   TblDataModel dataModel = createDefaultDatamodel();
   TblAttributeGroup attGroup = createDefaultAttGroup(dataModel);
   TblAttributeElem attElem = createDefaultAttElem(dataModel);
   TblAttributeField attField = createDefaultAttField(attElem, attGroup);
   TblAttributeValue attValue = createDefaultAttValue(attField);
   List<TblAttributeValue> attValueList = new ArrayList<TblAttributeValue>(1);

   attValue.setAnser_no(1);
   attValueList.add(attValue);
   insertDatamodel(dataModel, attGroup, attElem, attField, attValueList, null);

   // ?fBNg
   createOutputDir();

   try {
      execXmlWriter();
   } catch (EMRException e) {
      assertEquals(MessageCode.EMR_B_P910E, e.getErrCode());
      assertEquals("\???B",
            e.getMessage());
   }
}

     /**
      * `FbNp??[^eXgp?\bh
      * @param cmdarray
      *            R}hAC
      * @param expectedMessage
      *            l?bZ?[W
      *
      * @throws Exception
      */
     private void main(String[] cmdarray, String expectedMessage) throws Exception {

         // ?l
         Process process = Runtime.getRuntime().exec(cmdarray);
         BufferedReader br = null;
         StringBuilder sb = new StringBuilder();
         try {
             br = new BufferedReader(new InputStreamReader(process.getInputStream()));
             String line = br.readLine();
             while (line != null && line.length() > 0) {
                 sb.append(line);
                 line = br.readLine();
             }
         } finally {
             try {
                 br.close();
             } catch (Exception ex) {

             }
         }
         int exitValue = process.waitFor();
         assertEquals(1, exitValue);
         String actual = sb.toString();
         log.info("[actual  ]" + actual);
         log.info("[expected]" + expectedMessage);
         boolean matched = (actual != null) && actual.contains(expectedMessage);
         assertEquals(true, matched);
     }

     /**
      * @return ftHgf?[^ff?[^
      */
     private TblDataModel createDefaultDatamodel() {
         TblDataModel dataModel = new TblDataModel();

         dataModel.setDatamodel_id(1);
         dataModel.setDatamodel_jp_name("f?[^f_001");
         dataModel.setDatamodel_en_name(getTestcaseID());
         dataModel.setXml_name(getTestcaseID() + PDSConstants.FILE_XML);
         dataModel.setXml_object_index(1);
         dataModel.setProduct_id(1);

         return dataModel;
     }

     /**
      * @param dataModel Rtf?[^f
      * @return ftHg?O?[vf?[^
      */
     private TblAttributeGroup createDefaultAttGroup(TblDataModel dataModel) {
         TblAttributeGroup attGroup = new TblAttributeGroup();

         attGroup.setAttribute_group_id(1);
         attGroup.setAttribute_group_jp_name("?O?[v_001");
         attGroup.setDatamodel_id(dataModel.getDatamodel_id());
         attGroup.setProduct_id(dataModel.getProduct_id());

         return attGroup;
     }

     /**
      * @param dataModel Rtf?[^f
      * @return ftHg??f?[^
      */
     private TblAttributeElem createDefaultAttElem(TblDataModel dataModel) {
         TblAttributeElem attElem = new TblAttributeElem();

         attElem.setAttribute_elem_id(1);
         attElem.setDatamodel_id(dataModel.getDatamodel_id());
         attElem.setAttribute_field_jp_name("?P");
         attElem.setAttribute_field_en_name("attrname1");
         attElem.setAttribute_type_cd("01");
         attElem.setJava_class_cd("01");
         attElem.setProduct_id(dataModel.getProduct_id());

         return attElem;
     }

     /**
      * @param attElem Rt??
      * @param attGroup Rt?O?[v
      * @return ftHg??f?[^
      */
     private TblAttributeField createDefaultAttField(TblAttributeElem attElem, TblAttributeGroup attGroup) {
         TblAttributeField attField = new TblAttributeField();

         attField.setAttribute_field_id(1);
         attField.setAttribute_elem_id(attElem.getAttribute_elem_id());
         attField.setAttribute_group_id(attGroup.getAttribute_group_id());
         attField.setProduct_id(attElem.getProduct_id());

         return attField;
     }

     /**
      * @param attField Rt??
      * @return ftHg?lf?[^
      */
     private TblAttributeValue createDefaultAttValue(TblAttributeField attField) {
         TblAttributeValue attValue = new TblAttributeValue();

         attValue.setAttribute_value_id(1);
         attValue.setAttribute_field_id(attField.getAttribute_field_id());
         attValue.setSingle_value("value001");

         return attValue;
     }

     /**
      * XML???B
      *
      * @param dataModel f?[^f
      * @param attGroup ?O?[v
      * @throws IOException
      */
     private void insertMeta(TblDataModel dataModel, TblAttributeGroup attGroup) throws IOException {

         // f?[^
         SqlSession session = null;

         try {
             session = getSqlSession();

             TblMapper dbMapper = session.getMapper(TblMapper.class);

             dbMapper.deleteAllDatamodel();
             dbMapper.deleteAllAttGroup();
             session.commit();

             dbMapper.insertDatamodel(dataModel);
             dbMapper.insertAttGroup(attGroup);
             session.commit();
         } finally {

             if (session != null) {
                 session.close();
             }
         }
     }

     /**
      * f?[^f??B
      *
      * @param dataModel f?[^f
      * @param attGroup ?O?[v
      * @param attElem ??
      * @param attField ??
      * @param attValueList ?lXg
      * @param keyList L?[?lXg
      * @throws IOException
      */
     private void insertDatamodel(TblDataModel dataModel, TblAttributeGroup attGroup, TblAttributeElem attElem,
             TblAttributeField attField, List<TblAttributeValue> attValueList, List<TblKeySolve> keyList)
             throws IOException {
         SqlSession session = null;

         try {
             session = getSqlSession();

             TblMapper dbMapper = session.getMapper(TblMapper.class);

             dbMapper.deleteAllDatamodel();
             dbMapper.deleteAllAttGroup();
             dbMapper.deleteAllKeySolve();
             dbMapper.deleteAllAttElem();
             dbMapper.deleteAllAttField();
             dbMapper.deleteAllAttValue();
             session.commit();

             dbMapper.insertDatamodel(dataModel);
             dbMapper.insertAttGroup(attGroup);
             dbMapper.insertAttElem(attElem);
             dbMapper.insertAttField(attField);

             for (TblAttributeValue attValue : attValueList) {
                 dbMapper.insertAttValue(attValue);
             }

             if (keyList != null) {

                 for (TblKeySolve key : keyList) {
                     dbMapper.insertKeySolve(key);
                 }
             }
             session.commit();
         } finally {

             if (session != null) {
                 session.close();
             }
         }
     }

     /**
      * fBNg???B
      *
      * @param dirname fBNg
      * @return ??fBNg
      * @throws IOException ??s
      */
     private File createDir(String dirname) throws IOException {
         File dir = new File(this.xmlbase + File.separator + dirname);

         createDir(dir);

         return dir;
     }

 }