| // Copyright 2025 The Chromium 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 QUICHE_QUIC_MOQT_TOOLS_MOCK_MOQT_SESSION_H_ | |
| #define QUICHE_QUIC_MOQT_TOOLS_MOCK_MOQT_SESSION_H_ | |
| #include <cstdint> | |
| #include <optional> | |
| #include "absl/strings/string_view.h" | |
| #include "quiche/quic/moqt/moqt_messages.h" | |
| #include "quiche/quic/moqt/moqt_priority.h" | |
| #include "quiche/quic/moqt/moqt_session_callbacks.h" | |
| #include "quiche/quic/moqt/moqt_session_interface.h" | |
| #include "quiche/common/platform/api/quiche_test.h" | |
| #include "quiche/common/quiche_weak_ptr.h" | |
| namespace moqt { | |
| namespace test { | |
| class MockMoqtSession : public MoqtSessionInterface { | |
| public: | |
| MOCK_METHOD(MoqtSessionCallbacks&, callbacks, (), (override)); | |
| MOCK_METHOD(void, Error, (MoqtError code, absl::string_view error), | |
| (override)); | |
| MOCK_METHOD(bool, SubscribeAbsolute, | |
| (const FullTrackName& name, uint64_t start_group, | |
| uint64_t start_object, SubscribeVisitor* visitor, | |
| VersionSpecificParameters parameters), | |
| (override)); | |
| MOCK_METHOD(bool, SubscribeAbsolute, | |
| (const FullTrackName& name, uint64_t start_group, | |
| uint64_t start_object, uint64_t end_group, | |
| SubscribeVisitor* visitor, VersionSpecificParameters parameters), | |
| (override)); | |
| MOCK_METHOD(bool, SubscribeCurrentObject, | |
| (const FullTrackName& name, SubscribeVisitor* visitor, | |
| VersionSpecificParameters parameters), | |
| (override)); | |
| MOCK_METHOD(bool, SubscribeNextGroup, | |
| (const FullTrackName& name, SubscribeVisitor* visitor, | |
| VersionSpecificParameters parameters), | |
| (override)); | |
| MOCK_METHOD(bool, SubscribeUpdate, | |
| (const FullTrackName& name, std::optional<Location> start, | |
| std::optional<uint64_t> end_group, | |
| std::optional<MoqtPriority> subscriber_priority, | |
| std::optional<bool> forward, | |
| VersionSpecificParameters parameters), | |
| (override)); | |
| MOCK_METHOD(void, Unsubscribe, (const FullTrackName& name), (override)); | |
| MOCK_METHOD(bool, Fetch, | |
| (const FullTrackName& name, FetchResponseCallback callback, | |
| Location start, uint64_t end_group, | |
| std::optional<uint64_t> end_object, MoqtPriority priority, | |
| std::optional<MoqtDeliveryOrder> delivery_order, | |
| VersionSpecificParameters parameters), | |
| (override)); | |
| MOCK_METHOD(bool, RelativeJoiningFetch, | |
| (const FullTrackName& name, SubscribeVisitor* visitor, | |
| uint64_t num_previous_groups, | |
| VersionSpecificParameters parameters), | |
| (override)); | |
| MOCK_METHOD(bool, RelativeJoiningFetch, | |
| (const FullTrackName& name, SubscribeVisitor* visitor, | |
| FetchResponseCallback callback, uint64_t num_previous_groups, | |
| MoqtPriority priority, | |
| std::optional<MoqtDeliveryOrder> delivery_order, | |
| VersionSpecificParameters parameters), | |
| (override)); | |
| MOCK_METHOD(void, PublishNamespace, | |
| (TrackNamespace track_namespace, | |
| MoqtOutgoingPublishNamespaceCallback callback, | |
| VersionSpecificParameters parameters), | |
| (override)); | |
| MOCK_METHOD(bool, PublishNamespaceDone, (TrackNamespace track_namespace), | |
| (override)); | |
| quiche::QuicheWeakPtr<MoqtSessionInterface> GetWeakPtr() override { | |
| return weak_factory_.Create(); | |
| } | |
| quiche::QuicheWeakPtrFactory<MoqtSessionInterface> weak_factory_{this}; | |
| }; | |
| } // namespace test | |
| } // namespace moqt | |
| #endif // QUICHE_QUIC_MOQT_TOOLS_MOCK_MOQT_SESSION_H_ |