Changeset 2158

Show
Ignore:
Timestamp:
10/05/07 07:25:28 (1 year ago)
Author:
arj..@yirdis.nl
Message:

identified (one) problem of ticket #77: undone constraint is not related to handle on undo event.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • gaphor/trunk/tests/test_association_undo.py

    r2157 r2158  
    2828 
    2929        diagram = factory.create(UML.Diagram) 
     30        solver = diagram.canvas.solver 
    3031         
    3132        class1 = factory.create(UML.Class) 
     
    5455        former = (assoc.subject, assoc.head_end.subject, assoc.tail_end.subject) 
    5556         
     57        # Also check solver state: 
     58        x_cons = list(solver.constraints_with_variable(assoc.handles()[1].x)) 
     59        y_cons = list(solver.constraints_with_variable(assoc.handles()[1].y)) 
     60 
     61        assert len(solver._constraints) == 14, len(solver._constraints) 
     62        #assert len(x_cons) == 1, x_cons 
     63        #assert len(y_cons) == 1, y_cons 
     64 
    5665        tx = transaction.Transaction() 
    5766         
     
    6574        assert assoc.head_end.subject is None 
    6675        assert assoc.tail_end.subject is None 
     76 
     77        # Also check solver state: 
     78        x_cons = list(solver.constraints_with_variable(assoc.handles()[1].x)) 
     79        y_cons = list(solver.constraints_with_variable(assoc.handles()[1].y)) 
     80 
     81        assert len(solver._constraints) == 13, len(solver._constraints) 
     82        #assert len(x_cons) == 0, x_cons 
     83        #assert len(y_cons) == 0, y_cons 
    6784 
    6885        undo_manager = Application.get_service('undo_manager') 
     
    7895        assert assoc.tail_end.subject is former[2] 
    7996 
     97        # Also check solver state: 
     98        x_cons = list(solver.constraints_with_variable(assoc.handles()[1].x)) 
     99        y_cons = list(solver.constraints_with_variable(assoc.handles()[1].y)) 
     100 
     101        assert len(solver._constraints) == 14, len(solver._constraints) 
     102        assert len(x_cons) == 0, x_cons 
     103        assert len(y_cons) == 0, y_cons 
     104 
     105 
     106        # Disconnect again: 
     107 
     108        adapter = component.queryMultiAdapter((classItem2, assoc), IConnect) 
     109        assert adapter 
     110        adapter.disconnect(assoc.handles()[1]) 
    80111         
     112        assert assoc.subject is None 
     113        assert assoc.head_end.subject is None 
     114        assert assoc.tail_end.subject is None 
     115 
     116        # Also check solver state: 
     117        x_cons = list(solver.constraints_with_variable(assoc.handles()[1].x)) 
     118        y_cons = list(solver.constraints_with_variable(assoc.handles()[1].y)) 
     119 
     120        # Ah hah! the constraint is not disconnected again! 
     121        # (Added to solver, not to Handle I guess) 
     122        assert len(solver._constraints) == 13, len(solver._constraints) 
     123        #assert len(x_cons) == 0, x_cons 
     124        #assert len(y_cons) == 0, y_cons 
     125 
    81126 
    82127if __name__ == '__main__':