| | 46 | def test_vertex_connect(self): |
|---|
| | 47 | """Test transition and state vertices disconnection |
|---|
| | 48 | """ |
|---|
| | 49 | factory = self.element_factory |
|---|
| | 50 | |
|---|
| | 51 | v1 = self.create(items.StateItem) |
|---|
| | 52 | v2 = self.create(items.StateItem) |
|---|
| | 53 | |
|---|
| | 54 | t = self.create(items.TransitionItem) |
|---|
| | 55 | assert t.subject is None |
|---|
| | 56 | |
|---|
| | 57 | adapter = component.queryMultiAdapter((v1, t), IConnect) |
|---|
| | 58 | assert adapter is not None |
|---|
| | 59 | |
|---|
| | 60 | # connect head of transition to a state |
|---|
| | 61 | adapter.connect(t.head) |
|---|
| | 62 | assert t.subject is None |
|---|
| | 63 | |
|---|
| | 64 | adapter = component.queryMultiAdapter((v2, t), IConnect) |
|---|
| | 65 | assert adapter is not None |
|---|
| | 66 | |
|---|
| | 67 | # connect tail of transition to a second state |
|---|
| | 68 | adapter.connect(t.tail) |
|---|
| | 69 | assert t.subject is not None |
|---|
| | 70 | |
|---|
| | 71 | assert len(factory.lselect(lambda e: e.isKindOf(UML.Transition))) == 1 |
|---|
| | 72 | |
|---|
| | 73 | assert t.subject.source == v1.subject.outgoing |
|---|
| | 74 | assert t.subject.target == v2.subject.incoming |
|---|
| | 75 | |
|---|
| | 76 | adapter.disconnect(t.tail) |
|---|
| | 77 | assert t.subject is None |
|---|
| | 78 | |
|---|
| | 79 | adapter.disconnect(t.head) |
|---|
| | 80 | assert t.subject is None |
|---|
| | 81 | |
|---|
| | 82 | |
|---|