@@ -70,12 +70,13 @@ def setUpClass(cls):
7070 subprocess .call (['mvn' , 'test' ], shell = True )
7171 os .chdir (cwd )
7272
73- def read_file (self , filename ):
73+ def read_file (self , filename , stream = False ):
7474 """
7575 Reads the content of the given file in binary mode
7676
7777 :param filename: Name of the file to read
78- :return: File content
78+ :param stream: If True, return the file stream
79+ :return: File content or stream
7980 """
8081 for subfolder in ('java' , '' ):
8182 found_file = os .path .join (
@@ -85,8 +86,11 @@ def read_file(self, filename):
8586 else :
8687 raise IOError ("File not found: {0}" .format (filename ))
8788
88- with open (found_file , 'rb' ) as filep :
89- return filep .read ()
89+ if stream :
90+ return open (found_file , "rb" )
91+ else :
92+ with open (found_file , 'rb' ) as filep :
93+ return filep .read ()
9094
9195 def test_char_rw (self ):
9296 """
@@ -219,26 +223,26 @@ def test_super(self):
219223 self .assertEqual (pobj .integer , - 1 )
220224 self .assertEqual (pobj .superString , "Super!!" )
221225
222- # def test_arrays(self):
223- # jobj = self.read_file("objArrays.ser")
224- # pobj = javaobj.loads(jobj)
225- # _logger.debug(pobj)
226- #
227- # classdesc = pobj.get_class()
228- # _logger.debug(classdesc)
229- # _logger.debug(classdesc.fields_names)
230- # _logger.debug(classdesc.fields_types)
231- #
232- # # public String[] stringArr = {"1", "2", "3"};
233- # # public int[] integerArr = {1,2,3};
234- # # public boolean[] boolArr = {true, false, true};
235- # # public TestConcrete[] concreteArr = {new TestConcrete(),
236- # # new TestConcrete()};
237- #
238- # _logger.debug(pobj.stringArr)
239- # _logger.debug(pobj.integerArr)
240- # _logger.debug(pobj.boolArr)
241- # _logger.debug(pobj.concreteArr)
226+ def test_arrays (self ):
227+ jobj = self .read_file ("objArrays.ser" )
228+ pobj = javaobj .loads (jobj )
229+ _logger .debug (pobj )
230+
231+ classdesc = pobj .get_class ()
232+ _logger .debug (classdesc )
233+ _logger .debug (classdesc .fields_names )
234+ _logger .debug (classdesc .fields_types )
235+
236+ # public String[] stringArr = {"1", "2", "3"};
237+ # public int[] integerArr = {1,2,3};
238+ # public boolean[] boolArr = {true, false, true};
239+ # public TestConcrete[] concreteArr = {new TestConcrete(),
240+ # new TestConcrete()};
241+
242+ _logger .debug (pobj .stringArr )
243+ _logger .debug (pobj .integerArr )
244+ _logger .debug (pobj .boolArr )
245+ _logger .debug (pobj .concreteArr )
242246
243247 def test_enums (self ):
244248 jobj = self .read_file ("objEnums.ser" )
@@ -254,10 +258,9 @@ def test_enums(self):
254258 self .assertEqual (pobj .color .classdesc .name , "Color" )
255259 self .assertEqual (pobj .color .constant , "GREEN" )
256260
257- # FIXME: got Strings instead of Enum
258- # for color, intended in zip(pobj.colors, ("GREEN", "BLUE", "RED")):
259- # self.assertEqual(color.classdesc.name, "Color")
260- # self.assertEqual(color.constant, intended)
261+ for color , intended in zip (pobj .colors , ("GREEN" , "BLUE" , "RED" )):
262+ self .assertEqual (color .classdesc .name , "Color" )
263+ self .assertEqual (color .constant , intended )
261264
262265 # def test_exception(self):
263266 # jobj = self.read_file("objException.ser")
@@ -272,18 +275,18 @@ def test_enums(self):
272275 # # TODO: add some tests
273276 # self.assertEqual(classdesc.name, "MyExceptionWhenDumping")
274277
275- # def test_sun_example(self):
276- # marshaller = javaobj.JavaObjectUnmarshaller(
277- # open ("sunExample.ser", "rb" ))
278- # pobj = marshaller.readObject()
279- #
280- # self.assertEqual(pobj.value, 17)
281- # self.assertTrue(pobj.next)
282- #
283- # pobj = marshaller.readObject()
284- #
285- # self.assertEqual(pobj.value, 19)
286- # self.assertFalse(pobj.next)
278+ def test_sun_example (self ):
279+ marshaller = javaobj .JavaObjectUnmarshaller (
280+ self . read_file ("sunExample.ser" , stream = True ))
281+ pobj = marshaller .readObject ()
282+
283+ self .assertEqual (pobj .value , 17 )
284+ self .assertTrue (pobj .next )
285+
286+ pobj = marshaller .readObject ()
287+
288+ self .assertEqual (pobj .value , 19 )
289+ self .assertFalse (pobj .next )
287290
288291 def test_collections (self ):
289292 jobj = self .read_file ("objCollections.ser" )
0 commit comments