mirror of
https://github.com/boostorg/mysql.git
synced 2026-02-14 12:52:17 +00:00
84 lines
1.8 KiB
C++
84 lines
1.8 KiB
C++
//
|
|
// Copyright (c) 2019-2020 Ruben Perez Hidalgo (rubenperez038 at gmail dot com)
|
|
//
|
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
//
|
|
|
|
#include <gtest/gtest.h>
|
|
#include "boost/mysql/row.hpp"
|
|
#include "test_common.hpp"
|
|
|
|
using namespace boost::mysql::test;
|
|
using namespace testing;
|
|
using boost::mysql::row;
|
|
|
|
namespace
|
|
{
|
|
|
|
// Equality operators
|
|
TEST(RowTest, OperatorsEqNe_BothEmpty_ReturnEquals)
|
|
{
|
|
EXPECT_TRUE(row() == row());
|
|
EXPECT_FALSE(row() != row());
|
|
}
|
|
|
|
TEST(RowTest, OperatorsEqNe_OneEmptyOtherNotEmpty_ReturnNotEquals)
|
|
{
|
|
row empty_row;
|
|
row non_empty_row (makevalues("a_value"));
|
|
EXPECT_FALSE(empty_row == non_empty_row);
|
|
EXPECT_TRUE(empty_row != non_empty_row);
|
|
}
|
|
|
|
TEST(RowTest, OperatorsEqNe_Subset_ReturnNotEquals)
|
|
{
|
|
row lhs (makevalues("a_value", 42));
|
|
row rhs (makevalues("a_value"));
|
|
EXPECT_FALSE(lhs == rhs);
|
|
EXPECT_TRUE(lhs != rhs);
|
|
}
|
|
|
|
TEST(RowTest, OperatorsEqNe_SameSizeDifferentValues_ReturnNotEquals)
|
|
{
|
|
row lhs (makevalues("a_value", 42));
|
|
row rhs (makevalues("another_value", 42));
|
|
EXPECT_FALSE(lhs == rhs);
|
|
EXPECT_TRUE(lhs != rhs);
|
|
}
|
|
|
|
TEST(RowTest, OperatorsEqNe_SameSizeAndValues_ReturnEquals)
|
|
{
|
|
row lhs (makevalues("a_value", 42));
|
|
row rhs (makevalues("a_value", 42));
|
|
EXPECT_TRUE(lhs == rhs);
|
|
EXPECT_FALSE(lhs != rhs);
|
|
}
|
|
|
|
// Stream operators
|
|
std::string to_string(const row& input)
|
|
{
|
|
std::ostringstream ss;
|
|
ss << input;
|
|
return ss.str();
|
|
}
|
|
|
|
TEST(RowTest, OperatorStream_EmptyRow)
|
|
{
|
|
EXPECT_EQ(to_string(row()), "{}");
|
|
}
|
|
|
|
TEST(RowTest, OperatorStream_OneElement)
|
|
{
|
|
EXPECT_EQ(to_string(makerow(42)), "{42}");
|
|
}
|
|
|
|
TEST(RowTest, OperatorStream_SeveralElements)
|
|
{
|
|
EXPECT_EQ((to_string(makerow("value", nullptr))), "{value, <NULL>}");
|
|
EXPECT_EQ((to_string(makerow("value", std::uint32_t(2019), 3.14f))), "{value, 2019, 3.14}");
|
|
}
|
|
|
|
}
|
|
|