Ejemplo n.º 1
0
 def test_nonstatic_method(self):
     """Access a non-static Class method.
     """
     String = _pyjava.getclass('java/lang/String')
     self.assertEqual(String.getName(), u'java.lang.String')
     Class = _pyjava.getclass('java/lang/Class')
     self.assertEqual(Class.getName(), u'java.lang.Class')
     self.assertEqual(Class.getName(String), u'java.lang.String')
Ejemplo n.º 2
0
 def test_method(self):
     """Calls a well-known method on a wrapper returned by a static method.
     """
     Collections = _pyjava.getclass('java/util/Collections')
     List = _pyjava.getclass('java/util/List')
     emptyList = Collections.getmethod('emptyList')
     li = emptyList.call()
     size = List.getmethod('size')
     self.assertEqual(size.call(li), 0)
Ejemplo n.º 3
0
    def test_staticfield(self):
        """Requests a well-known static field.
        """
        Integer = _pyjava.getclass('java/lang/Integer')
        size = Integer.SIZE
        self.assertEqual(size, 32)

        String = _pyjava.getclass('java/lang/String')
        comparator = String.CASE_INSENSITIVE_ORDER
        self.assertIsNotNone(comparator)
Ejemplo n.º 4
0
 def test_isinstance(self):
     """Requests well-known classes and tests isinstance().
     """
     Collections = _pyjava.getclass('java/util/Collections')
     List = _pyjava.getclass('java/util/List')
     Integer = _pyjava.getclass('java/lang/Integer')
     empty = Collections.emptyList()
     self.assertTrue(isinstance(empty, List))
     self.assertFalse(isinstance(empty, Integer))
     self.assertFalse(isinstance(2, List))
     self.assertFalse(isinstance(empty, list))
Ejemplo n.º 5
0
 def test_method(self):
     """Calls a well-known method on a wrapper returned by a static method.
     """
     Collections = _pyjava.getclass('java/util/Collections')
     List = _pyjava.getclass('java/util/List')
     emptyList = Collections.emptyList
     li = emptyList()
     size = List.size
     self.assertTrue(isinstance(size, _pyjava.UnboundMethod))
     b_size = li.size
     self.assertTrue(isinstance(b_size, _pyjava.BoundMethod))
     self.assertEqual(size(li), 0)
     self.assertEqual(b_size(), 0)
Ejemplo n.º 6
0
    def test_forname(self):
        """Uses Class.forName().
        """
        Class = _pyjava.getclass('java/lang/Class')
        String = Class.forName(u'java.lang.String')
        self.assertIsInstance(String, _pyjava.JavaClass)
        self.assertEqual(String(u'lala').length(), 4)
        String2 = _pyjava.getclass('java/lang/String')
        self.assertEqual(String, String2)

        with self.assertRaises(AttributeError):
            # forName() is static and can only be accessed from Class
            String2.forName
Ejemplo n.º 7
0
 def test_issubclass(self):
     """Requests well-known classes and tests issubclass().
     """
     Object = _pyjava.getclass('java/lang/Object')
     String = _pyjava.getclass('java/lang/String')
     Class = _pyjava.getclass('java/lang/Class')
     self.assertTrue(_pyjava.issubclass(String, String))
     self.assertTrue(_pyjava.issubclass(Object, Object))
     self.assertTrue(_pyjava.issubclass(Class, Class))
     self.assertFalse(_pyjava.issubclass(Object, String))
     self.assertFalse(_pyjava.issubclass(String, Class))
     self.assertTrue(_pyjava.issubclass(Class, Object))
     self.assertFalse(_pyjava.issubclass(Class, String))
     self.assertTrue(_pyjava.issubclass(String, Object))
     self.assertFalse(_pyjava.issubclass(Object, Class))
Ejemplo n.º 8
0
 def test_staticmethod(self):
     """Requests a well-known static method.
     """
     Math = _pyjava.getclass('java/lang/Math')
     sin = Math.sin
     self.assertIsNotNone(sin)
     self.assertTrue(isinstance(sin, _pyjava.UnboundMethod))
Ejemplo n.º 9
0
 def test_String(self):
     """Wraps a language class.
     """
     String = _pyjava.getclass('java/lang/String')
     self.assertIsNotNone(String)
     self.assertEqual(String.getName(), u'java.lang.String')
     self.assertIsInstance(String, _pyjava.JavaClass)
