Changeset 2255

Show
Ignore:
Timestamp:
03/05/08 22:53:32 (2 months ago)
Author:
arj..@yirdis.nl
Message:

moved classes items to seperate package. More unit tests for interface item.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • gaphor/trunk/gaphor/diagram/classes/dependency.py

    r1938 r2255  
    2525 
    2626class DependencyItem(DiagramLine): 
    27     """This class represents all types of dependencies. 
     27    """ 
     28    This class represents all types of dependencies. 
    2829 
    2930    Normally a dependency looks like a dashed line with an arrow head. 
  • gaphor/trunk/gaphor/diagram/classes/feature.py

    r2217 r2255  
    11# vim:sw=4:et 
    2 ''' 
     2""" 
    33Feature diagram item. Feature is a super class of both Attribute, Operations and 
    44Methods. 
    5 ''' 
     5""" 
    66 
    77from gaphor import UML 
    88from gaphas.item import Item 
    9 from diagramitem import DiagramItem 
    109from gaphor.diagram import DiagramItemMeta 
     10from gaphor.diagram.diagramitem import DiagramItem 
    1111from gaphas.util import text_extents, text_set_font, text_align 
    12 import font 
     12from gaphor.diagram import font 
    1313 
    1414class FeatureItem(DiagramItem): 
  • gaphor/trunk/gaphor/diagram/classes/implementation.py

    r1747 r2255  
    1616    def post_update(self, context): 
    1717        # change look into solid line when connected to folded interface 
    18         from gaphor.diagram.interface import InterfaceItem 
     18        from interface import InterfaceItem 
    1919        conn_to = self.head.connected_to 
    2020        if isinstance(conn_to, InterfaceItem) \ 
  • gaphor/trunk/gaphor/diagram/classes/interface.py

    r2253 r2255  
    99 
    1010from gaphor import UML 
    11 from gaphor.diagram.dependency import DependencyItem 
    12 from gaphor.diagram.implementation import ImplementationItem 
    13 from gaphor.diagram.klass import ClassItem 
     11from dependency import DependencyItem 
     12from implementation import ImplementationItem 
     13from klass import ClassItem 
    1414from gaphor.diagram.nameditem import NamedItem 
    1515from gaphor.diagram.style import ALIGN_TOP, ALIGN_BOTTOM, ALIGN_CENTER 
     
    5757        self.add_watch(UML.Interface.ownedOperation, self.on_class_owned_operation) 
    5858        self.add_watch(UML.Implementation.contract, self.on_implementation_contract) 
     59        #self.add_watch(UML.Interface.implementation) 
     60        self.add_watch(UML.Interface.supplierDependency) 
     61 
    5962 
    6063    @observed 
  • gaphor/trunk/gaphor/diagram/classes/klass.py

    r2189 r2255  
    88from gaphor.i18n import _ 
    99 
    10 from classifier import ClassifierItem 
     10from gaphor.diagram.classifier import ClassifierItem 
    1111from feature import AttributeItem, OperationItem 
    1212 
  • gaphor/trunk/gaphor/diagram/classes/tests/test_association.py

    r1887 r2255  
    77 
    88from gaphor import UML 
    9 from gaphor.diagram.association import AssociationItem 
    10 from gaphor.diagram.klass import ClassItem 
     9from gaphor.diagram.classes.association import AssociationItem 
     10from gaphor.diagram.classes.klass import ClassItem 
    1111from gaphor.diagram.interfaces import IConnect 
    1212from gaphas import View 
  • gaphor/trunk/gaphor/diagram/classes/tests/test_class.py

    r2041 r2255  
    33""" 
    44 
    5 import unittest 
     5from gaphor.tests.testcase import TestCase 
    66 
    77from gaphor import UML 
    8 from gaphor.diagram.klass import ClassItem 
     8from gaphor.diagram.classes.klass import ClassItem 
    99from gaphor.diagram.interfaces import IEditor 
    1010 
     
    1212 
    1313 
    14 class ClassTestCase(unittest.TestCase): 
     14class ClassTestCase(TestCase): 
    1515 
    1616    def test_compartments(self): 
     
    1818        Test creation of classes and working of compartments. 
    1919        """ 
    20         element_factory = UML.ElementFactory() 
     20        element_factory = self.element_factory 
    2121        diagram = element_factory.create(UML.Diagram) 
    2222        klass = diagram.create(ClassItem, subject=element_factory.create(UML.Class)) 
     
    5151    def test_attribute_removal(self): 
    5252 
    53         element_factory = UML.ElementFactory() 
     53        element_factory = self.element_factory 
    5454        diagram = element_factory.create(UML.Diagram) 
    5555        klass = diagram.create(ClassItem, subject=element_factory.create(UML.Class)) 
     
    8181        Test working of item_at method. 
    8282        """ 
    83         element_factory = UML.ElementFactory() 
     83        element_factory = self.element_factory 
    8484        diagram = element_factory.create(UML.Diagram) 
    8585        klass = diagram.create(ClassItem, subject=element_factory.create(UML.Class)) 
  • gaphor/trunk/gaphor/diagram/classes/tests/test_interface.py

    r2253 r2255  
    33""" 
    44 
     5from zope import component 
    56from gaphor.tests.testcase import TestCase 
    67from gaphor import UML 
    7 from gaphor.diagram.interface import InterfaceItem 
    8  
    9 import gaphor.adapters 
     8from gaphor.diagram.interfaces import IConnect 
     9from gaphor.diagram.classes.interface import InterfaceItem 
     10from gaphor.diagram.classes.klass import ClassItem 
     11from gaphor.diagram.classes.dependency import DependencyItem 
     12from gaphor.diagram.classes.implementation import ImplementationItem 
    1013 
    1114 
    1215class ClassTestCase(TestCase): 
    1316 
    14     services = [ 'element_factory'
     17    services = [ 'element_factory', 'adapter_loader'
    1518 
    1619    def test_interface(self): 
     
    2124    def test_folding(self): 
    2225        diagram = self.element_factory.create(UML.Diagram) 
    23         klass = diagram.create(InterfaceItem, subject=self.element_factory.create(UML.Class)) 
     26        klass = diagram.create(InterfaceItem, subject=self.element_factory.create(UML.Interface)) 
    2427        klass.subject.name = 'Interface1' 
    2528        assert klass.style.name_outside == False 
     
    3033        #assert klass.style.name_align == (ALIGN_CENTER, ALIGN_BOTTOM) 
    3134 
     35    def test_folding_required_provided(self): 
     36 
     37        class1 = self.create(ClassItem, UML.Class) 
     38        class2 = self.create(ClassItem, UML.Class) 
     39 
     40        item = self.create(InterfaceItem, UML.Interface) 
     41        item.folded = True 
     42        assert item.drawing_style == item.DRAW_ICON 
     43        assert not item._draw_required 
     44        assert not item._draw_provided 
     45 
     46        # Connect Usage dependency: should result in required interface 
     47 
     48        usage = self.create(DependencyItem, UML.Usage) 
     49        adapter = component.queryMultiAdapter((class1, usage), IConnect) 
     50        adapter.connect(usage.tail) 
     51 
     52        adapter = component.queryMultiAdapter((item, usage), IConnect) 
     53        adapter.connect(usage.head) 
     54 
     55        assert item.subject.supplierDependency, item.subject.supplierDependency 
     56        assert usage.head.connected_to is item 
     57        assert item._draw_required 
     58        assert not item._draw_provided 
     59 
     60        # TODO: check drawing state of dependency 
     61         
     62        # Connect Implementation: should result in provided interface 
     63 
     64        impl = self.create(ImplementationItem, UML.Implementation) 
     65        adapter = component.queryMultiAdapter((class2, impl), IConnect) 
     66        adapter.connect(impl.tail) 
     67 
     68        adapter = component.queryMultiAdapter((item, impl), IConnect) 
     69        adapter.connect(impl.head) 
     70 
     71        assert item.subject in impl.subject.contract 
     72        assert usage.head.connected_to is item 
     73        assert item._draw_required 
     74        assert item._draw_provided 
     75 
    3276# vim:sw=4:et:ai 
  • gaphor/trunk/gaphor/diagram/items.py

    r2232 r2255  
    1717 
    1818# Classes: 
    19 from gaphor.diagram.feature import FeatureItem, AttributeItem, OperationItem 
    20 from gaphor.diagram.klass import ClassItem 
    21 from gaphor.diagram.interface import InterfaceItem 
    22 from gaphor.diagram.package import PackageItem 
    23 from gaphor.diagram.association import AssociationItem 
    24 from gaphor.diagram.dependency import DependencyItem 
    25 from gaphor.diagram.generalization import GeneralizationItem 
    26 from gaphor.diagram.implementation import ImplementationItem 
     19from gaphor.diagram.classes.feature import FeatureItem, AttributeItem, OperationItem 
     20from gaphor.diagram.classes.klass import ClassItem 
     21from gaphor.diagram.classes.interface import InterfaceItem 
     22from gaphor.diagram.classes.package import PackageItem 
     23from gaphor.diagram.classes.association import AssociationItem 
     24from gaphor.diagram.classes.dependency import DependencyItem 
     25from gaphor.diagram.classes.generalization import GeneralizationItem 
     26from gaphor.diagram.classes.implementation import ImplementationItem 
    2727 
    2828# Components: