4
// $Id: //poco/1.3/Data/MySQL/testsuite/src/MySQLTest.h#2 $
6
// Definition of the MySQLTest class.
8
// Copyright (c) 2008, Applied Informatics Software Engineering GmbH.
11
// Permission is hereby granted, free of charge, to any person or organization
12
// obtaining a copy of the software and accompanying documentation covered by
13
// this license (the "Software") to use, reproduce, display, distribute,
14
// execute, and transmit the Software, and to prepare derivative works of the
15
// Software, and to permit third-parties to whom the Software is furnished to
16
// do so, all subject to the following:
18
// The copyright notices in the Software and this entire statement, including
19
// the above license grant, this restriction and the following disclaimer,
20
// must be included in all copies of the Software, in whole or in part, and
21
// all derivative works of the Software, unless such copies or derivative
22
// works are solely in the form of machine-executable object code generated by
23
// a source language processor.
25
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
26
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
27
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
28
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
29
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
30
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
31
// DEALINGS IN THE SOFTWARE.
35
#ifndef MySQLTest_INCLUDED
36
#define MySQLTest_INCLUDED
39
#include "Poco/Data/MySQL/MySQL.h"
40
#include "Poco/Data/Session.h"
41
#include "Poco/SharedPtr.h"
42
#include "CppUnit/TestCase.h"
43
#include "SQLExecutor.h"
46
class MySQLTest: public CppUnit::TestCase
51
/// ----------------+---------------------------+------------------------------------------
52
/// 03.51.12.00 | MySQL 5.0.27-community-nt | MS Windows XP Professional x64 v.2003/SP1
56
MySQLTest(const std::string& name);
59
void testBareboneMySQL();
61
void testSimpleAccess();
62
void testComplexType();
63
void testSimpleAccessVector();
64
void testComplexTypeVector();
65
void testInsertVector();
66
void testInsertEmptyVector();
68
void testInsertSingleBulk();
69
void testInsertSingleBulkVec();
73
void testLimitPrepare();
78
void testSetComplex();
79
void testSetComplexUnique();
80
void testMultiSetSimple();
81
void testMultiSetComplex();
82
void testMapComplex();
83
void testMapComplexUnique();
84
void testMultiMapComplex();
85
void testSelectIntoSingle();
86
void testSelectIntoSingleStep();
87
void testSelectIntoSingleFail();
88
void testLowerLimitOk();
89
void testLowerLimitFail();
90
void testCombinedLimits();
91
void testCombinedIllegalLimits();
93
void testIllegalRange();
94
void testSingleSelect();
104
void testTupleVector();
106
void testInternalExtraction();
112
static CppUnit::Test* suite();
116
void dropTable(const std::string& tableName);
117
void recreatePersonTable();
118
void recreatePersonBLOBTable();
119
void recreateStringsTable();
120
void recreateIntsTable();
121
void recreateFloatsTable();
122
void recreateTuplesTable();
123
void recreateVectorsTable();
125
static std::string _dbConnString;
126
static Poco::SharedPtr<Poco::Data::Session> _pSession;
127
static Poco::SharedPtr<SQLExecutor> _pExecutor;
128
static const bool bindValues[8];
132
#endif // MySQLTest_INCLUDED