Package nexj.core.runtime

Source Code of nexj.core.runtime.GenericSerializablePropertyMapTest

// Copyright 2010 NexJ Systems Inc. This software is licensed under the terms of the Eclipse Public License 1.0
package nexj.core.runtime;

import java.sql.Timestamp;
import java.util.Iterator;

import junit.framework.TestCase;

import nexj.core.meta.Repository;
import nexj.core.scripting.ScriptingException;
import nexj.core.scripting.Symbol;
import nexj.core.util.PropertyIterator;
import nexj.core.util.PropertyMap;

public class GenericSerializablePropertyMapTest extends TestCase
{
   protected GenericSerializablePropertyMap m_map;
   protected InvocationContext m_context;

   protected void setUp() throws Exception
   {
      super.setUp();
      m_map = new GenericSerializablePropertyMap(GenericSerializablePropertyMap.SKIP);
      m_context = new InvocationContext(Repository.getMetadata());
      m_context.setSecure(false);

      Instance instance = new Instance(m_context.getMetadata().getMetaclass("SysObjectLog"), m_context);

      instance.setNew();
      instance.setValue("event", "a");
      ((PropertyMap)instance.getValue("values")).setValue("skip", new GenericSerializablePropertyMap());
      instance.setValue("createdOn", new Timestamp(1000000000));

      m_map.setValue("log", instance);
      m_map.setValue("name", "q");
   }

   protected void tearDown() throws Exception
   {
      super.tearDown();
      m_map = null;

      if (m_context != null)
      {
         m_context.complete(false);
         ThreadContextHolder.setContext(null);
         m_context = null;
      }
   }

   public void testSerializeValues()
   {
      assertEquals("4v2TUU1I0U3Slog10T12SSysObjectLogU1I0U13SvaluesCaption7sskip={}16SserializedValuesU9ScreatedOn10D100000000013SobjectCaptions3SoidU4SuserU5SclassU8SargCountU5Sevent1sa6SobjectU4Sname1sq", m_map.serializeValues(m_context));
   }

   public void testDeserializeValues()
   {
      GenericSerializablePropertyMap map = new GenericSerializablePropertyMap();

      map.deserializeValues(m_map.serializeValues(m_context), m_context);
      assertEquals(2, map.getValueCount());
      assertEquals("a", ((Instance)map.getValue("log")).getValue("event"));
      assertEquals("q", map.getValue("name"));
   }

   public void testGetClassName()
   {
      assertEquals("var", m_map.getClassName());
   }

   public void testGetValueString()
   {
      assertEquals("q", m_map.getValue("name"));
      assertNotNull(m_map.getValue("log"));
      assertNull(m_map.getValue("a"));
   }

   public void testSetValueStringObject()
   {
      m_map.setValue("b", new Integer(1));
      assertEquals(3, m_map.getValueCount());
      m_map.setValue("name", "z");
      assertEquals(3, m_map.getValueCount());
      assertEquals("z", m_map.getValue("name"));
      assertEquals(new Integer(1), m_map.getValue("b"));
   }

   public void testFindValueString()
   {
      assertEquals("q", m_map.findValue("name"));
      assertNotNull(m_map.findValue("log"));
      assertNull(m_map.findValue("a"));
   }

   public void testFindValueStringObject()
   {
      assertEquals("q", m_map.findValue("name", "s"));
      assertNotNull(m_map.findValue("log", null));
      assertEquals("z", m_map.findValue("name1", "z"));
   }

   public void testRemoveValue()
   {
      assertEquals("q", m_map.removeValue("name"));
      assertNull(m_map.removeValue("q"));
      assertEquals(1, m_map.getValueCount());
   }

   public void testHasValue()
   {
      assertTrue(m_map.hasValue("name"));
      assertFalse(m_map.hasValue("q"));
   }

   public void testGetValueCount()
   {
      assertEquals(2, m_map.getValueCount());
   }

   public void testGetIterator()
   {
      PropertyIterator itr = m_map.getIterator();

      itr.next();
      assertEquals("name", itr.next());
      assertEquals("name", itr.getName());
      assertEquals("q", itr.getValue());
      assertFalse(itr.hasNext());
   }

   public void testIterator()
   {
      Iterator itr = m_map.iterator();

      itr.next();
      assertEquals("name", itr.next());
      assertFalse(itr.hasNext());
   }

   public void testToString()
   {
      assertEquals("{\"log\"=Instance<SysObjectLog, null, NEW>(event=\"a\", createdOn=1970-01-12 13:46:40.000000000, serializedValues=(), values={\"skip\"={}}), \"name\"=\"q\"}",
         m_map.toString());
   }

   public void testGetValueSymbol()
   {
      assertEquals("q", m_map.getValue(Symbol.define("name")));
      assertNotNull(m_map.getValue(Symbol.define("log")));
      assertNull(m_map.getValue(Symbol.define("a")));
   }

   public void testSetValueSymbolObject()
   {
      m_map.setValue(Symbol.define("b"), new Integer(1));
      assertEquals(3, m_map.getValueCount());
      m_map.setValue(Symbol.define("name"), "z");
      assertEquals(3, m_map.getValueCount());
      assertEquals("z", m_map.getValue(Symbol.define("name")));
      assertEquals(new Integer(1), m_map.getValue(Symbol.define("b")));
   }

   public void testInvokeSymbolIntMachine()
   {
      m_context.getMachine().push(Symbol.define("name"));

      try
      {
         m_map.invoke(Symbol.define("name"), 1, m_context.getMachine());
         fail("Expected ScriptingException");
      }
      catch (ScriptingException e)
      {
      }
   }

   public void testInvokeIntMachine()
   {
      m_context.getMachine().push(Symbol.define("name"));
      m_map.invoke(1, m_context.getMachine());
      assertEquals("q", m_context.getMachine().pop());
      m_context.getMachine().push(Symbol.define("name"));
      m_context.getMachine().push("z");
      m_map.invoke(2, m_context.getMachine());
      assertEquals("z", m_context.getMachine().pop());
      assertEquals(2, m_map.getValueCount());
      assertEquals("z", m_map.getValue("name"));
   }
}
TOP

Related Classes of nexj.core.runtime.GenericSerializablePropertyMapTest

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.