blob: 73b967e76772c764d4af26f547331faa0836dc17 [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.
#ifndef PERIDOT_LIB_TESTING_MODULE_RESOLVER_FAKE_H_
#define PERIDOT_LIB_TESTING_MODULE_RESOLVER_FAKE_H_
#include <fuchsia/modular/cpp/fidl.h>
#include <lib/fidl/cpp/binding_set.h>
namespace modular {
class ModuleResolverFake : fuchsia::modular::ModuleResolver {
public:
ModuleResolverFake();
~ModuleResolverFake() override;
// |ModuleResolver|
void FindModules(fuchsia::modular::FindModulesQuery query,
FindModulesCallback callback) override;
// |ModuleResolver|
void GetModuleManifest(std::string module_id,
GetModuleManifestCallback callback) override;
// |ModuleResolver|
void FindModulesByTypes(fuchsia::modular::FindModulesByTypesQuery query,
FindModulesByTypesCallback callback) override;
void Connect(
fidl::InterfaceRequest<fuchsia::modular::ModuleResolver> request);
// Sets the manifest for GetModuleManifest.
void SetManifest(fuchsia::modular::ModuleManifestPtr manifest);
// Sets the status for FindModules response.
void SetStatus(fuchsia::modular::FindModulesStatus status);
// Adds a result to the FindModules response.
void AddFindModulesResult(fuchsia::modular::FindModulesResult result);
// Sets a function for validation of the query when calling FindModules. This
// is useful to intercept the query and ensure it was built as expected.
void SetFindModulesValidation(
std::function<void(const fuchsia::modular::FindModulesQuery&)> fn);
// Sets a function for validation of the query when calling GetModuleManifest.
// This is useful to intercept the query and ensure it was built as expected.
void SetGetModuleManifestValidation(
std::function<void(const fidl::StringPtr&)> fn);
private:
fidl::BindingSet<fuchsia::modular::ModuleResolver> bindings_;
std::function<void(const fuchsia::modular::FindModulesQuery&)>
find_modules_validate_fn_;
std::function<void(const fidl::StringPtr&)> get_module_manifest_validate_fn_;
fuchsia::modular::ModuleManifestPtr manifest_;
fuchsia::modular::FindModulesResponse find_modules_response_;
};
} // namespace modular
#endif // PERIDOT_LIB_TESTING_MODULE_RESOLVER_FAKE_H_