Ejemplo n.º 10
0
 def test_Reader(self):
     """Wraps a well-known class.
     """
     Reader = _pyjava.getclass('java/io/Reader')
     self.assertIsNotNone(Reader)
     self.assertEqual(Reader.getName(), u'java.io.Reader')
     self.assertIsInstance(Reader, _pyjava.JavaClass)
Ejemplo n.º 11
0
 def test_subclass(self):
     """Tests subclassing a Java class.
     """
     String = _pyjava.getclass('java/lang/String')
     with self.assertRaises(NotImplementedError):
         class MyString(String):
             pass
Ejemplo n.º 12
0
 def test_constructor(self):
     """Constructs a Java object from a constructor.
     """
     Vector = _pyjava.getclass('java/util/Vector')
     vector = Vector(10)
     self.assertIsNotNone(vector)
     self.assertEqual(vector.capacity(), 10)
Ejemplo n.º 13
0
 def test_method(self):
     """Requests a well-known method.
     """
     String = _pyjava.getclass('java/lang/String')
     length = String.length
     self.assertIsNotNone(length)
     self.assertTrue(isinstance(length, _pyjava.UnboundMethod))
Ejemplo n.º 14
0
 def test_staticfield(self):
     """Sets a static field.
     """
     SetField = _pyjava.getclass('pyjavatest/test_fields/SetField')
     SetField.a = 4
     SetField.b = u"hello"
     self.assertEqual((SetField.a, SetField.b), (4, u"hello"))
Ejemplo n.º 15
0
def getclass(classname):
    # Convert from the 'usual' syntax to the 'JNI' syntax
    jni_classname = classname.replace('.', '/')

    cls = _pyjava.getclass(jni_classname)  # might raise ClassNotFound
    cls = _JavaClass(classname, cls)
    return cls
Ejemplo n.º 16
0
 def test_wrongvalue(self):
     # <AK> additional
     from jt.pyjava.__config__ import config
     SetField = _pyjava.getclass('pyjavatest/test_fields/SetField')
     sf = SetField()
     MIN_INT, MAX_INT = -2**31, 2**31-1
     SetField.a = MAX_INT
     self.assertEqual(SetField.a, MAX_INT)
     SetField.a = MIN_INT
     self.assertEqual(SetField.a, MIN_INT)
     sf.c = MAX_INT
     self.assertEqual(sf.c, MAX_INT)
     sf.c = MIN_INT
     self.assertEqual(sf.c, MIN_INT)
     # jt extension: WITH_VALID
     if config.getboolean("WITH_VALID", False):
         RaisedError = ValueError if sys.version_info.major >= 3 else TypeError
         with self.assertRaises(RaisedError):
             SetField.a = 2**31
         with self.assertRaises(RaisedError): 
             SetField.a = MIN_INT-1
         with self.assertRaises(RaisedError):
             sf.c = 2**31
         with self.assertRaises(RaisedError):
             sf.c = MIN_INT-1
Ejemplo n.º 17
0
 def test_field(self):
     """Sets a well-known field.
     """
     Dimension = _pyjava.getclass('java/awt/Dimension')
     d = Dimension()
     d.width = 42
     self.assertEqual(d.width, 42)
Ejemplo n.º 18
0
 def test_staticfield(self):
     """Requests a well-known static field.
     """
     Collections = _pyjava.getclass('java/util/Collections')
     empty_list = Collections.EMPTY_LIST
     self.assertIsNotNone(empty_list)
     self.assertEqual(empty_list.size(), 0)
Ejemplo n.º 19
0
    def test_nonexistent_class(self):
        """Requests an unknown field/method on a class.

        This should be detected immediately.
        """
        Math = _pyjava.getclass('java/lang/Math')
        with self.assertRaises(AttributeError):
            Math.nonExistentField
Ejemplo n.º 20
0
    def test_nonexistent_instance(self):
        """Sets an unknown field on an instance.
        """
        Dimension = _pyjava.getclass('java/awt/Dimension')
        d = Dimension()
        with self.assertRaises(AttributeError):
            d.nonExistentField = 42

        SetField = _pyjava.getclass('pyjavatest/test_fields/SetField')
        sf = SetField()
        sf.c = 5
        sf.d = u"r\xE9mi is out of ideas"
        sf2 = SetField()
        self.assertEqual(sf.c, 5)
        self.assertEqual(sf2.c, 2)
        self.assertEqual(len(sf.d), 20)
        self.assertEqual(len(sf2.d), 22)
