Ejemplo n.º 1
0
    def testMixed(self):
        d = {'a':'b', 'c':'d'}
        l = ['e', 'f', 'g', 'h']
        s = set(['i', 'j', 'k'])

        # mixed types in a dictionary
        md = {'d': d, 'l': l, 's': s, 'str': 'hello'}
        jmd = to_java(md)
        self.assertEqual(len(md), jmd.size())
        for k, v in md.items():
            jk = to_java(k)
            self.assertTrue(jmd.containsKey(jk))
            self.assertEqual(v, to_python(jmd.get(jk)))
        pmd = to_python(jmd)
        self.assertEqual(md, pmd)
        self.assertEqual(str(md), str(pmd))

        # mixed types in a list
        ml = [d, l, s, 'hello']
        jml = to_java(ml)
        for e, a in zip(ml, jml):
            self.assertEqual(e, to_python(a))
        pml = to_python(jml)
        self.assertEqual(ml, pml)
        self.assertEqual(str(ml), str(pml))
Ejemplo n.º 2
0
 def testDict(self):
     d = {
         'access_log': [
             {'stored_proc': 'getsomething'},
             {'uses': [
                 {'usedin': 'some->bread->crumb'},
                 {'usedin': 'something else here'},
                 {'stored_proc': 'anothersp'}
             ]},
             {'uses': [
                 {'usedin': 'blahblah'}
             ]}
         ],
         'reporting': [
             {'stored_proc': 'reportingsp'},
             {'uses': [{'usedin': 'breadcrumb'}]}
         ]
     }
     jd = to_java(d)
     self.assertEqual(len(d), jd.size())
     for k, v in d.items():
         jk = to_java(k)
         self.assertTrue(jd.containsKey(jk))
         self.assertEqual(v, to_python(jd.get(jk)))
     pd = to_python(jd)
     self.assertEqual(d, pd)
     self.assertEqual(str(d), str(pd))
Ejemplo n.º 3
0
 def testSet(self):
     s = set(['orange', 'apple', 'pineapple', 'plum'])
     js = to_java(s)
     self.assertEqual(len(s), js.size())
     for e in s:
         self.assertTrue(js.contains(to_java(e)))
     ps = to_python(js)
     self.assertEqual(s, ps)
     self.assertEqual(str(s), str(ps))
Ejemplo n.º 4
0
 def testBoolean(self):
     jt = to_java(True)
     self.assertEqual(True, jt.booleanValue())
     pt = to_python(jt)
     self.assertEqual(True, pt)
     self.assertEqual('True', str(pt))
     jf = to_java(False)
     self.assertEqual(False, jf.booleanValue())
     pf = to_python(jf)
     self.assertEqual(False, pf)
     self.assertEqual('False', str(pf))
Ejemplo n.º 5
0
 def testBigInteger(self):
     bi = 9879999999999999789
     jbi = to_java(bi)
     self.assertEqual(bi, int(jbi.toString()))
     pbi = to_python(jbi)
     self.assertEqual(bi, pbi)
     self.assertEqual(str(bi), str(pbi))
Ejemplo n.º 6
0
 def testLong(self):
     l = 4000000001
     jl = to_java(l)
     self.assertEqual(l, jl.longValue())
     pl = to_python(jl)
     self.assertEqual(l, pl)
     self.assertEqual(str(l), str(pl))
Ejemplo n.º 7
0
 def testInteger(self):
     i = 5
     ji = to_java(i)
     self.assertEqual(i, ji.intValue())
     pi = to_python(ji)
     self.assertEqual(i, pi)
     self.assertEqual(str(i), str(pi))
Ejemplo n.º 8
0
 def testList(self):
     l = 'The quick brown fox jumps over the lazy dogs'.split()
     jl = to_java(l)
     for e, a in zip(l, jl):
         self.assertEqual(e, to_python(a))
     pl = to_python(jl)
     self.assertEqual(l, pl)
     self.assertEqual(str(l), str(pl))
Ejemplo n.º 9
0
 def testString(self):
     s = 'Hello world!'
     js = to_java(s)
     for e, a in zip(s, js.toCharArray()):
         self.assertEqual(e, a)
     ps = to_python(js)
     self.assertEqual(s, ps)
     self.assertEqual(str(s), str(ps))
Ejemplo n.º 10
0
 def testNone(self):
     d = {'key':None, None:'value', 'foo':'bar'}
     jd = to_java(d)
     self.assertEqual(3, jd.size())
     self.assertEqual(None, jd.get('key'))
     self.assertEqual('value', jd.get(None))
     self.assertEqual('bar', jd.get('foo'))
     pd = to_python(jd)
     self.assertEqual(d, pd)
Ejemplo n.º 11
0
 def testList(self):
     l = 'The quick brown fox jumps over the lazy dogs'.split()
     jl = to_java(l)
     for e, a in zip(l, jl):
         self.assertEqual(e, to_python(a))
     pl = to_python(jl)
     self.assertEqual(l, pl)
     self.assertEqual(str(l), str(pl))
     self.assertEqual(pl[1], 'quick')
     pl[7] = 'silly'
     self.assertEqual('The quick brown fox jumps over the silly dogs', ' '.join(pl))
Ejemplo n.º 12
0
    def testStructureWithSomeUnsupportedItems(self):
        # Create Java data structure with some challenging items.
        Object = jnius.autoclass('java.lang.Object')
        jmap = to_java({
            'list': ['a', Object(), 1],
            'set': {'x', Object(), 2},
            'object': Object(),
            'foo': 'bar'
        })
        self.assertEqual('java.util.LinkedHashMap', jclass(jmap).getName())

        # Convert it back to Python.
        pdict = to_python(jmap)
        l = pdict['list']
        self.assertEqual(pdict['list'][0], 'a')
        assert type(pdict['list'][1]) == Object
        assert pdict['list'][2] == 1
        assert 'x' in pdict['set']
        assert 2 in pdict['set']
        assert len(pdict['set']) == 3
        assert type(pdict['object']) == Object
        self.assertEqual(pdict['foo'], 'bar')
Ejemplo n.º 13
0
    def testClass(self):
        """
        Tests class detection from Java objects.
        """
        int_class = jclass(to_java(5))
        self.assertEqual('java.lang.Integer', int_class.getName())

        long_class = jclass(to_java(4000000001))
        self.assertEqual('java.lang.Long', long_class.getName())

        bigint_class = jclass(to_java(9879999999999999789))
        self.assertEqual('java.math.BigInteger', bigint_class.getName())

        string_class = jclass(to_java('foobar'))
        self.assertEqual('java.lang.String', string_class.getName())

        list_class = jclass(to_java([1, 2, 3]))
        self.assertEqual('java.util.ArrayList', list_class.getName())

        map_class = jclass(to_java({'a':'b'}))
        self.assertEqual('java.util.LinkedHashMap', map_class.getName())

        self.assertEqual('java.util.Map', jclass('java.util.Map').getName())