def test_parse_easyclass(self):
     res = parse_class_dump(self.dump1)
     self.assertIsInstance(res, list)
     self.assertEqual(len(res), 1)
     self.assertIsInstance(res[0], HookedClass)
     self.assertEqual(len(res[0].methods), 1)
     m = res[0].methods[0]
     self.assertIsInstance(m, Method)
     self.assertEqual(len(m.params), 0)
     self.assertEqual(m.class_name, res[0].name)
     self.assertEqual(m.signature, "- (id)init;")
     self.assertEqual(m.name, "init")
     self.assertEqual(m.type, "id")
 def test_parse_methodswithparams(self):
     res = parse_class_dump(self.dump3)
     self.assertIsInstance(res, list)
     self.assertEqual(len(res), 1)
     c1 = res[0]
     [m1, m2] = c1.methods
     
     self.assertEqual(m1.name, "setupWithParams")
     self.assertEqual(len(m1.params), 2)
     [p1, p2] = m1.params
     self.assertSequenceEqual(p1, ("id", "arg1"))
     self.assertSequenceEqual(p2, ("id", "arg2"))
     
     [p1, p2] = m2.params
     self.assertSequenceEqual(p1, ("id", "arg1"))
     self.assertSequenceEqual(p2, ("id", "arg2"))
 def test_parse_multipleclasses(self):
     res = parse_class_dump(self.dump2)
     self.assertIsInstance(res, list)
     self.assertEqual(len(res), 2)
     c1 = res[0]
     c2 = res[1]
     self.assertEqual(len(c1.methods), 3)
     self.assertEqual(len(c2.methods), 2)
     [m1, m2, _] = c1.methods
     [_, m5] = c2.methods
     
     self.assertEqual(m1.signature, "- (id)init;")
     self.assertEqual(m1.name, "init")
     self.assertEqual(m1.type, "id")
     
     self.assertEqual(m2.name, "login")
     self.assertEqual(m2.type, "void")
     
     self.assertEqual(m5.name, "destroy")
     self.assertEqual(m5.type, "void")