1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
|
/*
* Copyright (C) 2010-2012 Jeremy Lainé
* Contact: http://code.google.com/p/qdjango/
*
* This file is part of the QDjango Library.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*/
#include <QtTest>
#include "QDjango.h"
#include "QDjango_p.h"
#include "QDjangoQuerySet.h"
#include "QDjangoWhere.h"
#include "fields.h"
#define Q QDjangoWhere
template<class T>
void init()
{
const QDjangoMetaModel metaModel = QDjango::registerModel<T>();
QCOMPARE(metaModel.createTable(), true);
}
template<class T, class K>
void setAndGet(const K &value)
{
T v1;
v1.setValue(value);
QCOMPARE(v1.save(), true);
T v2;
QVERIFY(QDjangoQuerySet<T>().get(Q("pk", Q::Equals, v1.pk()), &v2) != 0);
QCOMPARE(v2.value(), value);
}
template<class T>
void cleanup()
{
const QDjangoMetaModel metaModel = QDjango::registerModel<T>();
QCOMPARE(metaModel.dropTable(), true);
}
void tst_Bool::testValue()
{
init<tst_Bool>();
setAndGet<tst_Bool>(true);
setAndGet<tst_Bool>(false);
cleanup<tst_Bool>();
}
void tst_ByteArray::testValue()
{
init<tst_ByteArray>();
setAndGet<tst_ByteArray>(QByteArray("01234567", 8));
setAndGet<tst_ByteArray>(QByteArray("\x00\x01\x02\x03\x04\x05\x06\x07", 8));
cleanup<tst_ByteArray>();
}
void tst_Date::testValue()
{
init<tst_Date>();
setAndGet<tst_Date>(QDate(2012, 1, 8));
cleanup<tst_Date>();
}
void tst_DateTime::testValue()
{
init<tst_DateTime>();
setAndGet<tst_DateTime>(QDateTime(QDate(2012, 1, 8), QTime(3, 4, 5)));
cleanup<tst_DateTime>();
}
void tst_Double::testValue()
{
init<tst_Double>();
setAndGet<tst_Double>(double(3.14159));;
cleanup<tst_Double>();
}
void tst_Integer::testValue()
{
init<tst_Integer>();
setAndGet<tst_Integer>(0);
setAndGet<tst_Integer>(-2147483647);
setAndGet<tst_Integer>(2147483647);
cleanup<tst_Integer>();
}
void tst_LongLong::testValue()
{
init<tst_LongLong>();
setAndGet<tst_LongLong>(qlonglong(0));
setAndGet<tst_LongLong>(qlonglong(-9223372036854775807ll));
setAndGet<tst_LongLong>(qlonglong(9223372036854775807ll));
cleanup<tst_LongLong>();
}
void tst_String::testValue()
{
init<tst_String>();
setAndGet<tst_String>(QString("foo bar"));
cleanup<tst_String>();
}
void tst_Time::testValue()
{
init<tst_Time>();
setAndGet<tst_Time>(QTime(3, 4, 5));
cleanup<tst_Time>();
}
|