src/test/ais8_366_test.cc
// Test parsing 8:366:*.
#include <memory>
#include "gmock/gmock.h"
#include "gmock/gmock-matchers.h"
#include "gtest/gtest.h"
#include "ais.h"
namespace libais {
namespace {
void Validate(const Ais8_366_56 *msg, const int repeat_indicator,
const int mmsi, const vector<unsigned char> &encrypted) {
ASSERT_NE(nullptr, msg);
EXPECT_FALSE(msg->had_error());
ASSERT_EQ(8, msg->message_id);
EXPECT_EQ(repeat_indicator, msg->repeat_indicator);
EXPECT_EQ(mmsi, msg->mmsi);
EXPECT_EQ(366, msg->dac);
ASSERT_EQ(56, msg->fi);
EXPECT_THAT(msg->encrypted, testing::ElementsAreArray(encrypted));
}
TEST(Ais8_366_56Test, DecodeAnything) {
// clang-format off
// !BSVDM,1,1,,B,853>IhQKf6EQFDdajT?AbaAVhHEWebddhqHC5@?=KwisgP00DWjE,0*6D,b003669701,1429315201 NOLINT
// clang-format on
// TODO(schwehr): use make_unique.
std::unique_ptr<Ais8_366_56> msg(new Ais8_366_56(
"853>IhQKf6EQFDdajT?AbaAVhHEWebddhqHC5@?=KwisgP00DWjE", 0));
Validate(msg.get(), 0, 338926018,
{0x65, 0x61, 0x59, 0x4B, 0x29, 0xCA, 0x43, 0xD1, 0xAA, 0x94, 0x66,
0xC1, 0x85, 0x67, 0xB6, 0xAB, 0x2C, 0xC3, 0x96, 0x13, 0x15, 0x03,
0xCD, 0x6F, 0xFC, 0x7B, 0xBE, 0x00, 0x00, 0x52, 0x7C, 0x95});
}
} // namespace
} // namespace libais