blob: 75831eaa301463d84c3a4e319af50ce144f4a12d [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;
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(fit::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(fit::function<void(const fidl::StringPtr&)> fn);
private:
fidl::BindingSet<fuchsia::modular::ModuleResolver> bindings_;
fit::function<void(const fuchsia::modular::FindModulesQuery&)> find_modules_validate_fn_;
fit::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_