blob: eb3f97dd7ad17c471cddb4ba8e8655f16f756b61 [file] [log] [blame]
// Copyright 2018 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 <lib/sys/cpp/testing/fake_launcher.h>
namespace sys {
namespace testing {
using fuchsia::sys::Launcher;
FakeLauncher::FakeLauncher() {}
FakeLauncher::~FakeLauncher() = default;
void FakeLauncher::CreateComponent(
fuchsia::sys::LaunchInfo launch_info,
fidl::InterfaceRequest<fuchsia::sys::ComponentController> controller) {
auto it = connectors_.find(launch_info.url);
if (it != connectors_.end()) {
it->second(std::move(launch_info), std::move(controller));
}
}
void FakeLauncher::RegisterComponent(std::string url, ComponentConnector connector) {
connectors_[url] = std::move(connector);
}
fidl::InterfaceRequestHandler<Launcher> FakeLauncher::GetHandler(async_dispatcher_t* dispatcher) {
return [this, dispatcher](fidl::InterfaceRequest<Launcher> request) {
binding_set_.AddBinding(this, std::move(request), dispatcher);
};
}
} // namespace testing
} // namespace sys