| // Copyright 2017 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 PERIDOT_LIB_TESTING_COMPONENT_CONTEXT_FAKE_H_ |
| #define PERIDOT_LIB_TESTING_COMPONENT_CONTEXT_FAKE_H_ |
| |
| #include <string> |
| |
| #include <fuchsia/cpp/modular.h> |
| |
| #include "lib/fidl/cpp/binding_set.h" |
| #include "lib/fidl/cpp/interface_request.h" |
| #include "lib/fidl/cpp/string.h" |
| #include "lib/fxl/macros.h" |
| #include "peridot/lib/testing/entity_resolver_fake.h" |
| |
| namespace modular { |
| |
| // A fake implementation of ComponentContext for tests. ComponentContext gives |
| // clients access to further services. This implementation returns fake |
| // versions of the various services in question. |
| // |
| // Implemented: |
| // |
| // * GetEntityResolver() -> returns a FakeEntityResolver (see |
| // lib/entity/cpp/testing/fake_entity_resolver.h). |
| // * CreateEntityWithData() -> returns a reference that the FakeEntityResolver |
| // will resolve. |
| class ComponentContextFake : public ComponentContext { |
| public: |
| ComponentContextFake(); |
| ~ComponentContextFake() override; |
| |
| void Connect(fidl::InterfaceRequest<ComponentContext> request); |
| |
| EntityResolverFake& entity_resolver_fake() { return entity_resolver_; } |
| |
| private: |
| // |ComponentContext| |
| void GetLedger(fidl::InterfaceRequest<ledger::Ledger> request, |
| GetLedgerCallback result) override; |
| |
| // |ComponentContext| |
| void ConnectToAgent(fidl::StringPtr url, |
| fidl::InterfaceRequest<component::ServiceProvider> |
| incoming_services_request, |
| fidl::InterfaceRequest<AgentController> |
| agent_controller_request) override; |
| |
| // |ComponentContext| |
| void ObtainMessageQueue( |
| fidl::StringPtr name, |
| fidl::InterfaceRequest<MessageQueue> request) override; |
| |
| // |ComponentContext| |
| void DeleteMessageQueue(fidl::StringPtr name) override; |
| |
| // |ComponentContext| |
| void GetMessageSender(fidl::StringPtr queue_token, |
| fidl::InterfaceRequest<MessageSender> request) override; |
| |
| // |ComponentContext| |
| void GetEntityResolver( |
| fidl::InterfaceRequest<EntityResolver> request) override; |
| |
| // |ComponentContext| |
| void CreateEntityWithData(fidl::VectorPtr<TypeToDataEntry> type_to_data, |
| CreateEntityWithDataCallback result) override; |
| |
| // |ComponentContext| |
| void GetPackageName(GetPackageNameCallback result) override; |
| |
| EntityResolverFake entity_resolver_; |
| |
| fidl::BindingSet<modular::ComponentContext> bindings_; |
| |
| FXL_DISALLOW_COPY_AND_ASSIGN(ComponentContextFake); |
| }; |
| |
| } // namespace modular |
| |
| #endif // PERIDOT_LIB_TESTING_COMPONENT_CONTEXT_FAKE_H_ |