userver
C++ Async Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
data_provider_mock.hpp
Go to the documentation of this file.
1
#
pragma
once
2
3
/// @file userver/cache/data_provider_mock.hpp
4
/// @brief Mock implementation of DataProvider
5
6
#
include
<
userver
/
cache
/
data_provider
.
hpp
>
7
8
USERVER_NAMESPACE_BEGIN
9
10
namespace
cache
{
11
12
/// @brief Mock implementation of DataProvider for testing purposes
13
/// @tparam T The type of data being provided
14
///
15
/// DataProviderMock is a mock implementation of the DataProvider interface
16
/// that stores static data and returns shared readable pointers to it.
17
/// It's designed for use in unit tests where you want to provide
18
/// controlled data to components that depend on DataProvider.
19
template
<
typename
T>
20
class
DataProviderMock
:
public
DataProvider
<T> {
21
public
:
22
using
DataProvider
<T>::DataType;
23
24
explicit
DataProviderMock(DataType data)
25
: data_{std::make_shared<DataType>(std::move(data))}
26
{}
27
explicit
DataProviderMock(std::shared_ptr<DataType> data)
28
: data_{std::move(data)}
29
{}
30
31
utils::SharedReadablePtr<DataType> Get()
const
final
{
32
return
utils::SharedReadablePtr<DataType>(data_.ReadCopy());
33
};
34
35
private
:
36
rcu::Variable<std::shared_ptr<
const
DataType>> data_;
37
};
38
39
}
// namespace cache
40
41
USERVER_NAMESPACE_END
userver
cache
data_provider_mock.hpp
Generated on
for userver by
Doxygen
1.17.0