// Copyright 2022 Memgraph Ltd. // // Use of this software is governed by the Business Source License // included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source // License, and you may not use this file except in compliance with the Business Source License. // // As of the Change Date specified in that file, in accordance with // the Business Source License, use of this software will be governed // by the Apache License, Version 2.0, included in the file // licenses/APL.txt. #pragma once #include #include #include "query/v2/plan/operator.hpp" #include "query/v2/request_router.hpp" namespace memgraph { class MockedRequestRouter : public query::v2::RequestRouterInterface { public: MOCK_METHOD1(ScanVertices, std::vector(std::optional label)); MOCK_METHOD1(CreateVertices, std::vector(std::vector)); MOCK_METHOD1(ExpandOne, std::vector(msgs::ExpandOneRequest)); MOCK_METHOD1(CreateExpand, std::vector(std::vector)); MOCK_METHOD1(GetProperties, std::vector(msgs::GetPropertiesRequest)); MOCK_METHOD0(StartTransaction, void()); MOCK_METHOD0(Commit, void()); MOCK_CONST_METHOD1(NameToEdgeType, storage::v3::EdgeTypeId(const std::string &)); MOCK_CONST_METHOD1(NameToProperty, storage::v3::PropertyId(const std::string &)); MOCK_CONST_METHOD1(NameToLabel, storage::v3::LabelId(const std::string &)); MOCK_CONST_METHOD1(LabelToName, storage::v3::LabelId(const std::string &)); MOCK_CONST_METHOD1(PropertyToName, const std::string &(storage::v3::PropertyId)); MOCK_CONST_METHOD1(LabelToName, const std::string &(storage::v3::LabelId label)); MOCK_CONST_METHOD1(EdgeTypeToName, const std::string &(storage::v3::EdgeTypeId type)); MOCK_CONST_METHOD1(MaybeNameToProperty, std::optional(const std::string &)); MOCK_CONST_METHOD1(MaybeNameToEdgeType, std::optional(const std::string &)); MOCK_CONST_METHOD1(MaybeNameToLabel, std::optional(const std::string &)); MOCK_CONST_METHOD1(IsPrimaryLabel, bool(storage::v3::LabelId)); MOCK_CONST_METHOD2(IsPrimaryKey, bool(storage::v3::LabelId, storage::v3::PropertyId)); }; class MockedLogicalOperator : query::v2::plan::LogicalOperator { public: MOCK_CONST_METHOD1(MakeCursor, query::v2::plan::UniqueCursorPtr(utils::MemoryResource *)); MOCK_CONST_METHOD1(OutputSymbols, std::vector(const expr::SymbolTable &)); MOCK_CONST_METHOD1(ModifiedSymbols, std::vector(const expr::SymbolTable &)); MOCK_CONST_METHOD0(HasSingleInput, bool()); MOCK_CONST_METHOD0(input, std::shared_ptr()); MOCK_METHOD1(set_input, void(std::shared_ptr)); MOCK_CONST_METHOD1(Clone, std::unique_ptr(query::v2::AstStorage *storage)); }; class MockedCursor : memgraph::query::v2::plan::Cursor { public: MOCK_METHOD2(Pull, bool(query::v2::Frame &, expr::ExecutionContext &)); MOCK_METHOD2(PullMultiple, void(query::v2::MultiFrame &, expr::ExecutionContext &)); MOCK_METHOD0(Reset, void()); MOCK_METHOD0(Shutdown, void()); }; } // namespace memgraph