@@ -182,4 +182,105 @@ TEST_F(TestCommissionableNodeController, TestDiscoverCommissioners_DiscoverCommi
182
182
EXPECT_NE (controller.DiscoverCommissioners (), CHIP_NO_ERROR);
183
183
}
184
184
185
+ TEST_F (TestCommissionableNodeController, TestGetDiscoveredCommissioner_MultipleIPAddressDiscover)
186
+ {
187
+ MockResolver resolver;
188
+ CommissionableNodeController controller (&resolver);
189
+
190
+ // example 1
191
+ chip::Dnssd::DiscoveredNodeData discNodeData1;
192
+ discNodeData1.Set <chip::Dnssd::CommissionNodeData>();
193
+ chip::Dnssd::CommissionNodeData & inNodeData1 = discNodeData1.Get <chip::Dnssd::CommissionNodeData>();
194
+ Platform::CopyString (inNodeData1.hostName , " mockHostName" );
195
+ Inet::IPAddress::FromString (" fd11:1111:1122:2222:1111:2222:3333:4444" , inNodeData1.ipAddress [0 ]);
196
+ inNodeData1.numIPs ++;
197
+ Inet::IPAddress::FromString (" fd11:1111:1122:2222:2222:3333:4444:5555" , inNodeData1.ipAddress [1 ]);
198
+ inNodeData1.numIPs ++;
199
+ inNodeData1.port = 5540 ;
200
+
201
+ controller.OnNodeDiscovered (discNodeData1);
202
+
203
+ // example 5 - exactly same as example 1
204
+ chip::Dnssd::DiscoveredNodeData discNodeData5;
205
+ discNodeData5.Set <chip::Dnssd::CommissionNodeData>();
206
+ chip::Dnssd::CommissionNodeData & inNodeData5 = discNodeData5.Get <chip::Dnssd::CommissionNodeData>();
207
+ Platform::CopyString (inNodeData1.hostName , " mockHostName" );
208
+ Inet::IPAddress::FromString (" fd11:1111:1122:2222:1111:2222:3333:4444" , inNodeData5.ipAddress [0 ]);
209
+ inNodeData5.numIPs ++;
210
+ Inet::IPAddress::FromString (" fd11:1111:1122:2222:2222:3333:4444:5555" , inNodeData5.ipAddress [1 ]);
211
+ inNodeData5.numIPs ++;
212
+ inNodeData5.port = 5540 ;
213
+
214
+ controller.OnNodeDiscovered (discNodeData5);
215
+
216
+ // example 2 - same as example 1 (IPAdress sequence is only different.)
217
+ chip::Dnssd::DiscoveredNodeData discNodeData2;
218
+ discNodeData2.Set <chip::Dnssd::CommissionNodeData>();
219
+ chip::Dnssd::CommissionNodeData & inNodeData2 = discNodeData2.Get <chip::Dnssd::CommissionNodeData>();
220
+ Platform::CopyString (inNodeData2.hostName , " mockHostName" );
221
+ Inet::IPAddress::FromString (" fd11:1111:1122:2222:2222:3333:4444:5555" , inNodeData2.ipAddress [0 ]);
222
+ inNodeData2.numIPs ++;
223
+ Inet::IPAddress::FromString (" fd11:1111:1122:2222:1111:2222:3333:4444" , inNodeData2.ipAddress [1 ]);
224
+ inNodeData2.numIPs ++;
225
+ inNodeData2.port = 5540 ;
226
+
227
+ controller.OnNodeDiscovered (discNodeData2);
228
+
229
+ // example 3 - different example
230
+ chip::Dnssd::DiscoveredNodeData discNodeData3;
231
+ discNodeData3.Set <chip::Dnssd::CommissionNodeData>();
232
+ chip::Dnssd::CommissionNodeData & inNodeData3 = discNodeData3.Get <chip::Dnssd::CommissionNodeData>();
233
+ Platform::CopyString (inNodeData3.hostName , " mockHostName" );
234
+ Inet::IPAddress::FromString (" fd11:1111:1122:2222:1111:2222:3333:4444" , inNodeData3.ipAddress [0 ]);
235
+ inNodeData3.numIPs ++;
236
+ Inet::IPAddress::FromString (" fd11:1111:1122:2222:2222:3333:4444:6666" , inNodeData3.ipAddress [1 ]);
237
+ inNodeData3.numIPs ++;
238
+ inNodeData3.port = 5540 ;
239
+
240
+ controller.OnNodeDiscovered (discNodeData3);
241
+
242
+ // example 4 - different example (Different IP count)
243
+ chip::Dnssd::DiscoveredNodeData discNodeData4;
244
+ discNodeData4.Set <chip::Dnssd::CommissionNodeData>();
245
+ chip::Dnssd::CommissionNodeData & inNodeData4 = discNodeData4.Get <chip::Dnssd::CommissionNodeData>();
246
+ Platform::CopyString (inNodeData4.hostName , " mockHostName" );
247
+ Inet::IPAddress::FromString (" fd11:1111:1122:2222:1111:2222:3333:4444" , inNodeData4.ipAddress [0 ]);
248
+ inNodeData4.numIPs ++;
249
+ Inet::IPAddress::FromString (" fd11:1111:1122:2222:2222:3333:4444:6666" , inNodeData4.ipAddress [1 ]);
250
+ inNodeData4.numIPs ++;
251
+ Inet::IPAddress::FromString (" fd11:1111:1122:2222:2222:3333:4444:7777" , inNodeData4.ipAddress [2 ]);
252
+ inNodeData4.numIPs ++;
253
+ inNodeData4.port = 5540 ;
254
+
255
+ controller.OnNodeDiscovered (discNodeData4);
256
+
257
+ // Example 2 result - example 1 is removed. (reason : duplicate)
258
+ ASSERT_NE (controller.GetDiscoveredCommissioner (0 ), nullptr );
259
+ EXPECT_STREQ (inNodeData1.hostName , controller.GetDiscoveredCommissioner (0 )->hostName );
260
+ EXPECT_EQ (inNodeData2.ipAddress [0 ], controller.GetDiscoveredCommissioner (0 )->ipAddress [0 ]);
261
+ EXPECT_EQ (inNodeData2.ipAddress [1 ], controller.GetDiscoveredCommissioner (0 )->ipAddress [1 ]);
262
+ EXPECT_EQ (controller.GetDiscoveredCommissioner (0 )->port , 5540 );
263
+ EXPECT_EQ (controller.GetDiscoveredCommissioner (0 )->numIPs , 2u );
264
+
265
+ // Example 3 result
266
+ ASSERT_NE (controller.GetDiscoveredCommissioner (1 ), nullptr );
267
+ EXPECT_STREQ (inNodeData3.hostName , controller.GetDiscoveredCommissioner (1 )->hostName );
268
+ EXPECT_EQ (inNodeData3.ipAddress [0 ], controller.GetDiscoveredCommissioner (1 )->ipAddress [0 ]);
269
+ EXPECT_EQ (inNodeData3.ipAddress [1 ], controller.GetDiscoveredCommissioner (1 )->ipAddress [1 ]);
270
+ EXPECT_EQ (controller.GetDiscoveredCommissioner (1 )->port , 5540 );
271
+ EXPECT_EQ (controller.GetDiscoveredCommissioner (1 )->numIPs , 2u );
272
+
273
+ // Example 4 result
274
+ ASSERT_NE (controller.GetDiscoveredCommissioner (2 ), nullptr );
275
+ EXPECT_STREQ (inNodeData4.hostName , controller.GetDiscoveredCommissioner (2 )->hostName );
276
+ EXPECT_EQ (inNodeData4.ipAddress [0 ], controller.GetDiscoveredCommissioner (2 )->ipAddress [0 ]);
277
+ EXPECT_EQ (inNodeData4.ipAddress [1 ], controller.GetDiscoveredCommissioner (2 )->ipAddress [1 ]);
278
+ EXPECT_EQ (inNodeData4.ipAddress [2 ], controller.GetDiscoveredCommissioner (2 )->ipAddress [2 ]);
279
+ EXPECT_EQ (controller.GetDiscoveredCommissioner (2 )->port , 5540 );
280
+ EXPECT_EQ (controller.GetDiscoveredCommissioner (2 )->numIPs , 3u );
281
+
282
+ // Total is 3. (Not 4)
283
+ ASSERT_EQ (controller.GetDiscoveredCommissioner (3 ), nullptr );
284
+ }
285
+
185
286
} // namespace
0 commit comments