+
+func queueCommands(t *testing.T, router *driver.Router, commands []driver.Command) {
+ t.Helper()
+
+ var (
+ publication protocol.Publication
+ err error
+ )
+
+ if len(commands) == 1 {
+ command := commands[0]
+ publication, err = protocol.BuildCommand(command.DeviceID, command.Capability, command.Metadata, command.Payload)
+ } else {
+ members := make([]protocol.BatchCommand, len(commands))
+
+ for index, command := range commands {
+ members[index] = protocol.BatchCommand{
+ Capability: command.Capability,
+ Metadata: command.Metadata,
+ Payload: command.Payload,
+ }
+ }
+
+ publication, err = protocol.BuildCommandBatch(testDeviceID, commands[0].Metadata, protocol.BatchPayload{Commands: members})
+ }
+
+ require.NoError(t, err)
+ require.NoError(t, router.Handle(t.Context(), publication.Topic, publication.Data, false))
+}