mocks.hpp
4.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
/*
* Copyright (c) 2015-2016, Arkadiusz Materek (arekmat@poczta.fm)
*
* All right reversed. Usage for commercial on not commercial
* purpose without written permission is not allowed.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*/
#ifndef DALI_TEST_MOCK_HPP_
#define DALI_TEST_MOCK_HPP_
#include <dali/dali_dt8.hpp>
#include <dali/controller/bus.hpp>
#include <dali/controller/lamp.hpp>
#include <string.h>
namespace dali {
class MemoryMock: public IMemory {
public:
MemoryMock(size_t size);
virtual ~MemoryMock() {
}
size_t dataSize() override;
size_t dataWrite(uintptr_t addr, const uint8_t* data, size_t size) override;
const uint8_t* data(uintptr_t addr, size_t size) override;
size_t tempSize() override;
size_t tempWrite(uintptr_t addr, const uint8_t* data, size_t size) override;
const uint8_t* tempData(uintptr_t addr, size_t size) override;
void reset();
bool writeError;
size_t mDataSize;
uint8_t mData[252];
uint8_t mTemp[32];
};
class LampMock:
#ifdef DALI_DT8
public ILampDT8
#else
public ILamp
#endif // DALI_DT8
{
public:
static const uint16_t kMaxClients = 2;
LampMock();
virtual ~LampMock() {
}
Status registerClient(ILampClient* c) override;
Status unregisterClient(ILampClient* c) override;
void setLevel(uint16_t level, uint32_t fadeTime) override;
uint16_t getLevel() override;
bool isFading() override;
void abortFading() override;
#ifdef DALI_DT8
void setPrimary(const uint16_t primary[], uint8_t size, uint32_t changeTime) override;
void getPrimary(uint16_t primary[], uint8_t size) override;
bool isColorChanging() override;
void abortColorChanging() override;
#endif // DALI_DT8
void setState(ILampState state) {
onLampStateChnaged(state);
}
bool mPowerOn;
uint16_t mLevel;
uint32_t mFadeTime;
#ifdef DALI_DT8
uint16_t mPrimary[6];
uint32_t mColorChangeTime;
#endif // DALI_DT8
private:
ILampClient* mClients[kMaxClients];
void onLampStateChnaged(ILampState state);
};
class BusMock: public IBus {
public:
static const uint16_t kMaxClients = 2;
BusMock();
virtual ~BusMock() {
}
Status registerClient(IBusClient* c) override;
Status unregisterClient(IBusClient* c) override;
Status sendAck(uint8_t ack) override;
void handleReceivedData(uint64_t timeMs, uint16_t data) {
ack = 0xffff;
onDataReceived(timeMs, data);
}
void setState(IBusState state) {
onBusStateChanged(state);
}
uint16_t ack;
private:
IBusClient* mClients[kMaxClients];
IBusState mState;
void onDataReceived(uint64_t timeMs, uint16_t data);
void onBusStateChanged(IBusState state);
};
class TimerMock: public ITimer {
public:
static const uint8_t kMaxTasks = 2;
typedef struct {
ITimer::ITimerTask* task;
uint64_t time;
uint32_t period;
} TaskInfo;
TimerMock();
virtual ~TimerMock() {
}
uint64_t getTime() override;
Status schedule(ITimerTask* task, uint32_t delay, uint32_t period) override;
void cancel(ITimerTask* task) override;
uint32_t randomize() override;
void run(uint64_t now);
uint64_t time;
TaskInfo tasks[kMaxTasks];
};
class LampControllerListenerMock: public controller::Lamp::Listener {
public:
void onLampStateChnaged(ILamp::ILampState state);
ILamp::ILampState capturedState;
};
class BusControllerListenerMock: public controller::Bus::Listener {
public:
uint8_t getShortAddr() override;
uint16_t getGroups() override;
void onBusDisconnected() override;
Status handleCommand(uint16_t repeat, Command cmd, uint8_t param) override;
Status handleIgnoredCommand(Command cmd, uint8_t param) override;
void reset(uint8_t addr, uint16_t groups);
uint8_t addr;
uint16_t groups;
uint16_t capturedRepeatCount;
Command capturedCmd;
uint8_t capturedParam;
};
} // namespace dali
#endif // DALI_TEST_MOCK_HPP_