| // 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. |
| |
| #ifndef SRC_MODULAR_LIB_MODULAR_TEST_HARNESS_CPP_FAKE_MODULE_H_ |
| #define SRC_MODULAR_LIB_MODULAR_TEST_HARNESS_CPP_FAKE_MODULE_H_ |
| |
| #include <fuchsia/modular/cpp/fidl.h> |
| #include <lib/modular/testing/cpp/fake_component.h> |
| |
| namespace modular_testing { |
| |
| // A fake module that exposes an IntentHandler service that can be used with |
| // TestHarnessBuilder. Refer to detailed documentation at test_harness_fixture.h. |
| // |
| // EXAMPLE USAGE: |
| // |
| // ... |
| // modular_testing::TestHarnessBuilder builder; |
| // auto fake_module = modular_testing::FakeModule::CreateWithDefaultOptions(); |
| // builder.InterceptComponent(fake_module->BuildInterceptOptions()); |
| // builder.BuildAndRun(test_harness()); |
| // ... |
| class FakeModule : public modular_testing::FakeComponent { |
| public: |
| explicit FakeModule(modular_testing::FakeComponent::Args args); |
| |
| ~FakeModule() override; |
| |
| // Instantiates a FakeModule with a randomly generated URL, default sandbox |
| // services (see GetDefaultSandboxServices()). |
| static std::unique_ptr<FakeModule> CreateWithDefaultOptions(); |
| |
| // Returns the default list of services (capabilities) a module expects in its namespace. |
| // This method is useful when setting up a module for interception. |
| // |
| // Default services: |
| // * fuchsia.modular.ComponentContext |
| // * fuchsia.modular.ModuleContext |
| static std::vector<std::string> GetDefaultSandboxServices(); |
| |
| fuchsia::modular::ComponentContext* modular_component_context() { |
| return component_context_.get(); |
| } |
| |
| // Returns the module's |module_context_| |
| fuchsia::modular::ModuleContext* module_context() { return module_context_.get(); } |
| |
| protected: |
| // |FakeComponent| |
| void OnCreate(fuchsia::sys::StartupInfo startup_info) override; |
| |
| private: |
| // A callback to be executed when HandleIntent() is invoked. |
| fuchsia::modular::ComponentContextPtr component_context_; |
| fuchsia::modular::ModuleContextPtr module_context_; |
| }; |
| |
| } // namespace modular_testing |
| |
| #endif // SRC_MODULAR_LIB_MODULAR_TEST_HARNESS_CPP_FAKE_MODULE_H_ |