blob: 8e0ee8f096b2dea5dee5d59bfb6493dad27931e2 [file] [log] [blame]
// Copyright 2019 The Chromium OS 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 VM_TOOLS_CICERONE_TREMPLIN_TEST_STUB_H_
#define VM_TOOLS_CICERONE_TREMPLIN_TEST_STUB_H_
#include <base/synchronization/lock.h>
#include "tremplin.grpc.pb.h" // NOLINT(build/include)
namespace vm_tools {
namespace cicerone {
// Implements a simple stub for the Tremplin service for testing.
class TremplinTestStub final : public vm_tools::tremplin::Tremplin::Service {
public:
TremplinTestStub();
~TremplinTestStub() override;
// Controls for the stub. All return status default to OK, all proto
// responses default to blank.
void SetCreateContainerReturn(const grpc::Status& status);
void SetCreateContainerResponse(
const vm_tools::tremplin::CreateContainerResponse& response);
void SetStartContainerReturn(const grpc::Status& status);
void SetStartContainerResponse(
const vm_tools::tremplin::StartContainerResponse& response);
void SetGetContainerUsernameReturn(const grpc::Status& status);
void SetGetContainerUsernameResponse(
const vm_tools::tremplin::GetContainerUsernameResponse& response);
void SetSetUpUserReturn(const grpc::Status& status);
void SetSetUpUserResponse(
const vm_tools::tremplin::SetUpUserResponse& response);
void SetGetContainerInfoReturn(const grpc::Status& status);
void SetGetContainerInfoResponse(
const vm_tools::tremplin::GetContainerInfoResponse& response);
void SetSetTimezoneReturn(const grpc::Status& status);
void SetSetTimezoneResponse(
const vm_tools::tremplin::SetTimezoneResponse& response);
void SetExportContainerReturn(const grpc::Status& status);
void SetExportContainerResponse(
const vm_tools::tremplin::ExportContainerResponse& response);
void SetImportContainerReturn(const grpc::Status& status);
void SetImportContainerResponse(
const vm_tools::tremplin::ImportContainerResponse& response);
// vm_tools::tremplin::Tremplin::Service overrides:
grpc::Status CreateContainer(
grpc::ServerContext* ctx,
const vm_tools::tremplin::CreateContainerRequest* request,
vm_tools::tremplin::CreateContainerResponse* response) override;
grpc::Status StartContainer(
grpc::ServerContext* ctx,
const vm_tools::tremplin::StartContainerRequest* request,
vm_tools::tremplin::StartContainerResponse* response) override;
grpc::Status GetContainerUsername(
grpc::ServerContext* ctx,
const vm_tools::tremplin::GetContainerUsernameRequest* request,
vm_tools::tremplin::GetContainerUsernameResponse* response) override;
grpc::Status SetUpUser(
grpc::ServerContext* ctx,
const vm_tools::tremplin::SetUpUserRequest* request,
vm_tools::tremplin::SetUpUserResponse* response) override;
grpc::Status GetContainerInfo(
grpc::ServerContext* ctx,
const vm_tools::tremplin::GetContainerInfoRequest* request,
vm_tools::tremplin::GetContainerInfoResponse* response) override;
grpc::Status SetTimezone(
grpc::ServerContext* ctx,
const vm_tools::tremplin::SetTimezoneRequest* request,
vm_tools::tremplin::SetTimezoneResponse* response) override;
grpc::Status ExportContainer(
grpc::ServerContext* ctx,
const vm_tools::tremplin::ExportContainerRequest* request,
vm_tools::tremplin::ExportContainerResponse* response) override;
grpc::Status ImportContainer(
grpc::ServerContext* ctx,
const vm_tools::tremplin::ImportContainerRequest* request,
vm_tools::tremplin::ImportContainerResponse* response) override;
private:
// |lock_| controls access to all other variables.
base::Lock lock_;
grpc::Status create_container_return_;
vm_tools::tremplin::CreateContainerResponse create_container_response_;
grpc::Status start_container_return_;
vm_tools::tremplin::StartContainerResponse start_container_response_;
grpc::Status get_container_username_return_;
vm_tools::tremplin::GetContainerUsernameResponse
get_container_username_response_;
grpc::Status set_up_user_return_;
vm_tools::tremplin::SetUpUserResponse set_up_user_response_;
grpc::Status get_container_info_return_;
vm_tools::tremplin::GetContainerInfoResponse get_container_info_response_;
grpc::Status set_timezone_return_;
vm_tools::tremplin::SetTimezoneResponse set_timezone_response_;
grpc::Status export_container_return_;
vm_tools::tremplin::ExportContainerResponse export_container_response_;
grpc::Status import_container_return_;
vm_tools::tremplin::ImportContainerResponse import_container_response_;
};
} // namespace cicerone
} // namespace vm_tools
#endif // VM_TOOLS_CICERONE_TREMPLIN_TEST_STUB_H_