Beispiel #1
0
    def test_connection_to_resource_can_be_highlighted(self):
        # GIVEN the following mesh
        #
        #     _____________           _____________
        #    |      A      |         |      B      |
        #    |-------------|         |-------------|
        #    |      |  n1  |-------->|  p1  |  n2  |--------->[ Resource X ]
        #    |______|______|         |______|______|
        #
        #
        m = Mesh()
        m.add_component('A', needs_ports=['n1'])
        m.add_component('B', needs_ports=['n2'], provides_ports=['p1'])
        m.add_resource('Resource X')
        m.add_connection('A', 'n1', 'B', 'p1')
        m.add_connection_to_resource('B', 'n2', 'Resource X')

        # WHEN connection to Resource X is highlighted
        m.highlight_connection_to_resource('B', 'n2', 'Resource X')

        # THEN this is reflected in the dict representation
        self.assertEqual({
            'components': [
                {'name': 'A', 'needs_ports': ['n1'], 'provides_ports': []},
                {'name': 'B', 'needs_ports': ['n2'], 'provides_ports': ['p1']}
            ],
            'resources': ['Resource X'],
            'connections': [
                {
                    'consumer_component': 'A',
                    'consumer_port': 'n1',
                    'producer_component': 'B',
                    'producer_port': 'p1',
                },
                {
                    'consumer_component': 'B',
                    'consumer_port': 'n2',
                    'resource': 'Resource X',
                    'highlighted': True,
                },
            ],
        }, m.as_dict())