def test_protected_from_python_subclass(self): class SubVisible(Visible): def __init__(self, publicValue=None): if publicValue is not None: Visible.__init__(self, publicValue) else: Visible.__init__(self) # TODO - protectedStaticMethod, protectedStaticField, StaticInner, and protectedField should # be here s = SubVisible() self.assertEquals(Results.PROTECTED_METHOD, s.protectedMethod(0)) self.assertEquals(Results.OVERLOADED_PROTECTED_METHOD, s.protectedMethod('foo')) self.assertEquals(Results.UNUSED, SubVisible(Results.UNUSED).visibleField)
def test_array_coercion(self): self.assertEquals("double", Coercions.takeArray(array.zeros('d', 2))) self.assertEquals("float", Coercions.takeArray(array.zeros('f', 2))) self.assertEquals("4", Coercions.takePyObj(1, 2, 3, 4)) c = Coercions() self.assertEquals("5", c.takePyObjInst(1, 2, 3, 4, 5)) self.assertEquals("OtherSubVisible[]", c.takeArray([OtherSubVisible()])) self.assertEquals("SubVisible[]", c.takeArray([SubVisible()]))
def test_java_subclass(self): s = SubVisible() self.assertEquals(Results.PUBLIC_FIELD, s.visibleField) self.assertEquals(Results.PUBLIC_STATIC_FIELD, SubVisible.visibleStaticField) self.assertEquals(Results.SUBCLASS_STATIC_OVERRIDE, SubVisible.visibleStatic(3)) self.assertEquals(Results.SUBCLASS_STATIC_OVERLOAD, SubVisible.visibleStatic(3.0, 'a')) self.assertEquals(Results.SUBCLASS_OVERRIDE, s.visibleInstance(3)) self.assertEquals(Results.SUBCLASS_OVERLOAD, s.visibleInstance(3.0, 'a')) self.assertEquals(Results.PACKAGE_METHOD, s.packageMethod()) # Java methods don't allow direct calling of the superclass method, so it should # return the subclass value here. self.assertEquals(Results.SUBCLASS_OVERRIDE, Visible.visibleInstance(s, 3)) self.assertEquals(Results.PUBLIC_STATIC_FIELD, SubVisible.StaticInner.visibleStaticField) self.assertEquals(Results.VISIBLE_SHARED_NAME_FIELD, Visible.sharedNameField) self.assertEquals(Results.SUBVISIBLE_SHARED_NAME_FIELD, SubVisible.sharedNameField) self.assertEquals(Results.VISIBLE_SHARED_NAME_FIELD * 10, Visible().sharedNameField) self.assertEquals(Results.SUBVISIBLE_SHARED_NAME_FIELD * 10, s.sharedNameField)
def test_java_subclass(self): s = SubVisible() self.assertEquals(Results.PUBLIC_FIELD, s.visibleField) self.assertEquals(Results.PUBLIC_STATIC_FIELD, SubVisible.visibleStaticField) self.assertEquals(Results.SUBCLASS_STATIC_OVERRIDE, SubVisible.visibleStatic(3)) self.assertEquals(Results.SUBCLASS_STATIC_OVERLOAD, SubVisible.visibleStatic(3.0, 'a')) self.assertEquals(Results.SUBCLASS_OVERRIDE, s.visibleInstance(3)) self.assertEquals(Results.SUBCLASS_OVERLOAD, s.visibleInstance(3.0, 'a')) self.assertEquals(Results.PACKAGE_METHOD, s.packageMethod()) # Java methods don't allow direct calling of the superclass method, so it should # return the subclass value here. self.assertEquals(Results.SUBCLASS_OVERRIDE, Visible.visibleInstance(s, 3))