Exemple #1
0
    def test_association_notification(self):
        """
        Test notifications with Class object.
        
        Tricky case where no events are fired.
        """
        dispatcher = self.dispatcher
        element = UML.Association()
        p1 = element.memberEnd = UML.Property()
        p2 = element.memberEnd = UML.Property()

        assert len(element.memberEnd) == 2
        print(element.memberEnd)
        dispatcher.register_handler(self._handler, element, 'memberEnd.name')
        assert len(dispatcher._handlers) == 3, len(dispatcher._handlers)
        assert not self.events

        p1.name = 'foo'
        assert len(self.events) == 1, (self.events, dispatcher._handlers)
        assert len(dispatcher._handlers) == 3

        p1.name = 'othername'
        assert len(self.events) == 2, self.events

        p1.name = 'othername'
        assert len(self.events) == 2, self.events
Exemple #2
0
def test_property_is_composite(factory):
    p = UML.Property()
    assert p.isComposite == False, p.isComposite
    p.aggregation = "shared"
    assert p.isComposite == False, p.isComposite
    p.aggregation = "composite"
    assert p.isComposite == True, p.isComposite
Exemple #3
0
 def test_property_is_composite(self):
     p = UML.Property()
     assert p.isComposite == False, p.isComposite
     p.aggregation = 'shared'
     assert p.isComposite == False, p.isComposite
     p.aggregation = 'composite'
     assert p.isComposite == True, p.isComposite
Exemple #4
0
def test_association_endType(factory):
    c1 = UML.Class()
    c2 = UML.Class()
    a = UML.Association()
    a.memberEnd = UML.Property()
    a.memberEnd = UML.Property()
    a.memberEnd[0].type = c1
    a.memberEnd[1].type = c2
    c1.ownedAttribute = a.memberEnd[0]
    c2.ownedAttribute = a.memberEnd[1]

    assert c1 in a.endType
    assert c2 in a.endType

    c3 = UML.Class()
    a.memberEnd[1].type = c3

    assert c1 in a.endType
    assert c3 in a.endType
Exemple #5
0
    def test_association_notification_complex(self):
        """
        Test notifications with Class object.
        
        Tricky case where no events are fired.
        """
        dispatcher = self.dispatcher
        element = UML.Association()
        p1 = element.memberEnd = UML.Property()
        p2 = element.memberEnd = UML.Property()
        p1.lowerValue = '0'
        p1.upperValue = '1'
        p2.lowerValue = '1'
        p2.upperValue = '*'

        assert len(element.memberEnd) == 2
        print(element.memberEnd)

        base = 'memberEnd<Property>.'
        dispatcher.register_handler(self._handler, element, base + 'name')
        dispatcher.register_handler(self._handler, element,
                                    base + 'aggregation')
        dispatcher.register_handler(self._handler, element,
                                    base + 'classifier')
        dispatcher.register_handler(self._handler, element,
                                    base + 'lowerValue')
        dispatcher.register_handler(self._handler, element,
                                    base + 'upperValue')

        assert len(dispatcher._handlers) == 11, len(dispatcher._handlers)
        assert not self.events

        p1.name = 'foo'
        assert len(self.events) == 1, (self.events, dispatcher._handlers)
        assert len(dispatcher._handlers) == 11

        p1.name = 'othername'
        assert len(self.events) == 2, self.events