11using NetDaemon . Extensions . MqttEntityManager ;
2- using NetDaemon . Extensions . MqttEntityManager . Models ;
32using NetDaemon . HassClient . Tests . ExtensionsTest . MqttEntityManagerTests . TestHelpers ;
43
54namespace NetDaemon . HassClient . Tests . ExtensionsTest . MqttEntityManagerTests ;
@@ -23,7 +22,7 @@ public async Task CreateWithNoOptionsSetsBaseConfig()
2322 var entityManager = new MqttEntityManager ( mqttSetup . MessageSender , null ! , GetOptions ( ) ) ;
2423
2524 await entityManager . CreateAsync ( "domain.sensor" ) ;
26- var payload = PayloadToDictionary ( mqttSetup . LastPublishedMessage . Payload ) ;
25+ var payload = PayloadToDictionary ( mqttSetup . LastPublishedMessage . PayloadSegment . Array ?? Array . Empty < byte > ( ) ) ;
2726
2827 payload ? . Count . Should ( ) . Be ( 6 ) ;
2928 payload ? [ "name" ] . ToString ( ) . Should ( ) . Be ( "sensor" ) ;
@@ -41,7 +40,7 @@ public async Task CreateWithDefaultOptionsSetsBaseConfig()
4140 var entityManager = new MqttEntityManager ( mqttSetup . MessageSender , null ! , GetOptions ( ) ) ;
4241
4342 await entityManager . CreateAsync ( "domain.sensor" , new EntityCreationOptions ( ) ) ;
44- var payload = PayloadToDictionary ( mqttSetup . LastPublishedMessage . Payload ) ;
43+ var payload = PayloadToDictionary ( mqttSetup . LastPublishedMessage . PayloadSegment . Array ?? Array . Empty < byte > ( ) ) ;
4544
4645 payload ? . Count . Should ( ) . Be ( 6 ) ;
4746 payload ? [ "name" ] . ToString ( ) . Should ( ) . Be ( "sensor" ) ;
@@ -59,7 +58,7 @@ public async Task CreateCanSetUniqueId()
5958 var entityManager = new MqttEntityManager ( mqttSetup . MessageSender , null ! , GetOptions ( ) ) ;
6059
6160 await entityManager . CreateAsync ( "domain.sensor" , new EntityCreationOptions ( UniqueId : "my_id" ) ) ;
62- var payload = PayloadToDictionary ( mqttSetup . LastPublishedMessage . Payload ) ;
61+ var payload = PayloadToDictionary ( mqttSetup . LastPublishedMessage . PayloadSegment . Array ?? Array . Empty < byte > ( ) ) ;
6362
6463 payload ? [ "unique_id" ] . ToString ( ) . Should ( ) . Be ( "my_id" ) ;
6564 }
@@ -71,7 +70,7 @@ public async Task CreateSetsObjectId()
7170 var entityManager = new MqttEntityManager ( mqttSetup . MessageSender , null ! , GetOptions ( ) ) ;
7271
7372 await entityManager . CreateAsync ( "domain.the_id" ) ;
74- var payload = PayloadToDictionary ( mqttSetup . LastPublishedMessage . Payload ) ;
73+ var payload = PayloadToDictionary ( mqttSetup . LastPublishedMessage . PayloadSegment . Array ?? Array . Empty < byte > ( ) ) ;
7574
7675 payload ? [ "object_id" ] . ToString ( ) . Should ( ) . Be ( "the_id" ) ;
7776 }
@@ -83,7 +82,7 @@ public async Task CreateCanSetDeviceClass()
8382 var entityManager = new MqttEntityManager ( mqttSetup . MessageSender , null ! , GetOptions ( ) ) ;
8483
8584 await entityManager . CreateAsync ( "domain.sensor" , new EntityCreationOptions ( DeviceClass : "classy" ) ) ;
86- var payload = PayloadToDictionary ( mqttSetup . LastPublishedMessage . Payload ) ;
85+ var payload = PayloadToDictionary ( mqttSetup . LastPublishedMessage . PayloadSegment . Array ?? Array . Empty < byte > ( ) ) ;
8786
8887 payload ? [ "device_class" ] . ToString ( ) . Should ( ) . Be ( "classy" ) ;
8988 }
@@ -95,7 +94,7 @@ public async Task CreateCanSetName()
9594 var entityManager = new MqttEntityManager ( mqttSetup . MessageSender , null ! , GetOptions ( ) ) ;
9695
9796 await entityManager . CreateAsync ( "domain.sensor" , new EntityCreationOptions ( Name : "george" ) ) ;
98- var payload = PayloadToDictionary ( mqttSetup . LastPublishedMessage . Payload ) ;
97+ var payload = PayloadToDictionary ( mqttSetup . LastPublishedMessage . PayloadSegment . Array ?? Array . Empty < byte > ( ) ) ;
9998
10099 payload ? [ "name" ] . ToString ( ) . Should ( ) . Be ( "george" ) ;
101100 }
@@ -131,7 +130,7 @@ public async Task CreateCanSetAdditionalOptions()
131130 var otherOptions = new { sub_class = "lights" , up_state = "live" } ;
132131
133132 await entityManager . CreateAsync ( "domain.sensor" , additionalConfig : otherOptions ) ;
134- var payload = PayloadToDictionary ( mqttSetup . LastPublishedMessage . Payload ) ;
133+ var payload = PayloadToDictionary ( mqttSetup . LastPublishedMessage . PayloadSegment . Array ?? Array . Empty < byte > ( ) ) ;
135134
136135 payload ? [ "sub_class" ] . ToString ( ) . Should ( ) . Be ( "lights" ) ;
137136 payload ? [ "up_state" ] . ToString ( ) . Should ( ) . Be ( "live" ) ;
@@ -146,7 +145,7 @@ public async Task CreateCanOverrideBaseConfig()
146145 var otherOptions = new { command_topic = "my/topic" } ;
147146
148147 await entityManager . CreateAsync ( "domain.sensor" , additionalConfig : otherOptions ) ;
149- var payload = PayloadToDictionary ( mqttSetup . LastPublishedMessage . Payload ) ;
148+ var payload = PayloadToDictionary ( mqttSetup . LastPublishedMessage . PayloadSegment . Array ?? Array . Empty < byte > ( ) ) ;
150149
151150 payload ? [ "command_topic" ] . ToString ( ) . Should ( ) . Be ( "my/topic" ) ;
152151 }
@@ -158,7 +157,7 @@ public async Task CreateAvailabilityTopicOffByDefault()
158157 var entityManager = new MqttEntityManager ( mqttSetup . MessageSender , null ! , GetOptions ( ) ) ;
159158
160159 await entityManager . CreateAsync ( "domain.sensor" ) ;
161- var payload = PayloadToDictionary ( mqttSetup . LastPublishedMessage . Payload ) ;
160+ var payload = PayloadToDictionary ( mqttSetup . LastPublishedMessage . PayloadSegment . Array ?? Array . Empty < byte > ( ) ) ;
162161
163162 payload ? . ContainsKey ( "availability_topic" ) . Should ( ) . BeFalse ( ) ;
164163 }
@@ -170,7 +169,7 @@ public async Task CreateAvailabilityTopicSetForAvailUp()
170169 var entityManager = new MqttEntityManager ( mqttSetup . MessageSender , null ! , GetOptions ( ) ) ;
171170
172171 await entityManager . CreateAsync ( "domain.sensor" , new EntityCreationOptions ( PayloadAvailable : "up" ) ) ;
173- var payload = PayloadToDictionary ( mqttSetup . LastPublishedMessage . Payload ) ;
172+ var payload = PayloadToDictionary ( mqttSetup . LastPublishedMessage . PayloadSegment . Array ?? Array . Empty < byte > ( ) ) ;
174173
175174 payload ? . ContainsKey ( "availability_topic" ) . Should ( ) . BeTrue ( ) ;
176175 payload ? [ "availability_topic" ] . ToString ( ) . Should ( ) . Be ( "homeassistant/domain/sensor/availability" ) ;
@@ -184,7 +183,7 @@ public async Task CreateAvailabilityTopicSetForAvailDown()
184183 var entityManager = new MqttEntityManager ( mqttSetup . MessageSender , null ! , GetOptions ( ) ) ;
185184
186185 await entityManager . CreateAsync ( "domain.sensor" , new EntityCreationOptions ( PayloadNotAvailable : "down" ) ) ;
187- var payload = PayloadToDictionary ( mqttSetup . LastPublishedMessage . Payload ) ;
186+ var payload = PayloadToDictionary ( mqttSetup . LastPublishedMessage . PayloadSegment . Array ?? Array . Empty < byte > ( ) ) ;
188187
189188 payload ? . ContainsKey ( "availability_topic" ) . Should ( ) . BeTrue ( ) ;
190189 payload ? [ "availability_topic" ] . ToString ( ) . Should ( ) . Be ( "homeassistant/domain/sensor/availability" ) ;
@@ -199,7 +198,7 @@ public async Task CanRemove()
199198
200199 await entityManager . RemoveAsync ( "domain.sensor" ) ;
201200
202- mqttSetup . LastPublishedMessage . Payload . Should ( ) . BeNull ( ) ;
201+ mqttSetup . LastPublishedMessage . PayloadSegment . Should ( ) . BeEmpty ( ) ;
203202 }
204203
205204 [ Fact ]
@@ -209,7 +208,7 @@ public async Task CanSetState()
209208 var entityManager = new MqttEntityManager ( mqttSetup . MessageSender , null ! , GetOptions ( ) ) ;
210209
211210 await entityManager . SetStateAsync ( "domain.sensor" , "NewState" ) ;
212- var payload = System . Text . Encoding . Default . GetString ( mqttSetup . LastPublishedMessage . Payload ) ;
211+ var payload = Encoding . Default . GetString ( mqttSetup . LastPublishedMessage . PayloadSegment . Array ?? Array . Empty < byte > ( ) ) ;
213212
214213 mqttSetup . LastPublishedMessage . Topic . Should ( ) . Be ( "homeassistant/domain/sensor/state" ) ;
215214 payload . Should ( ) . Be ( "NewState" ) ;
@@ -224,7 +223,7 @@ public async Task CanSetStateToBlank()
224223 await entityManager . SetStateAsync ( "domain.sensor" , "" ) ;
225224
226225 mqttSetup . LastPublishedMessage . Topic . Should ( ) . Be ( "homeassistant/domain/sensor/state" ) ;
227- mqttSetup . LastPublishedMessage . Payload . Should ( ) . BeNull ( ) ;
226+ mqttSetup . LastPublishedMessage . PayloadSegment . Should ( ) . BeEmpty ( ) ;
228227 }
229228
230229 [ Fact ]
@@ -235,7 +234,7 @@ public async Task CanSetAttributes()
235234
236235 var attributes = new { colour = "purple" , ziggy = "stardust" } ;
237236 await entityManager . SetAttributesAsync ( "domain.sensor" , attributes ) ;
238- var payload = PayloadToDictionary ( mqttSetup . LastPublishedMessage . Payload ) ;
237+ var payload = PayloadToDictionary ( mqttSetup . LastPublishedMessage . PayloadSegment . Array ?? Array . Empty < byte > ( ) ) ;
239238
240239 mqttSetup . LastPublishedMessage . Topic . Should ( ) . Be ( "homeassistant/domain/sensor/attributes" ) ;
241240 payload ? [ "colour" ] . ToString ( ) . Should ( ) . Be ( "purple" ) ;
@@ -249,7 +248,7 @@ public async Task CanSetAvailability()
249248 var entityManager = new MqttEntityManager ( mqttSetup . MessageSender , null ! , GetOptions ( ) ) ;
250249
251250 await entityManager . SetAvailabilityAsync ( "domain.sensor" , "up" ) ;
252- var payload = System . Text . Encoding . Default . GetString ( mqttSetup . LastPublishedMessage . Payload ) ;
251+ var payload = Encoding . Default . GetString ( mqttSetup . LastPublishedMessage . PayloadSegment . Array ?? Array . Empty < byte > ( ) ) ;
253252
254253 mqttSetup . LastPublishedMessage . Topic . Should ( ) . Be ( "homeassistant/domain/sensor/availability" ) ;
255254 payload . Should ( ) . Be ( "up" ) ;
@@ -259,7 +258,7 @@ public async Task CanSetAvailability()
259258 private Dictionary < string , object > ? PayloadToDictionary ( byte [ ] payload )
260259 {
261260 return JsonSerializer . Deserialize < Dictionary < string , object > > (
262- System . Text . Encoding . Default . GetString ( payload )
261+ Encoding . Default . GetString ( payload )
263262 ) ;
264263 }
265264
0 commit comments