コード例 #1
0
ファイル: Test02.java プロジェクト: nick-93/core
  public boolean test() {
    try {
      XStream xTempFileStream = m_aTestHelper.CreateTempFileStream(m_xMSF);
      if (xTempFileStream == null) return false;

      // create storage based on the temporary stream
      Object pArgs[] = new Object[2];
      pArgs[0] = xTempFileStream;
      pArgs[1] = new Integer(ElementModes.WRITE);

      Object oTempStorage = m_xStorageFactory.createInstanceWithArguments(pArgs);
      XStorage xTempStorage = UnoRuntime.queryInterface(XStorage.class, oTempStorage);
      if (xTempStorage == null) {
        m_aTestHelper.Error("Can't create temporary storage representation!");
        return false;
      }

      // open a new substorage
      XStorage xTempSubStorage =
          m_aTestHelper.openSubStorage(xTempStorage, "SubStorage1", ElementModes.WRITE);
      if (xTempSubStorage == null) {
        m_aTestHelper.Error("Can't create substorage!");
        return false;
      }

      byte pBytes1[] = {1, 1, 1, 1, 1};

      // open a new substream, set "MediaType" and "Compressed" properties to it and write some
      // bytes
      if (!m_aTestHelper.WriteBytesToSubstream(
          xTempSubStorage, "SubStream1", "MediaType1", true, pBytes1)) return false;

      // set "MediaType" property for storages and check that "IsRoot" and "OpenMode" properties are
      // set correctly
      if (!m_aTestHelper.setStorageTypeAndCheckProps(
          xTempStorage, "MediaType2", true, ElementModes.WRITE)) return false;

      // set "MediaType" property for storages and check that "IsRoot" and "OpenMode" properties are
      // set correctly
      if (!m_aTestHelper.setStorageTypeAndCheckProps(
          xTempSubStorage, "MediaType3", false, ElementModes.WRITE)) return false;

      // commit substorage first
      if (!m_aTestHelper.commitStorage(xTempSubStorage)) return false;

      // commit the root storage so the contents must be stored now
      if (!m_aTestHelper.commitStorage(xTempStorage)) return false;

      // dispose used storage to free resources
      // the substorage dispose will be triggered by this call
      if (!m_aTestHelper.disposeStorage(xTempStorage)) return false;

      // now check all the written information

      // close the output part of the temporary stream
      // the output part must present since we already wrote to the stream
      if (!m_aTestHelper.closeOutput(xTempFileStream)) return false;

      XInputStream xTempInStream = m_aTestHelper.getInputStream(xTempFileStream);
      if (xTempInStream == null) return false;

      // open input stream
      // since no mode is provided the result storage must be opened readonly
      Object pOneArg[] = new Object[1];
      pOneArg[0] = xTempInStream;

      Object oResultStorage = m_xStorageFactory.createInstanceWithArguments(pOneArg);
      XStorage xResultStorage = UnoRuntime.queryInterface(XStorage.class, oResultStorage);
      if (xResultStorage == null) {
        m_aTestHelper.Error("Can't open storage based on input stream!");
        return false;
      }

      if (!m_aTestHelper.checkStorageProperties(
          xResultStorage, "MediaType2", true, ElementModes.READ)) return false;

      // open existing substorage
      XStorage xResultSubStorage =
          m_aTestHelper.openSubStorage(xResultStorage, "SubStorage1", ElementModes.READ);
      if (xResultSubStorage == null) {
        m_aTestHelper.Error("Can't open existing substorage!");
        return false;
      }

      if (!m_aTestHelper.checkStorageProperties(
          xResultSubStorage, "MediaType3", false, ElementModes.READ)) return false;

      if (!m_aTestHelper.checkStream(xResultSubStorage, "SubStream1", "MediaType1", pBytes1))
        return false;

      return true;
    } catch (Exception e) {
      m_aTestHelper.Error("Exception: " + e);
      return false;
    }
  }