#include "helper.hpp"

#include <ipmid/api-types.hpp>
#include <optional>
#include <span>
#include <tuple>
#include <utility>
#include <vector>

#include <gtest/gtest.h>

namespace blobs
{
std::vector<std::uint8_t>
    validateReply(ipmi::RspType<std::vector<uint8_t>> reply, bool hasData)
{
    // Reply is in the form of
    // std::tuple<ipmi::Cc, std::optional<std::tuple<RetTypes...>>>
    EXPECT_EQ(::ipmi::ccSuccess, std::get<0>(reply));

    auto actualReply = std::get<1>(reply);
    EXPECT_TRUE(actualReply.has_value());

    auto data = std::get<0>(*actualReply);
    EXPECT_EQ(hasData, !data.empty());

    return hasData ? data : std::vector<uint8_t>{};
}

} // namespace blobs
