#include <array>
#include <string>
#include <gtest/gtest.h>
#include "data_types.hpp"

using namespace phosphor::dbus::monitoring;

using Index = std::map<std::tuple<size_t, size_t, size_t>, size_t>;

#include "callbackgentest.hpp"

const std::array<std::tuple<std::string, size_t>, 4> expectedCallbacks =
{
    {
        std::tuple<std::string, size_t>{"int32_t", 0},
        std::tuple<std::string, size_t>{"int32_t", 0},
        std::tuple<std::string, size_t>{"std::string", 1},
        std::tuple<std::string, size_t>{"std::string", 2},
    }
};

TEST(CallbackGenTest, CallbacksSameSize)
{
    ASSERT_EQ(sizeof(expectedCallbacks), sizeof(callbacks));
}

TEST(CallbackGenTest, CallbacksSameContent)
{
    size_t i;
    for (i = 0; i < expectedCallbacks.size(); ++i)
    {
        ASSERT_EQ(callbacks[i],
                  expectedCallbacks[i]);
    }
}
