def test_add_edge_to_network_using_src_target_node_ids(self):
        net = NiceCXNetwork()
        src_node = net.create_node('node1')
        target_node = net.create_node('node2')

        ne = NetworkEdge(edge_id=1,
                         source_node_id=src_node,
                         target_node_id=target_node,
                         interaction='activates')

        self.assertEqual(0, len(net.get_edges()))
        edge_id = ne.add_edge_to_network(net_cx=net)
        self.assertEqual(1, len(net.get_edges()))

        nef = NetworkEdgeFactory()
        new_ne = nef.get_network_edge_from_network(net_cx=net, edge_id=edge_id)
        self.assertEqual('node1', new_ne.get_source_node_name())
        self.assertEqual('node2', new_ne.get_target_node_name())
        self.assertEqual(src_node, new_ne.get_source_node_id())
        self.assertEqual(target_node, new_ne.get_target_node_id())
        self.assertEqual('activates', new_ne.get_interaction())

        self.assertEqual([], new_ne.get_attributes())
        new_ne.remove_edge_from_network(net_cx=net)
        self.assertEqual(0, len(net.get_edges()))
    def test_add_edge_to_network(self):
        net = NiceCXNetwork()
        src_node = net.create_node('node1')
        target_node = net.create_node('node2')

        attrs = []

        attrs.append(Attribute(name='foo', value='ha'))
        attrs.append(Attribute(name='foo2', value='ha2', data_type='string'))

        ne = NetworkEdge(edge_id=1, interaction='activates', attributes=attrs)

        self.assertEqual(0, len(net.get_edges()))
        edge_id = ne.add_edge_to_network(net_cx=net,
                                         source_node_id=src_node,
                                         target_node_id=target_node)
        self.assertEqual(1, len(net.get_edges()))

        nef = NetworkEdgeFactory()
        new_ne = nef.get_network_edge_from_network(net_cx=net, edge_id=edge_id)
        self.assertEqual('node1', new_ne.get_source_node_name())
        self.assertEqual('node2', new_ne.get_target_node_name())
        self.assertEqual(src_node, new_ne.get_source_node_id())
        self.assertEqual(target_node, new_ne.get_target_node_id())
        self.assertEqual('activates', new_ne.get_interaction())

        self.assertEqual(2, len(new_ne.get_attributes()))
        a_dict = {}
        for attr in new_ne.get_attributes():
            a_dict[attr.get_name()] = attr

        self.assertEqual('ha', a_dict['foo'].get_value())
        self.assertEqual('ha2', a_dict['foo2'].get_value())

        new_ne.remove_edge_from_network(net_cx=net)

        self.assertEqual(0, len(net.get_edges()))