mirror of
https://github.com/boostorg/mysql.git
synced 2026-02-14 12:52:17 +00:00
86 lines
2.1 KiB
C++
86 lines
2.1 KiB
C++
/*
|
|
* prepared_statement.cpp
|
|
*
|
|
* Created on: Feb 5, 2020
|
|
* Author: ruben
|
|
*/
|
|
|
|
#include "test_common.hpp"
|
|
#include "boost/mysql/prepared_statement.hpp"
|
|
#include <boost/asio/ip/tcp.hpp>
|
|
|
|
using namespace boost::mysql::detail;
|
|
|
|
namespace
|
|
{
|
|
|
|
using stream_type = boost::asio::ip::tcp::socket;
|
|
using channel_type = channel<stream_type>;
|
|
using stmt_type = boost::mysql::prepared_statement<stream_type>;
|
|
|
|
struct PreparedStatementTest : public testing::Test
|
|
{
|
|
boost::asio::io_context ctx; // TODO: change these for a mock stream
|
|
stream_type socket {ctx};
|
|
channel_type channel {socket};
|
|
};
|
|
|
|
TEST_F(PreparedStatementTest, DefaultConstructor_Trivial_Invalid)
|
|
{
|
|
stmt_type stmt;
|
|
EXPECT_FALSE(stmt.valid());
|
|
}
|
|
|
|
TEST_F(PreparedStatementTest, InitializingConstructor_Trivial_Valid)
|
|
{
|
|
|
|
stmt_type stmt (channel, com_stmt_prepare_ok_packet{int4(10), int2(9), int2(8), int2(7)});
|
|
EXPECT_TRUE(stmt.valid());
|
|
EXPECT_EQ(stmt.id(), 10);
|
|
EXPECT_EQ(stmt.num_params(), 8);
|
|
}
|
|
|
|
TEST_F(PreparedStatementTest, MoveConstructor_FromDefaultConstructed_Invalid)
|
|
{
|
|
stmt_type stmt {stmt_type()};
|
|
EXPECT_FALSE(stmt.valid());
|
|
}
|
|
|
|
TEST_F(PreparedStatementTest, MoveConstructor_FromValid_Valid)
|
|
{
|
|
|
|
stmt_type stmt (stmt_type(
|
|
channel, com_stmt_prepare_ok_packet{int4(10), int2(9), int2(8), int2(7)}
|
|
));
|
|
EXPECT_TRUE(stmt.valid());
|
|
EXPECT_EQ(stmt.id(), 10);
|
|
EXPECT_EQ(stmt.num_params(), 8);
|
|
}
|
|
|
|
TEST_F(PreparedStatementTest, MoveAssignment_FromDefaultConstructed_Invalid)
|
|
{
|
|
stmt_type stmt (channel, com_stmt_prepare_ok_packet{int4(10), int2(9), int2(8), int2(7)});
|
|
stmt = stmt_type();
|
|
EXPECT_FALSE(stmt.valid());
|
|
stmt = stmt_type();
|
|
EXPECT_FALSE(stmt.valid());
|
|
}
|
|
|
|
TEST_F(PreparedStatementTest, MoveAssignment_FromValid_Valid)
|
|
{
|
|
|
|
stmt_type stmt;
|
|
stmt = stmt_type (channel, com_stmt_prepare_ok_packet{int4(10), int2(9), int2(8), int2(7)});
|
|
EXPECT_TRUE(stmt.valid());
|
|
EXPECT_EQ(stmt.id(), 10);
|
|
EXPECT_EQ(stmt.num_params(), 8);
|
|
stmt = stmt_type (channel, com_stmt_prepare_ok_packet{int4(1), int2(2), int2(3), int2(4)});
|
|
EXPECT_TRUE(stmt.valid());
|
|
EXPECT_EQ(stmt.id(), 1);
|
|
EXPECT_EQ(stmt.num_params(), 3);
|
|
}
|
|
|
|
}
|
|
|
|
|