| // Copyright 2022 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef IOS_CHROME_BROWSER_PROMOS_MANAGER_MODEL_MOCK_PROMOS_MANAGER_H_ |
| #define IOS_CHROME_BROWSER_PROMOS_MANAGER_MODEL_MOCK_PROMOS_MANAGER_H_ |
| |
| #import <Foundation/Foundation.h> |
| |
| #import <map> |
| #import <optional> |
| #import <set> |
| |
| #import "base/containers/small_map.h" |
| #import "base/time/time.h" |
| #import "ios/chrome/browser/promos_manager/model/constants.h" |
| #import "ios/chrome/browser/promos_manager/model/impression_limit.h" |
| #import "ios/chrome/browser/promos_manager/model/promo_config.h" |
| #import "ios/chrome/browser/promos_manager/model/promos_manager.h" |
| #import "testing/gmock/include/gmock/gmock.h" |
| |
| // Mock version of PromosManager. |
| class MockPromosManager : public PromosManager { |
| public: |
| MockPromosManager(); |
| ~MockPromosManager() override; |
| |
| // PromosManager implementation. |
| MOCK_METHOD(void, Init, (), (override)); |
| MOCK_METHOD(void, |
| InitializePromoConfigs, |
| ((PromoConfigsSet promo_impression_limits)), |
| (override)); |
| MOCK_METHOD(void, |
| DeregisterAfterDisplay, |
| (promos_manager::Promo promo), |
| (override)); |
| MOCK_METHOD(std::optional<promos_manager::Promo>, |
| NextPromoForDisplay, |
| (), |
| (override)); |
| MOCK_METHOD(void, |
| RegisterPromoForContinuousDisplay, |
| (promos_manager::Promo promo), |
| (override)); |
| MOCK_METHOD(void, |
| RegisterPromoForSingleDisplay, |
| (promos_manager::Promo promo), |
| (override)); |
| MOCK_METHOD(void, |
| RegisterPromoForSingleDisplay, |
| (promos_manager::Promo promo, |
| base::TimeDelta becomes_active_after_period), |
| (override)); |
| MOCK_METHOD(void, DeregisterPromo, (promos_manager::Promo promo), (override)); |
| }; |
| |
| #endif // IOS_CHROME_BROWSER_PROMOS_MANAGER_MODEL_MOCK_PROMOS_MANAGER_H_ |