Ejemplo n.º 21
0
 def test_badoverload(self):
     """Calls an existing method but with wrong argument types.
     """
     Math = _pyjava.getclass('java/lang/Math')
     sin = Math.sin
     with self.assertRaises(_pyjava.NoMatchingOverload):
         sin(4, 2)
     with self.assertRaises(_pyjava.NoMatchingOverload):
         sin()
Ejemplo n.º 22
0
 def test_constructor(self):
     """Constructs a Java object from a constructor.
     """
     Vector = _pyjava.getclass('java/util/Vector')
     vector = Vector.create(10)
     self.assertIsNotNone(vector)
     capacity = Vector.getmethod('capacity')
     self.assertEqual(capacity.call(vector), 10)
     self.assertEqual(vector.getclass().getclassname(), u'java.util.Vector')
Ejemplo n.º 23
0
    def test_nonexistent_instance(self):
        """Requests an unknown field/method on an instance.

        This should be detected immediately.
        """
        Dimension = _pyjava.getclass('java/awt/Dimension')
        d = Dimension()
        with self.assertRaises(AttributeError):
            d.nonExistentField
Ejemplo n.º 24
0
    def test_issubclass(self):
        """Requests well-known classes and tests issubclass().
        """
        Object = _pyjava.getclass('java/lang/Object')
        String = _pyjava.getclass('java/lang/String')
        Class = _pyjava.getclass('java/lang/Class')
        self.assertTrue(issubclass(String, String))
        self.assertTrue(issubclass(Object, Object))
        self.assertTrue(issubclass(Class, Class))
        self.assertFalse(issubclass(Object, String))
        self.assertFalse(issubclass(String, Class))
        self.assertTrue(issubclass(Class, Object))
        self.assertFalse(issubclass(Class, String))
        self.assertTrue(issubclass(String, Object))
        self.assertFalse(issubclass(Object, Class))

        self.assertFalse(issubclass(String, list))
        self.assertFalse(issubclass(int, Class))
Ejemplo n.º 25
0
    def test_nonexistent(self):
        """Requests a wrapper for an unknown method.

        This should be detected when accessing.
        """
        String = _pyjava.getclass('java/lang/String')
        self.assertRaises(
                AttributeError,
                String.getmethod,
                'nonexistentMethod')
Ejemplo n.º 26
0
    def test_nonexistent(self):
        """Requests a wrapper for an unknown field.

        This should be detected immediately.
        """
        Math = _pyjava.getclass('java/lang/Math')
        self.assertRaises(
                AttributeError,
                Math.getfield,
                'nonexistentfield')
Ejemplo n.º 27
0
    def test_testclass(self):
        cl = _pyjava.getclass(
                'pyjavatest/test_fields/AccessField')
        obj = cl()

        self.assertEqual(cl.a, 7)
        self.assertEqual(cl.b, 'test')
        self.assertEqual(cl.c, None)
        self.assertEqual(obj.d, -7)
        self.assertEqual(obj.e, None)
        self.assertEqual(obj.f, '4')
Ejemplo n.º 28
0
 def test_badoverload(self):
     """Calls an existing method but with wrong argument types.
     """
     Math = _pyjava.getclass('java/lang/Math')
     sin = Math.getmethod('sin')
     self.assertRaises(
             _pyjava.NoMatchingOverload,
             sin.call,
             4, 2)
     self.assertRaises(
             _pyjava.NoMatchingOverload,
             sin.call)
Ejemplo n.º 29
0
    def test_is_same_object(self):
        """Tests for equality of references.
        """
        jcl = _pyjava.getclass('pyjavatest/ObjFactory')
        makeObject = jcl.makeObject
        obj1 = makeObject(1)
        obj2 = makeObject(2)
        obj3 = makeObject(2)
        # == here tests Java reference equality, it does not call equals()
        self.assertTrue(obj1 == obj1)
        self.assertTrue(obj2 == obj2)
        self.assertTrue(obj3 == obj3)
        self.assertFalse(obj1 == obj2)
        self.assertTrue(obj2 == obj3)
        self.assertFalse(obj3 == obj1)
        self.assertFalse(obj2 == obj1)
        self.assertTrue(obj3 == obj2)
        self.assertFalse(obj1 == obj3)
        # <AK> additional
        # == ... and inequality
        self.assertFalse(obj1 != obj1)
        self.assertFalse(obj2 != obj2)
        self.assertFalse(obj3 != obj3)
        self.assertTrue(obj1 != obj2)
        self.assertFalse(obj2 != obj3)
        self.assertTrue(obj3 != obj1)
        self.assertTrue(obj2 != obj1)
        self.assertFalse(obj3 != obj2)
        self.assertTrue(obj1 != obj3)
        # </AK>

        String = _pyjava.getclass('java/lang/String')
        # These shouldn't raise
        self.assertFalse(obj1 == String)
        self.assertFalse(obj2 == String)
        # <AK> additional
        # == ... and inequality
        self.assertTrue(obj1 != String)
        self.assertTrue(obj2 != String)
