Covellite++  Version: 2.3.0 Revision: ??? Platform: x64 Build: 23:13 04.01.2025
Кроссплатформенный фреймворк для разработки приложений на С++
Загрузка...
Поиск...
Не найдено
Window.mock.hpp
1
2#pragma once
3#include <Covellite/Os/Window.mock.hpp>
4#include <Covellite/App/IWindow.hpp>
5#include <Covellite/Api/IWindow.hpp>
6
7/*
8An example of use:
9
10using ExampleProxy_t = ::mock::covellite::Window::Proxy;
11ExampleProxy_t ExampleProxy;
12ExampleProxy_t::GetInstance() = &ExampleProxy;
13
14const ::mock::Id_t ExampleId = 1607301544;
15
16using namespace ::testing;
17
18InSequence Dummy;
19
20EXPECT_CALL(ExampleProxy, Constructor(Value1))
21 .Times(1)
22 .WillOnce(Return(ExampleId));
23
24::mock::covellite::Window Example(Value1);
25
26EXPECT_CALL(ExampleProxy, Function(ExampleId, Value2))
27 .Times(1)
28 .WillOnce(Return(Value3));
29
30const auto Result = Example.Function(Value2);
31EXPECT_EQ(Value3, Result);
32*/
33
34namespace mock
35{
36
37namespace covellite
38{
39
40namespace api
41{
42
43class Window :
46{
47 using WindowOs_t = ::covellite::os::IWindow;
48 using String_t = ::alicorn::extension::std::String;
49
50public:
51 class Proxy :
52 public ::alicorn::extension::testing::Proxy<Proxy>
53 {
54 public:
55 MOCK_METHOD1(Constructor, Id_t(Id_t));
56 MOCK_METHOD1(GetClientRect, ::covellite::Rect(Id_t));
57 MOCK_METHOD1(GetRenders, RendersPtr_t(Id_t));
58 };
59
60public:
61 const Id_t m_Id = 0;
62 Window & operator= (const Window &) = delete;
63 bool operator== (const Window & _Value) const { return (m_Id == _Value.m_Id); }
64
65public:
66 operator Events_t (void) const override
67 {
68 return m_Events;
69 }
70
71public:
72 ::covellite::Rect GetClientRect(void) const override
73 {
74 return Proxy::GetInstance()->GetClientRect(m_Id);
75 }
76
77 RendersPtr_t GetRenders(void) const override
78 {
79 return Proxy::GetInstance()->GetRenders(m_Id);
80 }
81
82private:
83 Events_t m_Events;
84
85public:
86 explicit Window(const WindowOs_t & _Window) :
87 m_Events(_Window),
88 m_Id(Proxy::GetInstance()->Constructor(
89 dynamic_cast<const ::mock::covellite::os::Window &>(_Window).m_Id))
90 {
91
92 }
93};
94
95} // namespace api
96
97} // namespace covellite
98
99} // namespace mock
Класс входит в проект Covellite.Api Интерфейсный класс для всех окон, реализующих различные графиче...
Definition IWindow.hpp:35
virtual Rect GetClientRect(void) const =0
Функция получения размеров клиентской области окна.
virtual RendersPtr_t GetRenders(void) const =0
Функция получения объекта создания/удаления рендеров для компонентов.
Класс входит в проект Covellite.App Интерфейсный класс для классов окон фреймворка.
Definition IWindow.hpp:32
Класс входит в проект Covellite.Os Интерфейсный класс окна операционной системы программы.
Definition IWindow.hpp:32