| // Copyright 2021 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. |
| |
| #include "examples/diagnostics/inspect/codelab/cpp/testing/integration_test.h" |
| |
| #include <lib/sys/component/cpp/testing/realm_builder.h> |
| |
| #include <memory> |
| |
| namespace codelab::testing { |
| |
| namespace { |
| constexpr char fizzbuzz_url[] = "#meta/fizzbuzz.cm"; |
| constexpr char reverser_url[] = "#meta/part_5.cm"; |
| } // namespace |
| |
| fuchsia::examples::inspect::ReverserPtr IntegrationTest::ConnectToReverser(TestOptions options) { |
| auto realm_builder = component_testing::RealmBuilder::Create(); |
| realm_builder.AddChild("reverser", reverser_url); |
| |
| if (options.include_fizzbuzz) { |
| realm_builder.AddChild("fizzbuzz", fizzbuzz_url); |
| realm_builder |
| .AddRoute(component_testing::Route{ |
| .capabilities = {component_testing::Protocol{"fuchsia.examples.inspect.FizzBuzz"}}, |
| .source = component_testing::ChildRef{"fizzbuzz"}, |
| .targets = {component_testing::ChildRef{"reverser"}}}) |
| .AddRoute(component_testing::Route{ |
| .capabilities = {component_testing::Protocol{"fuchsia.logger.LogSink"}}, |
| .source = component_testing::ParentRef(), |
| .targets = {component_testing::ChildRef{"fizzbuzz"}}}); |
| } |
| |
| realm_builder |
| .AddRoute(component_testing::Route{ |
| .capabilities = {component_testing::Protocol{"fuchsia.examples.inspect.Reverser"}}, |
| .source = component_testing::ChildRef{"reverser"}, |
| .targets = {component_testing::ParentRef()}}) |
| .AddRoute(component_testing::Route{ |
| .capabilities = {component_testing::Protocol{"fuchsia.logger.LogSink"}}, |
| .source = component_testing::ParentRef(), |
| .targets = {component_testing::ChildRef{"reverser"}}}); |
| realm_ = std::make_unique<component_testing::RealmRoot>(realm_builder.Build()); |
| fuchsia::examples::inspect::ReverserPtr proxy; |
| realm_->component().Connect(proxy.NewRequest()); |
| return proxy; |
| } |
| |
| std::string IntegrationTest::ReverserMonikerForSelectors() const { |
| auto root_name = realm_->component().GetChildName(); |
| return "realm_builder\\:" + root_name + "/reverser"; |
| } |
| |
| } // namespace codelab::testing |