Ejemplo n.º 30
0
 def test_wrongtype(self):
     """Assigns values of different types to fields.
     """
     SetField = _pyjava.getclass('pyjavatest/test_fields/SetField')
     sf = SetField()
     with self.assertRaises(TypeError):
         SetField.a = 6.87
     with self.assertRaises(TypeError):
         SetField.b = sf
     with self.assertRaises(TypeError):
         sf.c = u"test"
     with self.assertRaises(TypeError):
         sf.d = 1
Ejemplo n.º 31
0
    def test_is_same_object(self):
        """Tests for equality of references.
        """
        jcl = _pyjava.getclass('pyjavatest/ObjFactory')
        makeObject = jcl.makeObject
        obj1 = makeObject(1)
        obj2 = makeObject(2)
        obj3 = makeObject(2)
        # == here tests Java reference equality, it does not call equals()
        self.assertTrue(obj1 == obj1)
        self.assertTrue(obj2 == obj2)
        self.assertTrue(obj3 == obj3)
        self.assertFalse(obj1 == obj2)
        self.assertTrue(obj2 == obj3)
        self.assertFalse(obj3 == obj1)
        self.assertFalse(obj2 == obj1)
        self.assertTrue(obj3 == obj2)
        self.assertFalse(obj1 == obj3)

        String = _pyjava.getclass('java/lang/String')
        # These shouldn't raise
        self.assertFalse(obj1 == String)
        self.assertFalse(obj2 == String)
Ejemplo n.º 32
0
    def test_testclass(self):
        cl = _pyjava.getclass(
                'pyjavatest/test_fields/AccessField')
        obj = cl.create()

        a = cl.getfield('a')
        self.assertEqual(a.get(), 7)
        b = cl.getfield('b')
        self.assertEqual(b.get(), 'test')
        c = cl.getfield('c')
        self.assertEqual(c.get(), None)
        d = cl.getfield('d')
        self.assertEqual(d.get(obj), -7)
        e = cl.getfield('e')
        self.assertEqual(e.get(obj), None)
        f = cl.getfield('f')
        self.assertEqual(f.get(obj), '4')
Ejemplo n.º 33
0
 def test_issameobject(self):
     """Tests for equality of references.
     """
     jcl = _pyjava.getclass(
             'pyjavatest/ObjFactory')
     makeObject = jcl.getmethod('makeObject')
     obj1 = makeObject.call(1)
     obj2 = makeObject.call(2)
     obj3 = makeObject.call(1)
     self.assertTrue(_pyjava.issameobject(obj1, obj1))
     self.assertTrue(_pyjava.issameobject(obj2, obj2))
     self.assertTrue(_pyjava.issameobject(obj3, obj3))
     self.assertFalse(_pyjava.issameobject(obj1, obj2))
     self.assertFalse(_pyjava.issameobject(obj2, obj3))
     self.assertTrue(_pyjava.issameobject(obj3, obj1))
     self.assertFalse(_pyjava.issameobject(obj2, obj1))
     self.assertFalse(_pyjava.issameobject(obj3, obj2))
     self.assertTrue(_pyjava.issameobject(obj1, obj3))
Ejemplo n.º 34
0
def getclass(classname):
    # Convert from the 'usual' syntax to the 'JNI' syntax
    jni_classname = classname.replace('.', '/')

    cls = _pyjava.getclass(jni_classname)  # might raise ClassNotFound
    return cls
Ejemplo n.º 35
0
 def setUp(self):
     self._jcl = _pyjava.getclass(
             'pyjavatest/test_conversions/CallMethod_Conversions')
     self._jo = self._jcl()
Ejemplo n.º 36
0
 def test_staticmethod(self):
     """Calls a well-known static method.
     """
     Math = _pyjava.getclass('java/lang/Math')
     sin = Math.sin
     self.assertAlmostEqual(sin(math.pi / 2), 1.0)
Ejemplo n.º 37
0
 def test_nonexistent_class(self):
     """Sets an unknown field on a class.
     """
     Dimension = _pyjava.getclass('java/awt/Dimension')
     with self.assertRaises(AttributeError):
         Dimension.nonExistentField = 42