| // 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 SRC_MODULAR_LIB_TESTING_MODULE_RESOLVER_FAKE_H_ | 
 | #define SRC_MODULAR_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  // SRC_MODULAR_LIB_TESTING_MODULE_RESOLVER_FAKE_H_ |