blob: 000544b35807fabe2246b39782efc7e06e1ba98c [file] [log] [blame]
#!/usr/bin/env python3
# Copyright 2019 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import unittest
from server.graph.component_graph import *
from server.graph.component_link import *
from server.graph.component_node import *
class TestComponentGraph(unittest.TestCase):
def test_add_node(self):
component_graph = ComponentGraph()
self.assertEqual(len(component_graph.nodes), 0)
component_graph.add_node(
ComponentNode(
"fuchsia-pkg://fuchsia.com/test_1#/meta/test_1.cmx", {}))
self.assertEqual(len(component_graph.nodes), 1)
component_graph.add_node(
ComponentNode(
"fuchsia-pkg://fuchsia.com/test_2#/meta/test_2.cmx", {}))
self.assertEqual(len(component_graph.nodes), 2)
def test_add_link(self):
component_graph = ComponentGraph()
component_graph.add_node(
ComponentNode(
"fuchsia-pkg://fuchsia.com/test_1#/meta/test_1.cmx", {}))
component_graph.add_node(
ComponentNode(
"fuchsia-pkg://fuchsia.com/test_2#/meta/test_2.cmx", {}))
self.assertEqual(len(component_graph.links), 0)
component_graph.add_link(
ComponentLink(
"fuchsia-pkg://fuchsia.com/test_1#/meta/test_1.cmx",
"fuchsia-pkg://fuchsia.com/test_2#/meta/test_2.cmx", "use",
"fidl.Service"))
self.assertEqual(len(component_graph.links), 1)
component_graph.add_link(
ComponentLink(
"fuchsia-pkg://fuchsia.com/test_2#/meta/test_2.cmx",
"fuchsia-pkg://fuchsia.com/test_1#/meta/test_1.cmx", "use",
"fidl.AnotherService"))
self.assertEqual(len(component_graph.links), 2)
def test_get_item(self):
component_graph = ComponentGraph()
component_graph.add_node(
ComponentNode(
"fuchsia-pkg://fuchsia.com/test_1#/meta/test_1.cmx", {}))
component_graph.add_node(
ComponentNode(
"fuchsia-pkg://fuchsia.com/test_2#/meta/test_2.cmx", {}))
self.assertIsNotNone(
component_graph["fuchsia-pkg://fuchsia.com/test_1#/meta/test_1.cmx"]
)
self.assertIsNotNone(
component_graph["fuchsia-pkg://fuchsia.com/test_2#/meta/test_2.cmx"]
)
with self.assertRaises(KeyError):
self.assertIsNotNone(component_graph["fake_url3"])
def test_export_empty(self):
component_graph = ComponentGraph()
empty_export = component_graph.export()
self.assertEqual(empty_export["nodes"], [])
self.assertEqual(empty_export["links"], [])
def test_export(self):
component_graph = ComponentGraph()
component_graph.add_node(
ComponentNode(
"fuchsia-pkg://fuchsia.com/test_1#/meta/test_1.cmx", {}))
component_graph.add_node(
ComponentNode(
"fuchsia-pkg://fuchsia.com/test_2#/meta/test_2.cmx", {}))
self.assertEqual(len(component_graph.links), 0)
component_graph.add_link(
ComponentLink(
"fuchsia-pkg://fuchsia.com/test_1#/meta/test_1.cmx",
"fuchsia-pkg://fuchsia.com/test_2#/meta/test_2.cmx", "use",
"fidl.Service"))
self.assertEqual(len(component_graph.links), 1)
component_graph.add_link(
ComponentLink(
"fuchsia-pkg://fuchsia.com/test_2#/meta/test_2.cmx",
"fuchsia-pkg://fuchsia.com/test_1#/meta/test_1.cmx", "use",
"fidl.AnotherService"))
self.assertEqual(len(component_graph.links), 2)
exported = component_graph.export()
self.assertEqual(len(exported["nodes"]), 2)
self.assertEqual(len(exported["links"]), 2)
if __name__ == "__main__":
unittest.main()