blob: 5c6b1c7f6e8e580639f5e050b64d897a7270c0bb [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 TestComponentNode(unittest.TestCase):
def test_add_node(self):
manifest = {}
resource_path = "fuchsia-pkg//fuchsia.com/test#meta/test.cmx"
node = ComponentNode(resource_path, manifest)
self.assertEqual(node.source, "package")
self.assertEqual(node.version, 0)
self.assertEqual(node.offers, [])
self.assertEqual(node.uses, [])
self.assertEqual(node.exposes, [])
def test_create_inferred(self):
pkg_url = "fuchsia-pkg://test/test.cmx"
inferred_node = ComponentNode.create_inferred(pkg_url)
self.assertIsNotNone(inferred_node)
def test_append_offer(self):
manifest = {}
resource_path = "fuchsia-pkg//fuchsia.com/test#meta/test.cmx"
node = ComponentNode(resource_path, manifest)
self.assertEqual(node.offers, [])
node.append_offer("fuchsia.service.Test")
self.assertEqual(node.offers, ["fuchsia.service.Test"])
def test__str__(self):
manifest = {}
resource_path = "fuchsia-pkg//fuchsia.com/test#meta/test.cmx"
node = ComponentNode(resource_path, manifest)
self.assertEqual(resource_path, str(node))
def test_export(self):
manifest = {}
resource_path = "fuchsia-pkg//fuchsia.com/test#meta/test.cmx"
node = ComponentNode(resource_path, manifest)
node.append_offer("fuchsia.service.Test")
export_data = node.export()
self.assertEqual(export_data["id"], resource_path)
self.assertEqual(export_data["name"], "test.cmx")
self.assertEqual(export_data["consumers"], 0)
self.assertEqual(
export_data["routes"], {
"exposes": [],
"offers": ["fuchsia.service.Test"],
"uses": []
})
self.assertEqual(export_data["version"], 0)
self.assertEqual(export_data["source"], "package")
self.assertEqual(export_data["routes"]["exposes"], [])
self.assertEqual(
export_data["routes"]["offers"], ["fuchsia.service.Test"])
self.assertEqual(export_data["routes"]["uses"], [])
if __name__ == "__main__":
unittest.main()