blob: 28ebed807d79029c1e5f580c882c39ce706f8818 [file] [log] [blame]
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_FUCHSIA_COMPONENT_SUPPORT_MOCK_REALM_H_
#define COMPONENTS_FUCHSIA_COMPONENT_SUPPORT_MOCK_REALM_H_
#include <fuchsia/component/cpp/fidl_test_base.h>
#include "base/fuchsia/scoped_service_binding.h"
#include "testing/gmock/include/gmock/gmock.h"
namespace sys {
class OutgoingDirectory;
}
namespace fuchsia_component_support {
// A Mock for tests that wish to validate interactions with
// fuchsia.component/Realm.
class MockRealm : public fuchsia::component::testing::Realm_TestBase {
public:
// Publishes the instance in the given outgoing directory.
explicit MockRealm(sys::OutgoingDirectory* outgoing);
~MockRealm() override;
// fuchsia::component::testing::Realm_TestBase:
MOCK_METHOD(void,
OpenExposedDir,
(fuchsia::component::decl::ChildRef child,
fidl::InterfaceRequest<fuchsia::io::Directory> exposed_dir,
fuchsia::component::Realm::OpenExposedDirCallback callback),
(override));
MOCK_METHOD(void,
CreateChild,
(fuchsia::component::decl::CollectionRef collection,
fuchsia::component::decl::Child decl,
fuchsia::component::CreateChildArgs args,
fuchsia::component::Realm::CreateChildCallback callback),
(override));
MOCK_METHOD(void,
DestroyChild,
(fuchsia::component::decl::ChildRef child,
fuchsia::component::Realm::DestroyChildCallback callback),
(override));
void NotImplemented_(const std::string& name) override;
private:
base::ScopedServiceBinding<fuchsia::component::Realm> binding_;
};
} // namespace fuchsia_component_support
#endif // COMPONENTS_FUCHSIA_COMPONENT_SUPPORT_MOCK_REALM_H_