def test_disconnect_should_disconnect_model(connected_association): asc, c1, c2 = connected_association disconnect(asc, asc.head) disconnect(asc, asc.tail) assert c1 is not get_connected(asc, asc.head) assert c2 is not get_connected(asc, asc.tail) assert asc.subject assert len(asc.subject.memberEnd) == 2 assert asc.subject.memberEnd[0].type is None assert asc.subject.memberEnd[1].type is None
def test_generalization_reconnection(create, element_factory): """Test generalization item connection using two classes. On reconnection a new Generalization is created. """ gen = create(GeneralizationItem) c1 = create(ClassItem, UML.Class) c2 = create(ClassItem, UML.Class) connect(gen, gen.tail, c1) assert get_connected(gen, gen.tail) is c1 connect(gen, gen.head, c2) assert gen.subject is not None assert gen.subject.general is c2.subject assert gen.subject.specific is c1.subject # Now do the same on a new diagram: diagram2 = element_factory.create(UML.Diagram) c3 = diagram2.create(ClassItem, subject=c1.subject) c4 = diagram2.create(ClassItem, subject=c2.subject) gen2 = diagram2.create(GeneralizationItem) connect(gen2, gen2.head, c3) cinfo = diagram2.connections.get_connection(gen2.head) assert cinfo is not None assert cinfo.connected is c3 connect(gen2, gen2.tail, c4) assert gen.subject is not gen2.subject assert len(c1.subject.generalization) == 1 assert c1.subject.generalization[0] is gen.subject
def test_dependency_connect(create, element_factory): """Test dependency connecting to two actor items.""" actor1 = create(ActorItem, UML.Actor) actor2 = create(ActorItem, UML.Actor) dep = create(DependencyItem) connect(dep, dep.head, actor1) connect(dep, dep.tail, actor2) assert dep.subject is not None assert isinstance(dep.subject, UML.Dependency) assert dep.subject in element_factory.select() hct = get_connected(dep, dep.head) tct = get_connected(dep, dep.tail) assert hct is actor1 assert tct is actor2 assert actor1.subject is dep.subject.supplier assert actor2.subject is dep.subject.client
def test_generalization_connection(create): """Test generalization item connection using two classes.""" gen = create(GeneralizationItem) c1 = create(ClassItem, UML.Class) c2 = create(ClassItem, UML.Class) connect(gen, gen.tail, c1) assert get_connected(gen, gen.tail) is c1 connect(gen, gen.head, c2) assert gen.subject is not None assert gen.subject.general is c2.subject assert gen.subject.specific is c1.subject
def test_dependency_disconnect(create, element_factory): actor1 = create(ActorItem, UML.Actor) actor2 = create(ActorItem, UML.Actor) dep = create(DependencyItem) connect(dep, dep.head, actor1) connect(dep, dep.tail, actor2) dep_subj = dep.subject disconnect(dep, dep.tail) assert dep.subject is None assert get_connected(dep, dep.tail) is None assert dep_subj not in element_factory.select() assert dep_subj not in actor1.subject.supplierDependency assert dep_subj not in actor2.subject.clientDependency
def test_generalization_glue(create): """Test generalization item gluing using two classes.""" gen = create(GeneralizationItem) c1 = create(ClassItem, UML.Class) c2 = create(ClassItem, UML.Class) glued = allow(gen, gen.tail, c1) assert glued connect(gen, gen.tail, c1) assert get_connected(gen, gen.tail) is c1 assert gen.subject is None glued = allow(gen, gen.head, c2) assert glued