Package org.exoplatform.services.jcr.impl.core.nodetype

Source Code of org.exoplatform.services.jcr.impl.core.nodetype.TestCNDSerialization

package org.exoplatform.services.jcr.impl.core.nodetype;

import org.exoplatform.services.jcr.JcrImplBaseTest;
import org.exoplatform.services.jcr.core.nodetype.NodeTypeData;
import org.exoplatform.services.jcr.impl.core.NamespaceRegistryImpl;
import org.exoplatform.services.jcr.impl.core.nodetype.registration.CNDStreamReader;
import org.exoplatform.services.jcr.impl.core.nodetype.registration.CNDStreamWriter;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.util.List;

/**
* Created by The eXo Platform SAS.<br>
* Class that tests read-write-read cycle for compact node type definition tools
* ({@link CNDStreamReader} and {@link CNDStreamWriter})
*
* @author <a href="mailto:nikolazius@gmail.com">Nikolay Zamosenchuk</a>
* @version $Id: $
*/
public class TestCNDSerialization extends JcrImplBaseTest
{

   private static final String TEST_FILE = "cnd-reader-test-input.cnd";

   public void testSerialization() throws Exception
   {
      /** input stream */
      InputStream is = getClass().getClassLoader().getResourceAsStream("" + TEST_FILE);
      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      NamespaceRegistryImpl nsm = new NamespaceRegistryImpl();
      /** reading and writing */
      List<NodeTypeData> ntdList1 = new CNDStreamReader(nsm).read(is);
      new CNDStreamWriter(nsm).write(ntdList1, baos);
      /** new reader to read previous output */
      List<NodeTypeData> ntdList2 = new CNDStreamReader(nsm).read(new ByteArrayInputStream(baos.toByteArray()));
      /** checking equality */
      if (ntdList1.size() == 0 || ntdList1.size() != ntdList2.size())
      {
         fail("Exported node type definition was not successfully read back in");
      }
      else
      {
         for (int k = 0; k < ntdList1.size(); k++)
         {
            NodeTypeData ntd1 = ntdList1.get(k);
            NodeTypeData ntd2 = ntdList2.get(k);
            if (!ntd1.equals(ntd2))
            {
               fail("Exported node type definition was not successfully read back in. \r\n" + ntd2.getName()
                  + "differs from original " + ntd1.getName() + "\r\n" + baos.toString());
            }
         }
      }
   }
}
TOP

Related Classes of org.exoplatform.services.jcr.impl.core.nodetype.TestCNDSerialization

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.