import unittest import javaobj import logging class TestJavaobj(unittest.TestCase): @classmethod def setUpClass(clazz): import sys import os from subprocess import call os.chdir('./java') logging.basicConfig(level=logging.DEBUG, stream=sys.stdout) call(['mvn', 'test']) os.chdir('..') def setUp(self): pass def read_file(self, filename): file = open(filename, 'rb') return file.read() def test_0_rw(self): jobj = self.read_file("java/testChar.ser") pobj = javaobj.loads(jobj) print pobj self.assertEqual(pobj, '\x00C') jobj_ = javaobj.dumps(pobj) self.assertEqual(jobj, jobj_) def test_1(self): jobj = self.read_file("java/testDouble.ser") pobj = javaobj.loads(jobj) print pobj self.assertEqual(pobj, '\x7f\xef\xff\xff\xff\xff\xff\xff') jobj_ = javaobj.dumps(pobj) self.assertEqual(jobj, jobj_) def test_2(self): jobj = self.read_file("java/testBytes.ser") pobj = javaobj.loads(jobj) print pobj self.assertEqual(pobj, 'HelloWorld') jobj_ = javaobj.dumps(pobj) self.assertEqual(jobj, jobj_) def test_3(self): jobj = self.read_file("java/testBoolean.ser") pobj = javaobj.loads(jobj) print pobj self.assertEqual(pobj, chr(0)) jobj_ = javaobj.dumps(pobj) self.assertEqual(jobj, jobj_) # def test_4(self): # jobj = self.read_file("java/testByte.ser") # pobj = javaobj.loads(jobj) # print pobj # self.assertEqual(pobj, 127) # # jobj_ = javaobj.dumps(pobj) # self.assertEqual(jobj, jobj_) def test_5(self): jobj = self.read_file("java/test_readFields.ser") pobj = javaobj.loads(jobj) print pobj self.assertEqual(pobj.aField1, 'Gabba') self.assertEqual(pobj.aField2, None) classdesc = pobj.get_class() self.assertTrue(classdesc) self.assertEqual(classdesc.serialVersionUID, 0x7F0941F5) self.assertEqual(classdesc.name, "OneTest$SerializableTestHelper") print classdesc print classdesc.flags print classdesc.fields_names print classdesc.fields_types self.assertEqual(len(classdesc.fields_names), 3) # jobj_ = javaobj.dumps(pobj) # self.assertEqual(jobj, jobj_) def test_6(self): jobj = self.read_file("java/testClass.ser") pobj = javaobj.loads(jobj) print pobj self.assertEqual(pobj.name, 'java.lang.String') # jobj_ = javaobj.dumps(pobj) # self.assertEqual(jobj, jobj_) # def test_7(self): # jobj = self.read_file("java/testSwingObject.ser") # pobj = javaobj.loads(jobj) # print pobj # # classdesc = pobj.get_class() # print classdesc # print classdesc.fields_names # print classdesc.fields_types # def test_super(self): # jobj = self.read_file("objSuper.ser") # pobj = javaobj.loads(jobj) # print pobj # # classdesc = pobj.get_class() # print classdesc # print classdesc.fields_names # print classdesc.fields_types # # print pobj.childString # print pobj.bool # print pobj.integer # # def test_arrays(self): # jobj = self.read_file("objArrays.ser") # pobj = javaobj.loads(jobj) # print pobj # # classdesc = pobj.get_class() # print classdesc # print classdesc.fields_names # print classdesc.fields_types # ## public String[] stringArr = {"1", "2", "3"}; ## public int[] integerArr = {1,2,3}; ## public boolean[] boolArr = {true, false, true}; ## public TestConcrete[] concreteArr = {new TestConcrete(), new TestConcrete()}; # # print pobj.stringArr # print pobj.integerArr # print pobj.boolArr # print pobj.concreteArr # # def test_enums(self): # jobj = self.read_file("objEnums.ser") # pobj = javaobj.loads(jobj) # print pobj # # classdesc = pobj.get_class() # print classdesc # print classdesc.fields_names # print classdesc.fields_types # # def test_exception(self): # jobj = self.read_file("objException.ser") # pobj = javaobj.loads(jobj) # print pobj # # classdesc = pobj.get_class() # print classdesc # print classdesc.fields_names # print classdesc.fields_types # # def test_sun_example(self): # marshaller = javaobj.JavaObjectUnmarshaller(open("sunExample.ser")) # pobj = marshaller.readObject() # # self.assertEqual(pobj.value, 17) # self.assertTrue(pobj.next) # # pobj = marshaller.readObject() # # self.assertEqual(pobj.value, 19) # self.assertFalse(pobj.next) # def test_collections(self): jobj = self.read_file("objCollections.ser") pobj = javaobj.loads(jobj) print pobj # # print "arrayList:", pobj.arrayList # self.assertTrue(isinstance(pobj.arrayList, list)) # print "hashMap:", pobj.hashMap # self.assertTrue(isinstance(pobj.hashMap, dict)) # print "linkedList:", pobj.linkedList # self.assertTrue(isinstance(pobj.linkedList, list)) # Fails if __name__ == '__main__': unittest.main()