blob: 4a0b2af4c8ee99498ad2596cc89b8bf2b59b5ad5 [file] [log] [blame]
// 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_