1 #include <gtest/gtest.h>
3 #include <KDIS/PDU/Distributed_Emission_Regeneration/Designator_PDU.hpp>
4 #include <KDIS/PDU/Distributed_Emission_Regeneration/Electromagnetic_Emission_PDU.hpp>
5 #include <KDIS/PDU/Entity_Info_Interaction/Collision_PDU.hpp>
6 #include <KDIS/PDU/Entity_Info_Interaction/Entity_State_PDU.hpp>
7 #include <KDIS/PDU/Logistics/Repair_Complete_PDU.hpp>
8 #include <KDIS/PDU/Logistics/Repair_Response_PDU.hpp>
9 #include <KDIS/PDU/Logistics/Resupply_Cancel_PDU.hpp>
10 #include <KDIS/PDU/Logistics/Resupply_Offer_PDU.hpp>
11 #include <KDIS/PDU/Logistics/Resupply_Received_PDU.hpp>
12 #include <KDIS/PDU/Logistics/Service_Request_PDU.hpp>
13 #include <KDIS/PDU/Radio_Communications/Receiver_PDU.hpp>
14 #include <KDIS/PDU/Radio_Communications/Signal_PDU.hpp>
15 #include <KDIS/PDU/Radio_Communications/Transmitter_PDU.hpp>
16 #include <KDIS/PDU/Simulation_Management/Acknowledge_PDU.hpp>
17 #include <KDIS/PDU/Simulation_Management/Action_Request_PDU.hpp>
18 #include <KDIS/PDU/Simulation_Management/Action_Response_PDU.hpp>
19 #include <KDIS/PDU/Simulation_Management/Comment_PDU.hpp>
20 #include <KDIS/PDU/Simulation_Management/Create_Entity_PDU.hpp>
21 #include <KDIS/PDU/Simulation_Management/Data_PDU.hpp>
22 #include <KDIS/PDU/Simulation_Management/Data_Query_PDU.hpp>
23 #include <KDIS/PDU/Simulation_Management/Event_Report_PDU.hpp>
24 #include <KDIS/PDU/Simulation_Management/Remove_Entity_PDU.hpp>
25 #include <KDIS/PDU/Simulation_Management/Set_Data_PDU.hpp>
26 #include <KDIS/PDU/Simulation_Management/Start_Resume_PDU.hpp>
27 #include <KDIS/PDU/Simulation_Management/Stop_Freeze_PDU.hpp>
28 #include <KDIS/PDU/Warfare/Detonation_PDU.hpp>
29 #include <KDIS/PDU/Warfare/Fire_PDU.hpp>
33 // Distributed Emission Regeneration
35 TEST(PDU_EncodeDecode5
, Designator_PDU
) {
36 KDIS::PDU::Designator_PDU pduIn
;
37 KDIS::KDataStream stream
= pduIn
.Encode();
38 KDIS::PDU::Designator_PDU
pduOut(stream
);
39 EXPECT_EQ(pduIn
, pduOut
);
40 EXPECT_EQ(0, stream
.GetBufferSize());
43 TEST(PDU_EncodeDecode5
, Electromagnetic_Emission_PDU
) {
44 KDIS::PDU::Electromagnetic_Emission_PDU pduIn
;
45 KDIS::KDataStream stream
= pduIn
.Encode();
46 KDIS::PDU::Electromagnetic_Emission_PDU
pduOut(stream
);
47 EXPECT_EQ(pduIn
, pduOut
);
48 EXPECT_EQ(0, stream
.GetBufferSize());
52 // Entity Info Interaction
54 TEST(PDU_EncodeDecode5
, Collision_PDU
) {
55 KDIS::PDU::Collision_PDU pduIn
;
56 KDIS::KDataStream stream
= pduIn
.Encode();
57 KDIS::PDU::Collision_PDU
pduOut(stream
);
58 EXPECT_EQ(pduIn
, pduOut
);
59 EXPECT_EQ(0, stream
.GetBufferSize());
62 TEST(PDU_EncodeDecode5
, Entity_State_PDU
) {
63 KDIS::PDU::Entity_State_PDU pduIn
;
64 KDIS::KDataStream stream
= pduIn
.Encode();
65 KDIS::PDU::Entity_State_PDU
pduOut(stream
);
66 EXPECT_EQ(pduIn
, pduOut
);
67 EXPECT_EQ(0, stream
.GetBufferSize());
73 TEST(PDU_EncodeDecode5
, Repair_Complete_PDU
) {
74 KDIS::PDU::Repair_Complete_PDU pduIn
;
75 KDIS::KDataStream stream
= pduIn
.Encode();
76 KDIS::PDU::Repair_Complete_PDU
pduOut(stream
);
77 EXPECT_EQ(pduIn
, pduOut
);
78 EXPECT_EQ(0, stream
.GetBufferSize());
81 TEST(PDU_EncodeDecode5
, Repair_Response_PDU
) {
82 KDIS::PDU::Repair_Response_PDU pduIn
;
83 KDIS::KDataStream stream
= pduIn
.Encode();
84 KDIS::PDU::Repair_Response_PDU
pduOut(stream
);
85 EXPECT_EQ(pduIn
, pduOut
);
86 EXPECT_EQ(0, stream
.GetBufferSize());
89 TEST(PDU_EncodeDecode5
, Resupply_Cancel_PDU
) {
90 KDIS::PDU::Resupply_Cancel_PDU pduIn
;
91 KDIS::KDataStream stream
= pduIn
.Encode();
92 KDIS::PDU::Resupply_Cancel_PDU
pduOut(stream
);
93 EXPECT_EQ(pduIn
, pduOut
);
94 EXPECT_EQ(0, stream
.GetBufferSize());
97 TEST(PDU_EncodeDecode5
, Resupply_Offer_PDU
) {
98 KDIS::PDU::Resupply_Offer_PDU pduIn
;
99 KDIS::KDataStream stream
= pduIn
.Encode();
100 KDIS::PDU::Resupply_Offer_PDU
pduOut(stream
);
101 EXPECT_EQ(pduIn
, pduOut
);
102 EXPECT_EQ(0, stream
.GetBufferSize());
105 TEST(PDU_EncodeDecode5
, Resupply_Received_PDU
) {
106 KDIS::PDU::Resupply_Received_PDU pduIn
;
107 KDIS::KDataStream stream
= pduIn
.Encode();
108 KDIS::PDU::Resupply_Received_PDU
pduOut(stream
);
109 EXPECT_EQ(pduIn
, pduOut
);
110 EXPECT_EQ(0, stream
.GetBufferSize());
113 TEST(PDU_EncodeDecode5
, Service_Request_PDU
) {
114 KDIS::PDU::Service_Request_PDU pduIn
;
115 KDIS::KDataStream stream
= pduIn
.Encode();
116 KDIS::PDU::Service_Request_PDU
pduOut(stream
);
117 EXPECT_EQ(pduIn
, pduOut
);
118 EXPECT_EQ(0, stream
.GetBufferSize());
122 // Radio Communications
124 TEST(PDU_EncodeDecode5
, Receiver_PDU
) {
125 KDIS::PDU::Receiver_PDU pduIn
;
126 KDIS::KDataStream stream
= pduIn
.Encode();
127 KDIS::PDU::Receiver_PDU
pduOut(stream
);
128 EXPECT_EQ(pduIn
, pduOut
);
129 EXPECT_EQ(0, stream
.GetBufferSize());
132 TEST(PDU_EncodeDecode5
, Signal_PDU
) {
133 KDIS::PDU::Signal_PDU pduIn
;
134 KDIS::KDataStream stream
= pduIn
.Encode();
135 KDIS::PDU::Signal_PDU
pduOut(stream
);
136 EXPECT_EQ(pduIn
, pduOut
);
137 EXPECT_EQ(0, stream
.GetBufferSize());
140 TEST(PDU_EncodeDecode5
, Transmitter_PDU
) {
141 KDIS::PDU::Transmitter_PDU pduIn
;
142 KDIS::KDataStream stream
= pduIn
.Encode();
143 KDIS::PDU::Transmitter_PDU
pduOut(stream
);
144 EXPECT_EQ(pduIn
, pduOut
);
145 EXPECT_EQ(0, stream
.GetBufferSize());
149 // Simulation Management
151 TEST(PDU_EncodeDecode5
, Acknowledge_PDU
) {
152 KDIS::PDU::Acknowledge_PDU pduIn
;
153 KDIS::KDataStream stream
= pduIn
.Encode();
154 KDIS::PDU::Acknowledge_PDU
pduOut(stream
);
155 EXPECT_EQ(pduIn
, pduOut
);
156 EXPECT_EQ(0, stream
.GetBufferSize());
159 TEST(PDU_EncodeDecode5
, Action_Request_PDU
) {
160 KDIS::PDU::Action_Request_PDU pduIn
;
161 KDIS::KDataStream stream
= pduIn
.Encode();
162 KDIS::PDU::Action_Request_PDU
pduOut(stream
);
163 EXPECT_EQ(pduIn
, pduOut
);
164 EXPECT_EQ(0, stream
.GetBufferSize());
167 TEST(PDU_EncodeDecode5
, Action_Response_PDU
) {
168 KDIS::PDU::Action_Response_PDU pduIn
;
169 KDIS::KDataStream stream
= pduIn
.Encode();
170 KDIS::PDU::Action_Response_PDU
pduOut(stream
);
171 EXPECT_EQ(pduIn
, pduOut
);
172 EXPECT_EQ(0, stream
.GetBufferSize());
175 TEST(PDU_EncodeDecode5
, Comment_PDU
) {
176 KDIS::PDU::Comment_PDU pduIn
;
177 KDIS::KDataStream stream
= pduIn
.Encode();
178 KDIS::PDU::Comment_PDU
pduOut(stream
);
179 EXPECT_EQ(pduIn
, pduOut
);
180 EXPECT_EQ(0, stream
.GetBufferSize());
183 TEST(PDU_EncodeDecode5
, Create_Entity_PDU
) {
184 KDIS::PDU::Create_Entity_PDU pduIn
;
185 KDIS::KDataStream stream
= pduIn
.Encode();
186 KDIS::PDU::Create_Entity_PDU
pduOut(stream
);
187 EXPECT_EQ(pduIn
, pduOut
);
188 EXPECT_EQ(0, stream
.GetBufferSize());
191 TEST(PDU_EncodeDecode5
, Data_PDU
) {
192 KDIS::PDU::Data_PDU pduIn
;
193 KDIS::KDataStream stream
= pduIn
.Encode();
194 KDIS::PDU::Data_PDU
pduOut(stream
);
195 EXPECT_EQ(pduIn
, pduOut
);
196 EXPECT_EQ(0, stream
.GetBufferSize());
199 TEST(PDU_EncodeDecode5
, Data_Query_PDU
) {
200 KDIS::PDU::Data_Query_PDU pduIn
;
201 KDIS::KDataStream stream
= pduIn
.Encode();
202 KDIS::PDU::Data_Query_PDU
pduOut(stream
);
203 EXPECT_EQ(pduIn
, pduOut
);
204 EXPECT_EQ(0, stream
.GetBufferSize());
207 TEST(PDU_EncodeDecode5
, Event_Report_PDU
) {
208 KDIS::PDU::Event_Report_PDU pduIn
;
209 KDIS::KDataStream stream
= pduIn
.Encode();
210 KDIS::PDU::Event_Report_PDU
pduOut(stream
);
211 EXPECT_EQ(pduIn
, pduOut
);
212 EXPECT_EQ(0, stream
.GetBufferSize());
215 TEST(PDU_EncodeDecode5
, Remove_Entity_PDU
) {
216 KDIS::PDU::Remove_Entity_PDU pduIn
;
217 KDIS::KDataStream stream
= pduIn
.Encode();
218 KDIS::PDU::Remove_Entity_PDU
pduOut(stream
);
219 EXPECT_EQ(pduIn
, pduOut
);
220 EXPECT_EQ(0, stream
.GetBufferSize());
223 TEST(PDU_EncodeDecode5
, Set_Data_PDU
) {
224 KDIS::PDU::Set_Data_PDU pduIn
;
225 KDIS::KDataStream stream
= pduIn
.Encode();
226 KDIS::PDU::Set_Data_PDU
pduOut(stream
);
227 EXPECT_EQ(pduIn
, pduOut
);
228 EXPECT_EQ(0, stream
.GetBufferSize());
231 TEST(PDU_EncodeDecode5
, Start_Resume_PDU
) {
232 KDIS::PDU::Start_Resume_PDU pduIn
;
233 KDIS::KDataStream stream
= pduIn
.Encode();
234 KDIS::PDU::Start_Resume_PDU
pduOut(stream
);
235 EXPECT_EQ(pduIn
, pduOut
);
236 EXPECT_EQ(0, stream
.GetBufferSize());
239 TEST(PDU_EncodeDecode5
, Stop_Freeze_PDU
) {
240 KDIS::PDU::Stop_Freeze_PDU pduIn
;
241 KDIS::KDataStream stream
= pduIn
.Encode();
242 KDIS::PDU::Stop_Freeze_PDU
pduOut(stream
);
243 EXPECT_EQ(pduIn
, pduOut
);
244 EXPECT_EQ(0, stream
.GetBufferSize());
250 TEST(PDU_EncodeDecode5
, Detonation_PDU
) {
251 KDIS::PDU::Detonation_PDU pduIn
;
252 KDIS::KDataStream stream
= pduIn
.Encode();
253 KDIS::PDU::Detonation_PDU
pduOut(stream
);
254 EXPECT_EQ(pduIn
, pduOut
);
255 EXPECT_EQ(0, stream
.GetBufferSize());
258 TEST(PDU_EncodeDecode5
, Fire_PDU
) {
259 KDIS::PDU::Fire_PDU pduIn
;
260 KDIS::KDataStream stream
= pduIn
.Encode();
261 KDIS::PDU::Fire_PDU
pduOut(stream
);
262 EXPECT_EQ(pduIn
, pduOut
);
263 EXPECT_EQ(0, stream
.GetBufferSize());