def testIsReadOnly(self):
     streetProperty = NestedMethodProperty(self._vaadin,
             'manager.address.street')
     booleanProperty = NestedMethodProperty(self._vaadin,
             'manager.address.boolean')
     self.assertFalse(streetProperty.isReadOnly())
     self.assertTrue(booleanProperty.isReadOnly())
    def testNullNestedProperty(self):
        managerNameProperty = NestedMethodProperty(self._vaadin,
                'manager.name')
        streetProperty = NestedMethodProperty(self._vaadin,
                'manager.address.street')

        self._joonas.setAddress(None)
        try:
            streetProperty.getValue()
            self.fail()
        except Exception:
            pass  # should get exception

        self._vaadin.setManager(None)
        try:
            managerNameProperty.getValue()
            self.fail()
        except Exception:
            pass  # should get exception

        try:
            streetProperty.getValue()
            self.fail()
        except Exception:
            pass  # should get exception

        self._vaadin.setManager(self._joonas)
        self.assertEquals('Joonas', managerNameProperty.getValue())
    def testMultiLevelNestedProperty(self):
        managerNameProperty = NestedMethodProperty(self._vaadin,
                'manager.name')
        addressProperty = NestedMethodProperty(self._vaadin,
                'manager.address')
        streetProperty = NestedMethodProperty(self._vaadin,
                'manager.address.street')
        postalCodePrimitiveProperty = NestedMethodProperty(self._vaadin,
                'manager.address.postalCodePrimitive')
        postalCodeObjectProperty = NestedMethodProperty(self._vaadin,
                'manager.address.postalCodeObject')
        booleanProperty = NestedMethodProperty(self._vaadin,
                'manager.address.boolean')

        self.assertEquals(str, managerNameProperty.getType())
        self.assertEquals('Joonas', managerNameProperty.getValue())

        self.assertEquals(Address, addressProperty.getType())
        self.assertEquals(self._oldMill, addressProperty.getValue())

        self.assertEquals(str, streetProperty.getType())
        self.assertEquals('Ruukinkatu 2-4', streetProperty.getValue())

        self.assertEquals(int, postalCodePrimitiveProperty.getType())
        self.assertEquals(20540, postalCodePrimitiveProperty.getValue())

        self.assertEquals(int, postalCodeObjectProperty.getType())
        self.assertEquals(20540, postalCodeObjectProperty.getValue())

        self.assertEquals(bool, booleanProperty.getType())
        self.assertEquals(True, booleanProperty.getValue())
 def testSingleLevelNestedObjectProperty(self):
     managerProperty = NestedMethodProperty(self._vaadin, 'manager')
     self.assertEquals(Person, managerProperty.getType())
     self.assertEquals(self._joonas, managerProperty.getValue())
 def testSingleLevelNestedSimpleProperty(self):
     nameProperty = NestedMethodProperty(self._vaadin, 'name')
     self.assertEquals(str, nameProperty.getType())
     self.assertEquals('Vaadin', nameProperty.getValue())
    def testMultiLevelNestedPropertySetValue(self):
        managerNameProperty = NestedMethodProperty(self._vaadin,
                'manager.name')
        addressProperty = NestedMethodProperty(self._vaadin,
                'manager.address')
        streetProperty = NestedMethodProperty(self._vaadin,
                'manager.address.street')
        postalCodePrimitiveProperty = NestedMethodProperty(self._vaadin,
                'manager.address.postalCodePrimitive')
        postalCodeObjectProperty = NestedMethodProperty(self._vaadin,
                'manager.address.postalCodeObject')

        managerNameProperty.setValue('Joonas L')
        self.assertEquals('Joonas L', self._joonas.getName())
        streetProperty.setValue('Ruukinkatu')
        self.assertEquals('Ruukinkatu', self._oldMill.getStreet())
        postalCodePrimitiveProperty.setValue(0)
        postalCodeObjectProperty.setValue(1)
        self.assertEquals(0, self._oldMill.getPostalCodePrimitive())
        self.assertEquals(int(1), self._oldMill.getPostalCodeObject())

        postalCodeObjectProperty.setValue(None)
        self.assertNull(self._oldMill.getPostalCodeObject())

        address2 = self.Address('Other street', 12345)
        addressProperty.setValue(address2)
        self.assertEquals('Other street', streetProperty.getValue())