/*
 *
 *    Copyright (c) 2023 Project CHIP Authors
 *    All rights reserved.
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */
#include "sample_data.h"

namespace chip {
namespace TestData {
namespace {

const uint8_t payload_0_16[] = {};

const uint8_t payload_0_32[] = { 0x15, 0x30, 0x01, 0x20, 0X7C, 0x86, 0x98, 0x75, 0X5B, 0X8E, 0x98, 0x66, 0XBB, 0X4F, 0XFD, 0XC2,
                                 0X7B, 0x73, 0X3F, 0X3B, 0X6E, 0XF7, 0XF8, 0X3D, 0x43, 0XFB, 0XE0, 0XCA, 0X6A, 0XD2, 0XB8, 0XC5,
                                 0X2C, 0X8F, 0x42, 0x36, 0x25, 0x02, 0X2D, 0x93, 0x24, 0x03, 0x00, 0x28, 0x04, 0x18 };

const uint8_t payload_0_33[] = { 0x15, 0x30, 0x01, 0x20, 0X7C, 0x86, 0x98, 0x75, 0X5B, 0X8E, 0x98, 0x66, 0XBB, 0X4F, 0XFD,
                                 0XC2, 0X7B, 0x73, 0X3F, 0X3B, 0X6E, 0XF7, 0XF8, 0X3D, 0x43, 0XFB, 0XE0, 0XCA, 0X6A, 0XD2,
                                 0XB8, 0XC5, 0X2C, 0X8F, 0x42, 0x36, 0x30, 0x02, 0x20, 0XA4, 0X4E, 0XB3, 0XE1, 0XA7, 0x51,
                                 0XA8, 0X8A, 0x32, 0XBA, 0XB5, 0X9E, 0XF1, 0X6E, 0XB9, 0x76, 0X4C, 0x20, 0XE1, 0XA9, 0XDD,
                                 0XBE, 0XF6, 0XEF, 0XE3, 0XF5, 0x88, 0XC9, 0x43, 0XC5, 0x84, 0x24, 0x25, 0x03, 0XE8, 0X9C,
                                 0x35, 0x04, 0x25, 0x01, 0XE8, 0x03, 0x30, 0x02, 0x20, 0XE8, 0XFC, 0X1E, 0X6F, 0XD0, 0x02,
                                 0x34, 0x22, 0XB3, 0XCA, 0X7E, 0XCE, 0XDD, 0x34, 0x44, 0x44, 0x55, 0X1C, 0x81, 0X4D, 0X3D,
                                 0X0B, 0X0E, 0XB9, 0XC0, 0x96, 0XF0, 0X0E, 0X8A, 0x80, 0x51, 0XB2, 0x18, 0x18 };

const uint8_t payload_0_34[] = { 0x15, 0x30, 0x01, 0x41, 0x04, 0x22, 0XAB, 0XC7, 0XA8, 0x43, 0x52, 0x85, 0x04, 0x56,
                                 0XBD, 0X4A, 0x51, 0x09, 0x05, 0XFE, 0X6B, 0XB7, 0x82, 0XA0, 0x86, 0X3A, 0x93, 0x82,
                                 0x55, 0X0E, 0x12, 0x28, 0x02, 0x08, 0x01, 0XB2, 0X2E, 0XEC, 0x41, 0x02, 0XC6, 0X0F,
                                 0x80, 0x08, 0x28, 0x42, 0XB9, 0x73, 0x97, 0x05, 0XFC, 0XD3, 0X7F, 0x13, 0x46, 0x51,
                                 0x44, 0X2A, 0x41, 0XE3, 0x72, 0X3D, 0XFF, 0XE0, 0x27, 0x80, 0x77, 0x92, 0X0D, 0x18 };

const uint8_t payload_0_35[] = { 0x15, 0x30, 0x01, 0x41, 0x04, 0XB6, 0XA4, 0X4A, 0x33, 0x47, 0XC6, 0XB7, 0x79, 0x00, 0XA3,
                                 0x67, 0X4C, 0XA1, 0X9F, 0x40, 0XF2, 0X5F, 0x05, 0X6F, 0X8C, 0XB3, 0x44, 0XEC, 0X1B, 0X4F,
                                 0XA7, 0x88, 0X8B, 0X9E, 0X6B, 0x57, 0X0B, 0x70, 0x10, 0x43, 0X1C, 0X5D, 0X0B, 0XE4, 0x02,
                                 0X1F, 0XE7, 0X4A, 0x96, 0XC4, 0x07, 0x21, 0x76, 0X5F, 0XDA, 0x68, 0x02, 0XBE, 0X8D, 0XFD,
                                 0XF5, 0x62, 0x43, 0x32, 0x27, 0x53, 0x13, 0X4D, 0XC2, 0x30, 0x02, 0x20, 0x40, 0XE7, 0x45,
                                 0x22, 0x75, 0XE3, 0X8A, 0XEB, 0XAF, 0X0E, 0X0F, 0X6F, 0XAB, 0x33, 0XA1, 0XB0, 0XCB, 0X5A,
                                 0XEB, 0X5E, 0x82, 0x42, 0x30, 0XDD, 0x40, 0XD0, 0x07, 0X1D, 0XC7, 0XE5, 0X5C, 0x87, 0x18 };

const uint8_t payload_0_36[] = { 0x15, 0x30, 0x01, 0x20, 0x60, 0x08, 0XC7, 0X2E, 0XDE, 0XC9, 0XD2, 0X5D, 0X4A,
                                 0x36, 0x52, 0X2F, 0X0B, 0XF2, 0x30, 0x58, 0XF9, 0x37, 0X8E, 0XFE, 0x38, 0XCB,
                                 0XBC, 0XCE, 0X8C, 0x68, 0x53, 0x90, 0x01, 0x69, 0XBC, 0x38, 0x18 };

const uint8_t payload_0_64[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

const uint8_t payload_1_2[] = { 0x15, 0x36, 0x00, 0x17, 0x24, 0x03, 0x31, 0x25, 0x04, 0XFC, 0XFF, 0x18, 0x17, 0x24, 0x02, 0x00,
                                0x24, 0x03, 0x30, 0x24, 0x04, 0x00, 0x18, 0x17, 0x24, 0x02, 0x00, 0x24, 0x03, 0x30, 0x24, 0x04,
                                0x01, 0x18, 0x17, 0x24, 0x02, 0x00, 0x24, 0x03, 0x30, 0x24, 0x04, 0x02, 0x18, 0x17, 0x24, 0x02,
                                0x00, 0x24, 0x03, 0x30, 0x24, 0x04, 0x03, 0x18, 0x17, 0x24, 0x02, 0x00, 0x24, 0x03, 0x28, 0x24,
                                0x04, 0x02, 0x18, 0x17, 0x24, 0x02, 0x00, 0x24, 0x03, 0x28, 0x24, 0x04, 0x04, 0x18, 0x17, 0x24,
                                0x03, 0x31, 0x24, 0x04, 0x03, 0x18, 0x18, 0x28, 0x03, 0x24, 0XFF, 0x01, 0x18 };

const uint8_t payload_1_5[] = {
    0x15, 0x36, 0x01, 0x15, 0x35, 0x01, 0x26, 0x00, 0x69, 0XC9, 0XB3, 0x01, 0x37, 0x01, 0x24, 0x02, 0x00, 0x24, 0x03, 0x31, 0x24,
    0x04, 0x03, 0x18, 0x24, 0x02, 0x00, 0x18, 0x18, 0x15, 0x35, 0x01, 0x26, 0x00, 0x63, 0XC5, 0XA2, 0x27, 0x37, 0x01, 0x24, 0x02,
    0x00, 0x24, 0x03, 0x28, 0x24, 0x04, 0x04, 0x18, 0x25, 0x02, 0x01, 0x80, 0x18, 0x18, 0x15, 0x35, 0x01, 0x26, 0x00, 0x63, 0XC5,
    0XA2, 0x27, 0x37, 0x01, 0x24, 0x02, 0x00, 0x24, 0x03, 0x28, 0x24, 0x04, 0x02, 0x18, 0x25, 0x02, 0XF1, 0XFF, 0x18, 0x18, 0x15,
    0x35, 0x01, 0x26, 0x00, 0XCA, 0x65, 0x48, 0x54, 0x37, 0x01, 0x24, 0x02, 0x00, 0x24, 0x03, 0x30, 0x24, 0x04, 0x03, 0x18, 0x24,
    0x02, 0x02, 0x18, 0x18, 0x15, 0x35, 0x01, 0x26, 0x00, 0XCA, 0x65, 0x48, 0x54, 0x37, 0x01, 0x24, 0x02, 0x00, 0x24, 0x03, 0x30,
    0x24, 0x04, 0x02, 0x18, 0x24, 0x02, 0x00, 0x18, 0x18, 0x15, 0x35, 0x01, 0x26, 0x00, 0XCA, 0x65, 0x48, 0x54, 0x37, 0x01, 0x24,
    0x02, 0x00, 0x24, 0x03, 0x30, 0x24, 0x04, 0x01, 0x18, 0x35, 0x02, 0x24, 0x00, 0X3C, 0x25, 0x01, 0x84, 0x03, 0x18, 0x18, 0x18,
    0x15, 0x35, 0x01, 0x26, 0x00, 0XCA, 0x65, 0x48, 0x54, 0x37, 0x01, 0x24, 0x02, 0x00, 0x24, 0x03, 0x30, 0x24, 0x04, 0x00, 0x18,
    0x24, 0x02, 0x00, 0x18, 0x18, 0x15, 0x35, 0x01, 0x26, 0x00, 0x69, 0XC9, 0XB3, 0x01, 0x37, 0x01, 0x24, 0x02, 0x00, 0x24, 0x03,
    0x31, 0x25, 0x04, 0XFC, 0XFF, 0x18, 0x24, 0x02, 0x04, 0x18, 0x18, 0x18, 0x29, 0x04, 0x24, 0XFF, 0x01, 0x18
};

const uint8_t payload_1_5_acl[] = { 0x15, 0x36, 0x01, 0x15, 0x35, 0x01, 0x26, 0x00, 0x72, 0x4D, 0xDB, 0xCB, 0x37, 0x01, 0x24,
                                    0x02, 0x00, 0x24, 0x03, 0x1F, 0x24, 0x04, 0x00, 0x18, 0x36, 0x02, 0x15, 0x24, 0x01, 0x05,
                                    0x24, 0x02, 0x02, 0x36, 0x03, 0x06, 0x69, 0xB6, 0x01, 0x00, 0x18, 0x34, 0x04, 0x24, 0xFE,
                                    0x01, 0x18, 0x18, 0x18, 0x18, 0x18, 0x29, 0x04, 0x24, 0xFF, 0x01, 0x18 };

const uint8_t payload_1_8[] = {
    0x15, 0x28, 0x00, 0x28, 0x01, 0x36, 0x02, 0x15, 0x37, 0x00, 0x24, 0x00, 0x01, 0x24, 0x01,
    0x06, 0x24, 0x02, 0x02, 0x18, 0x35, 0x01, 0x18, 0x18, 0x18, 0x24, 0xFF, 0x01, 0x18,
};

const uint8_t payload_1_9[] = {
    0x15, 0x28, 0x00, 0x36, 0x01, 0x15, 0x35, 0x01, 0x37, 0x00, 0x24, 0x00, 0x01, 0x24, 0x01, 0x06, 0x24,
    0x02, 0x02, 0x18, 0x35, 0x01, 0x24, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x24, 0xFF, 0x01, 0x18,
};

// Response for window_covering::config_status
// Response contains a bitmap value;
const uint8_t payload_1_5_window_covering[] = { 0x15, 0x36, 0x01, 0x15, 0x35, 0x01, 0x26, 0x00, 0xEA, 0x99, 0x7C, 0x7A, 0x37,
                                                0x01, 0x24, 0x02, 0x01, 0x25, 0x03, 0x02, 0x01, 0x24, 0x04, 0x07, 0x18, 0x24,
                                                0x02, 0x1B, 0x18, 0x18, 0x18, 0x29, 0x04, 0x24, 0xFF, 0x01, 0x18 };

// Change channel invoke. This has a command input (channel name)
const uint8_t payload_1_8_change_channel[] = { 0x15, 0x28, 0x00, 0x28, 0x01, 0x36, 0x02, 0x15, 0x37, 0x00, 0x24, 0x00,
                                               0x01, 0x25, 0x01, 0x04, 0x05, 0x24, 0x02, 0x00, 0x18, 0x35, 0x01, 0x2C,
                                               0x00, 0x0C, 0x63, 0x68, 0x61, 0x6E, 0x6E, 0x65, 0x6C, 0x20, 0x6E, 0x61,
                                               0x6D, 0x65, 0x18, 0x18, 0x18, 0x24, 0xFF, 0x01, 0x18 };

// Software fault event:
// id: 2454952, name: "2454952", faultRecording: "467269204A756C2032382031333A34393A30382032303233"
const uint8_t payload_1_5_software_fault_event[] = {
    0x15, 0x36, 0x02, 0x15, 0x35, 0x01, 0x37, 0x00, 0x24, 0x01, 0x00, 0x24, 0x02, 0x34, 0x24, 0x03, 0x00, 0x18, 0x26,
    0x01, 0x02, 0x00, 0x03, 0x00, 0x24, 0x02, 0x01, 0x27, 0x03, 0xF2, 0x5A, 0x9E, 0x9D, 0x89, 0x01, 0x00, 0x00, 0x35,
    0x07, 0x26, 0x00, 0xA8, 0x75, 0x25, 0x00, 0x2C, 0x01, 0x07, 0x32, 0x34, 0x35, 0x34, 0x39, 0x35, 0x32, 0x30, 0x02,
    0x18, 0x46, 0x72, 0x69, 0x20, 0x4A, 0x75, 0x6C, 0x20, 0x32, 0x38, 0x20, 0x31, 0x33, 0x3A, 0x34, 0x39, 0x3A, 0x30,
    0x38, 0x20, 0x32, 0x30, 0x32, 0x33, 0x18, 0x18, 0x18, 0x18, 0x29, 0x04, 0x24, 0xFF, 0x01, 0x18
};

// A multipress complete event
// previousPosition: 1, totalNumberOfPressesCounted: 23
const uint8_t payload_1_5_multipress_event[] = { 0x15, 0x36, 0x02, 0x15, 0x35, 0x01, 0x37, 0x00, 0x24, 0x01, 0x00, 0x24, 0x02, 0x3B,
                                                 0x24, 0x03, 0x06, 0x18, 0x26, 0x01, 0x03, 0x00, 0x03, 0x00, 0x24, 0x02, 0x01, 0x27,
                                                 0x03, 0x22, 0x84, 0xA2, 0x9D, 0x89, 0x01, 0x00, 0x00, 0x35, 0x07, 0x24, 0x00, 0x01,
                                                 0x24, 0x01, 0x17, 0x18, 0x18, 0x18, 0x18, 0x29, 0x04, 0x24, 0xFF, 0x01, 0x18 };

} // namespace

const SamplePayload secure_channel_mrp_ack              = { chip::Protocols::Id(VendorId::Common, 0), 16,
                                                            ByteSpan(payload_0_16, sizeof(payload_0_16)) };
const SamplePayload secure_channel_pkbdf_param_request  = { chip::Protocols::Id(VendorId::Common, 0), 32, ByteSpan(payload_0_32) };
const SamplePayload secure_channel_pkbdf_param_response = { chip::Protocols::Id(VendorId::Common, 0), 33, ByteSpan(payload_0_33) };
const SamplePayload secure_channel_pase_pake1           = { chip::Protocols::Id(VendorId::Common, 0), 34, ByteSpan(payload_0_34) };
const SamplePayload secure_channel_pase_pake2           = { chip::Protocols::Id(VendorId::Common, 0), 35, ByteSpan(payload_0_35) };
const SamplePayload secure_channel_pase_pake3           = { chip::Protocols::Id(VendorId::Common, 0), 36, ByteSpan(payload_0_36) };
const SamplePayload secure_channel_status_report        = { chip::Protocols::Id(VendorId::Common, 0), 64, ByteSpan(payload_0_64) };

const SamplePayload im_protocol_read_request    = { chip::Protocols::Id(VendorId::Common, 1), 2, ByteSpan(payload_1_2) };
const SamplePayload im_protocol_report_data     = { chip::Protocols::Id(VendorId::Common, 1), 5, ByteSpan(payload_1_5) };
const SamplePayload im_protocol_invoke_request  = { chip::Protocols::Id(VendorId::Common, 1), 8, ByteSpan(payload_1_8) };
const SamplePayload im_protocol_invoke_response = { chip::Protocols::Id(VendorId::Common, 1), 9, ByteSpan(payload_1_9) };

const SamplePayload im_protocol_invoke_request_change_channel = { chip::Protocols::Id(VendorId::Common, 1), 8,
                                                                  ByteSpan(payload_1_8_change_channel) };

const SamplePayload im_protocol_report_data_acl = { chip::Protocols::Id(VendorId::Common, 1), 5, ByteSpan(payload_1_5_acl) };
const SamplePayload im_protocol_report_data_window_covering = { chip::Protocols::Id(VendorId::Common, 1), 5,
                                                                ByteSpan(payload_1_5_window_covering) };

const SamplePayload im_protocol_event_software_fault = { chip::Protocols::Id(VendorId::Common, 1), 5,
                                                         ByteSpan(payload_1_5_software_fault_event) };

const SamplePayload im_protocol_event_multipress = { chip::Protocols::Id(VendorId::Common, 1), 5,
                                                     ByteSpan(payload_1_5_multipress_event) };

} // namespace TestData
} // namespace chip
