def test_object_link_classifier_bundable(self): self.create_simple_link_object_test_setup() bundle = CBundle("Bundle", elements=self.a.get_connected_elements()) eq_(set(bundle.elements), {self.a, self.a1, self.a2, self.b}) try: bundle.elements = self.a.get_connected_elements(add_links=True) exception_expected_() except CException as e: eq_( "unknown keyword argument 'add_links', should be one of:" + " ['add_associations', 'add_bundles', 'process_bundles', 'stop_elements_inclusive', " + "'stop_elements_exclusive']", e.value) eq_(self.a_association.bundles, []) bundle.elements = self.a.get_connected_elements(add_associations=True) eq_(set(bundle.elements), {self.a, self.a1, self.a2, self.b, self.a_association}) eq_(self.a_association.bundles, [bundle]) bundle2 = CBundle("Bundle2", elements=self.a_association.get_connected_elements( add_associations=True)) eq_(set(bundle2.elements), {self.a, self.a1, self.a2, self.b, self.a_association}) eq_(set(self.a_association.bundles), {bundle, bundle2}) bundle2.delete() eq_(set(self.a_association.bundles), {bundle}) self.a_association.delete() eq_(set(bundle.elements), {self.a, self.a1, self.a2, self.b})
def test_bundle_defined_stereotype(self): s1 = CStereotype("s1") s2 = CStereotype("s2") s3 = CStereotype("s3") eq_(set(self.b1.get_elements(type=CStereotype)), set()) b1 = CBundle("B1", elements=[s1, s2, s3]) eq_(set(b1.elements), {s1, s2, s3}) cl = CClass(self.mcl, "C", bundles=b1) eq_(set(b1.elements), {s1, s2, s3, cl}) eq_(set(b1.get_elements(type=CStereotype)), {s1, s2, s3}) b2 = CBundle("B2") b2.elements = [s2, s3] eq_(set(b2.get_elements(type=CStereotype)), {s2, s3}) eq_(set(s1.bundles), {b1}) eq_(set(s2.bundles), {b1, b2}) eq_(set(s3.bundles), {b1, b2})
def test_bundle_defined_classes(self): cl1 = CClass(self.mcl, "Class1") cl2 = CClass(self.mcl, "Class2") cl3 = CClass(self.mcl, "Class3") eq_(set(self.b1.get_elements(type=CClass)), set()) b1 = CBundle("B1", elements=[cl1, cl2, cl3]) eq_(set(b1.elements), {cl1, cl2, cl3}) self.mcl.bundles = b1 eq_(set(b1.elements), {cl1, cl2, cl3, self.mcl}) eq_(set(b1.get_elements(type=CClass)), {cl1, cl2, cl3}) b2 = CBundle("B2") b2.elements = [cl2, cl3] eq_(set(b2.get_elements(type=CClass)), {cl2, cl3}) eq_(set(cl1.bundles), {b1}) eq_(set(cl2.bundles), {b1, b2}) eq_(set(cl3.bundles), {b1, b2})
def test_bundle_defined_metaclasses(self): m1 = CMetaclass("M1") m2 = CMetaclass("M2") m3 = CMetaclass("M3") eq_(set(self.b1.get_elements(type=CMetaclass)), set()) b1 = CBundle("B1", elements=[m1, m2, m3]) eq_(set(b1.elements), {m1, m2, m3}) cl = CClass(m1, "C", bundles=b1) eq_(set(b1.elements), {m1, m2, m3, cl}) eq_(set(b1.get_elements(type=CMetaclass)), {m1, m2, m3}) b2 = CBundle("B2") b2.elements = [m2, m3] eq_(set(b2.get_elements(type=CMetaclass)), {m2, m3}) eq_(set(m1.bundles), {b1}) eq_(set(m2.bundles), {b1, b2}) eq_(set(m3.bundles), {b1, b2})
def test_bundle_defined_enums(self): e1 = CEnum("E1", values=["A", "B", "C"]) e2 = CEnum("E2", values=["A", "B", "C"]) e3 = CEnum("E3", values=["A", "B", "C"]) eq_(set(self.b1.get_elements(type=CEnum)), set()) b1 = CBundle("B1", elements=[e1, e2, e3]) eq_(set(b1.elements), {e1, e2, e3}) self.mcl.bundles = b1 eq_(set(b1.elements), {e1, e2, e3, self.mcl}) eq_(set(b1.get_elements(type=CEnum)), {e1, e2, e3}) b2 = CBundle("B2") b2.elements = [e2, e3] eq_(set(b2.get_elements(type=CEnum)), {e2, e3}) eq_(set(e1.bundles), {b1}) eq_(set(e2.bundles), {b1, b2}) eq_(set(e3.bundles), {b1, b2})
def test_bundle_defined_by_bundle_list(self): b1 = CBundle("B1") b2 = CBundle("B2") b3 = CBundle("P3") eq_(set(self.b1.get_elements(type=CBundle)), set()) ba = CBundle("PA", elements=[b1, b2, b3]) eq_(set(ba.elements), {b1, b2, b3}) self.mcl.bundles = ba eq_(set(ba.elements), {b1, b2, b3, self.mcl}) eq_(set(ba.get_elements(type=CBundle)), {b1, b2, b3}) bb = CBundle("PB") bb.elements = [b2, b3] eq_(set(bb.get_elements(type=CBundle)), {b2, b3}) eq_(set(b1.bundles), {ba}) eq_(set(b2.bundles), {ba, bb}) eq_(set(b3.bundles), {ba, bb}) eq_(set(ba.bundles), set()) eq_(set(bb.bundles), set()) eq_(set(b1.elements), set()) eq_(set(b2.elements), set()) eq_(set(b3.elements), set())