mirror of
https://github.com/QuasarApp/Snake.git
synced 2025-04-28 18:54:40 +00:00
fix pakcage data of intem
This commit is contained in:
parent
eb6738369f
commit
c7c3a04c85
@ -98,6 +98,15 @@ bool Package::create(const BaseNetworkObject *obj, Type type) {
|
||||
return isValid();
|
||||
}
|
||||
|
||||
bool Package::create(Command cmd, Type type, const QByteArray &data) {
|
||||
hdr.command = static_cast<quint8>(cmd);
|
||||
hdr.type = static_cast<quint8>(type);
|
||||
hdr.size = static_cast<unsigned short>(data.size());
|
||||
this->data = data;
|
||||
|
||||
return isValid();
|
||||
}
|
||||
|
||||
bool Package::create(Command cmd, Type type) {
|
||||
|
||||
|
||||
|
@ -106,6 +106,17 @@ struct CLIENTPROTOCOLSHARED_EXPORT Package {
|
||||
*/
|
||||
BaseNetworkObject * parse() const;
|
||||
|
||||
template<class T>
|
||||
bool parse(T& res) {
|
||||
auto obj = static_cast<T*>(parse());
|
||||
|
||||
if (!obj)
|
||||
return false;
|
||||
|
||||
res = *obj;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief create - fill package
|
||||
* @param data - data of filled
|
||||
@ -113,6 +124,17 @@ struct CLIENTPROTOCOLSHARED_EXPORT Package {
|
||||
*/
|
||||
bool create(const BaseNetworkObject *data, Type type);
|
||||
|
||||
/**
|
||||
* @brief create
|
||||
* @param cmd command of package
|
||||
* @param type type
|
||||
* @param data - data of filled
|
||||
* @return
|
||||
*/
|
||||
bool create(Command cmd, Type type, const QByteArray& data);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @brief create
|
||||
* @param cmd command of package
|
||||
|
@ -43,8 +43,8 @@ HEADERS += \
|
||||
item.h \
|
||||
mainserver.h \
|
||||
playerdbdata.h \
|
||||
server_global.h \ \
|
||||
sqldbcache.h
|
||||
server_global.h \
|
||||
sqldbcache.h \
|
||||
sqldbwriter.h
|
||||
|
||||
include($$PWD/../../QuasarAppLib/QuasarLib.pri)
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "item.h"
|
||||
#include "factorynetobjects.h"
|
||||
|
||||
#include <exception>
|
||||
|
||||
int Item::getId() const {
|
||||
return id;
|
||||
@ -10,6 +10,10 @@ void Item::setId(int value) {
|
||||
id = value;
|
||||
}
|
||||
|
||||
Item::Item() {
|
||||
|
||||
}
|
||||
|
||||
Item::Item(const ClientProtocol::Package &other) {
|
||||
hdr = other.hdr;
|
||||
data = other.data;
|
||||
@ -26,6 +30,20 @@ Item::Item(const ClientProtocol::BaseNetworkObject *obj) {
|
||||
id = obj->id();
|
||||
}
|
||||
|
||||
Item::Item(ClientProtocol::Command cmd, const QByteArray &data) {
|
||||
if (!create(cmd, ClientProtocol::Type::Stream, data)) {
|
||||
throw std::runtime_error("Error create Item from BaseNetworkObject!");
|
||||
}
|
||||
|
||||
ClientProtocol::BaseNetworkObject base;
|
||||
base.fromBytes(data);
|
||||
id = base.id();
|
||||
}
|
||||
|
||||
Item::~Item() {
|
||||
|
||||
}
|
||||
|
||||
ClientProtocol::Command Item::cmd() const {
|
||||
return static_cast<ClientProtocol::Command>(hdr.command);
|
||||
}
|
||||
|
@ -10,14 +10,21 @@ private:
|
||||
int id = -1;
|
||||
|
||||
public:
|
||||
Item();
|
||||
Item(const ClientProtocol::Package& other);
|
||||
Item(const ClientProtocol::BaseNetworkObject* obj);
|
||||
Item(ClientProtocol::Command cmd, const QByteArray& data);
|
||||
|
||||
~Item() override;
|
||||
ClientProtocol::Command cmd() const;
|
||||
const QByteArray& dataArray() const;
|
||||
bool isValid() const override;
|
||||
int getId() const;
|
||||
void setId(int value);
|
||||
template<class T>
|
||||
bool parse(T& res) {
|
||||
return ClientProtocol::Package::parse(res);
|
||||
}
|
||||
};
|
||||
|
||||
#endif // ITEM_H
|
||||
|
@ -30,8 +30,7 @@ bool SqlDBCache::checkPlayer(int id) {
|
||||
|
||||
if (SqlDBWriter::checkPlayer(id)) {
|
||||
|
||||
PlayerDBData *player = getPlayer(id);
|
||||
if (savePlayer(*player) < 0) {
|
||||
if (savePlayer(getPlayer(id)) < 0) {
|
||||
QuasarAppUtils::Params::verboseLog("not saved data into cache "
|
||||
" SqlDBCashe::checkPlayer");
|
||||
}
|
||||
@ -73,7 +72,7 @@ bool SqlDBCache::checkItem(int idItem, int idOwner) {
|
||||
|
||||
if (SqlDBWriter::checkItem(idItem)) {
|
||||
|
||||
ClientProtocol::BaseNetworkObject *item = getItem(idItem);
|
||||
auto item = getItem(idItem);
|
||||
if (saveItem(item) < 0) {
|
||||
QuasarAppUtils::Params::verboseLog("not saved data into cache "
|
||||
" SqlDBCashe::checkItem");
|
||||
@ -164,18 +163,19 @@ bool SqlDBCache::initDb(const QString &sql, const QString &path) {
|
||||
return true;
|
||||
}
|
||||
|
||||
ClientProtocol::BaseNetworkObject * SqlDBCache::getItem(int id) {
|
||||
Item SqlDBCache::getItem(int id) {
|
||||
if (!isValid()) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
auto item = items.value(id, nullptr);
|
||||
auto item = items.value(id);
|
||||
|
||||
if (item && item->isValid()) {
|
||||
if (item.isValid()) {
|
||||
return item;
|
||||
}
|
||||
|
||||
if ((item = SqlDBWriter::getItem(id))) {
|
||||
item = SqlDBWriter::getItem(id);
|
||||
if (item.isValid()) {
|
||||
items.insert(id, item);
|
||||
return item;
|
||||
}
|
||||
@ -183,19 +183,20 @@ ClientProtocol::BaseNetworkObject * SqlDBCache::getItem(int id) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
int SqlDBCache::saveItem(const Item &item) {
|
||||
int SqlDBCache::saveItem(const Item &saveData) {
|
||||
if (!isValid()) {
|
||||
return -1;
|
||||
}
|
||||
auto item = saveData;
|
||||
|
||||
int id = item->id();
|
||||
int id = item.getId();
|
||||
|
||||
if (id < 0) {
|
||||
id = generateIdForItem();
|
||||
item->setId(id);
|
||||
item.setId(id);
|
||||
}
|
||||
|
||||
if (!item->isValid()) {
|
||||
if (!item.isValid()) {
|
||||
return -1;
|
||||
}
|
||||
items.insert(id, item);
|
||||
@ -205,42 +206,45 @@ int SqlDBCache::saveItem(const Item &item) {
|
||||
return id;
|
||||
}
|
||||
|
||||
PlayerDBData* SqlDBCache::getPlayer(int id) {
|
||||
PlayerDBData SqlDBCache::getPlayer(int id) {
|
||||
if (!isValid()) {
|
||||
return nullptr;
|
||||
return PlayerDBData();
|
||||
}
|
||||
|
||||
auto player = players.value(id, nullptr);
|
||||
auto player = players.value(id);
|
||||
|
||||
if (player && player->isValid()) {
|
||||
if (player.isValid()) {
|
||||
return player;
|
||||
}
|
||||
|
||||
if ((player = SqlDBWriter::getPlayer(id))) {
|
||||
items.insert(id, player);
|
||||
player = SqlDBWriter::getPlayer(id);
|
||||
if (player.isValid()) {
|
||||
players.insert(id, player);
|
||||
return player;
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
return PlayerDBData();
|
||||
}
|
||||
|
||||
int SqlDBCache::savePlayer(const PlayerDBData &player) {
|
||||
int SqlDBCache::savePlayer(const PlayerDBData &saveData) {
|
||||
if (!isValid()) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
int id = player->id();
|
||||
auto player = saveData;
|
||||
|
||||
int id = player.id();
|
||||
|
||||
if (id < 0) {
|
||||
id = generateIdForPalyer();
|
||||
player->setId(id);
|
||||
player.setId(id);
|
||||
}
|
||||
|
||||
if (!player->isValid()) {
|
||||
if (!player.isValid()) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
int curSnake = player->getCureentSnake();
|
||||
int curSnake = player.getCureentSnake();
|
||||
|
||||
if (curSnake >= 0 && !checkItem(curSnake, id)) {
|
||||
return -1;
|
||||
|
@ -7,6 +7,7 @@
|
||||
#include <QSet>
|
||||
#include <QVariantMap>
|
||||
#include <player.h>
|
||||
#include "item.h"
|
||||
#include <clientprotocol.h>
|
||||
|
||||
enum class SqlDBCasheWriteMode: int {
|
||||
@ -25,8 +26,8 @@ private:
|
||||
qint64 lastUpdateTime = 0;
|
||||
qint64 updateInterval = DEFAULT_UPDATE_INTERVAL;
|
||||
|
||||
QMap <int, ClientProtocol::Package> items;
|
||||
QMap <int, PlayerDBData*> players;
|
||||
QMap <int, Item> items;
|
||||
QMap <int, PlayerDBData> players;
|
||||
QHash <int, QSet<int>> owners;
|
||||
|
||||
int generateIdForItem() const;
|
||||
@ -47,9 +48,9 @@ public:
|
||||
bool initDb(const QString &sql = DEFAULT_DB_NAME,
|
||||
const QString &path = DEFAULT_DB_PATH) override;
|
||||
|
||||
ClientProtocol::BaseNetworkObject * getItem(int id) override;
|
||||
int saveItem(const Item& item) override;
|
||||
PlayerDBData* getPlayer(int id) override;
|
||||
Item getItem(int id) override;
|
||||
int saveItem(const Item& saveData) override;
|
||||
PlayerDBData getPlayer(int id) override;
|
||||
int savePlayer(const PlayerDBData &player) override;
|
||||
|
||||
bool giveAwayItem(int player, int item);
|
||||
|
@ -338,64 +338,57 @@ bool SqlDBWriter::saveowners(int player, const QSet<int> items) {
|
||||
return true;
|
||||
}
|
||||
|
||||
PlayerDBData * SqlDBWriter::getPlayer(int id) {
|
||||
PlayerDBData SqlDBWriter::getPlayer(int id) {
|
||||
|
||||
if (!isValid()) {
|
||||
return nullptr;
|
||||
return PlayerDBData();
|
||||
}
|
||||
|
||||
QString request = QString("SELECT * FROM players WHERE id=%0").arg(id);
|
||||
if (!query->exec(request)) {
|
||||
QuasarAppUtils::Params::verboseLog("request error : " + query->lastError().text());
|
||||
return nullptr;
|
||||
return PlayerDBData();
|
||||
}
|
||||
|
||||
if (!query->next()) {
|
||||
return nullptr;
|
||||
return PlayerDBData();
|
||||
}
|
||||
|
||||
auto player = new PlayerDBData();
|
||||
auto player = PlayerDBData();
|
||||
|
||||
|
||||
player->setName(query->value("name").toString());
|
||||
player->setGmail(query->value("gmail").toString());
|
||||
player->setMany(query->value("money").toUInt());
|
||||
player->setAvgRecord(query->value("avgrecord").toUInt());
|
||||
player->setRecord(query->value("record").toUInt());
|
||||
player->setLastOnline(query->value("lastOnline").toInt());
|
||||
player->setOnlineTime(query->value("onlinetime").toInt());
|
||||
player->setCureentSnake(query->value("currentsnake").toInt());
|
||||
player.setName(query->value("name").toString());
|
||||
player.setGmail(query->value("gmail").toString());
|
||||
player.setMany(query->value("money").toUInt());
|
||||
player.setAvgRecord(query->value("avgrecord").toUInt());
|
||||
player.setRecord(query->value("record").toUInt());
|
||||
player.setLastOnline(query->value("lastOnline").toInt());
|
||||
player.setOnlineTime(query->value("onlinetime").toInt());
|
||||
player.setCureentSnake(query->value("currentsnake").toInt());
|
||||
|
||||
return player;
|
||||
}
|
||||
|
||||
ClientProtocol::BaseNetworkObject *SqlDBWriter::getItem(int id) {
|
||||
Item SqlDBWriter::getItem(int id) {
|
||||
|
||||
if (!isValid()) {
|
||||
return nullptr;
|
||||
return Item();
|
||||
}
|
||||
|
||||
QString request = QString("SELECT type, data FROM items WHERE id=%0").arg(id);
|
||||
if (!query->exec(request)) {
|
||||
QuasarAppUtils::Params::verboseLog("request error : " + query->lastError().text());
|
||||
return nullptr;
|
||||
return Item();
|
||||
}
|
||||
|
||||
if (!query->next()) {
|
||||
return nullptr;
|
||||
return Item();
|
||||
}
|
||||
|
||||
auto type = static_cast<quint8>(query->value(0).toUInt());
|
||||
auto type = static_cast<ClientProtocol::Command>(query->value(0).toUInt());
|
||||
auto data = query->value(1).toByteArray();
|
||||
|
||||
auto obj = ClientProtocol::FactoryNetObjects::build(type);
|
||||
|
||||
if (!obj)
|
||||
return nullptr;
|
||||
|
||||
obj->fromBytes(data);
|
||||
|
||||
return obj;
|
||||
return Item(type, data);
|
||||
}
|
||||
|
||||
bool SqlDBWriter::itemIsFreeFrom(int item) const {
|
||||
|
@ -43,8 +43,8 @@ protected:
|
||||
|
||||
virtual bool getAllItemsOfPalyer(int player, QSet<int>& items);
|
||||
|
||||
virtual PlayerDBData *getPlayer(int id);
|
||||
virtual ClientProtocol::BaseNetworkObject * getItem(int id);
|
||||
virtual PlayerDBData getPlayer(int id);
|
||||
virtual Item getItem(int id);
|
||||
|
||||
virtual bool itemIsFreeFrom(int item) const;
|
||||
|
||||
|
@ -261,198 +261,197 @@ void testSankeServer::testBaseSql() {
|
||||
|
||||
// TEST ITEM
|
||||
|
||||
ClientProtocol::Snake *resSnake;
|
||||
ClientProtocol::Snake resSnake;
|
||||
|
||||
QVERIFY(db.saveItem(&snake) < 0);
|
||||
snake.setId(0);
|
||||
int id = db.saveItem(&snake);
|
||||
|
||||
QVERIFY(id == 0);
|
||||
resSnake = static_cast<decltype (resSnake)>(db.getItem(id));
|
||||
QVERIFY(resSnake);
|
||||
QVERIFY(snake.getSpeed() == resSnake->getSpeed());
|
||||
QVERIFY(snake.getSkillet() == resSnake->getSkillet());
|
||||
QVERIFY(snake.getSnakeClass() == resSnake->getSnakeClass());
|
||||
QVERIFY(snake.getClass() == resSnake->getClass());
|
||||
QVERIFY(snake.id() == resSnake->id());
|
||||
|
||||
resSnake->setSnakeClass(10);
|
||||
QVERIFY(id == db.saveItem(resSnake));
|
||||
QVERIFY(db.getItem(id).parse(resSnake));
|
||||
|
||||
auto temp = static_cast<decltype (resSnake)>(db.getItem(id));
|
||||
QVERIFY(snake.getSpeed() == resSnake.getSpeed());
|
||||
QVERIFY(snake.getSkillet() == resSnake.getSkillet());
|
||||
QVERIFY(snake.getSnakeClass() == resSnake.getSnakeClass());
|
||||
QVERIFY(snake.getClass() == resSnake.getClass());
|
||||
QVERIFY(snake.id() == resSnake.id());
|
||||
|
||||
QVERIFY(temp->getSnakeClass() == 10);
|
||||
resSnake.setSnakeClass(10);
|
||||
QVERIFY(id == db.saveItem(Item(&resSnake)));
|
||||
|
||||
delete temp;
|
||||
delete resSnake;
|
||||
ClientProtocol::Snake temp;
|
||||
QVERIFY(db.getItem(id).parse(temp));
|
||||
|
||||
QVERIFY(temp.getSnakeClass() == 10);
|
||||
|
||||
|
||||
// TEST PLAYER
|
||||
// // TEST PLAYER
|
||||
|
||||
PlayerDBData *player = new PlayerDBData();
|
||||
// PlayerDBData *player = new PlayerDBData();
|
||||
|
||||
player->setMany(10);
|
||||
player->setLastOnline(1000);
|
||||
player->setOnlineTime(1001);
|
||||
player->setName("test");
|
||||
player->setGmail("test@gmail.com");
|
||||
player->setCureentSnake(0);
|
||||
player->setToken(QCryptographicHash::hash("1", QCryptographicHash::Sha256));
|
||||
// player->setMany(10);
|
||||
// player->setLastOnline(1000);
|
||||
// player->setOnlineTime(1001);
|
||||
// player->setName("test");
|
||||
// player->setGmail("test@gmail.com");
|
||||
// player->setCureentSnake(0);
|
||||
// player->setToken(QCryptographicHash::hash("1", QCryptographicHash::Sha256));
|
||||
|
||||
QVERIFY(db.savePlayer(player) < 0);
|
||||
player->setId(0);
|
||||
// QVERIFY(db.savePlayer(player) < 0);
|
||||
// player->setId(0);
|
||||
|
||||
QVERIFY(db.savePlayer(player) < 0);
|
||||
player->setCureentSnake(-1);
|
||||
id = db.savePlayer(player);
|
||||
QVERIFY(id == 0);
|
||||
// QVERIFY(db.savePlayer(player) < 0);
|
||||
// player->setCureentSnake(-1);
|
||||
// id = db.savePlayer(player);
|
||||
// QVERIFY(id == 0);
|
||||
|
||||
QVERIFY(!db.saveowners(id, QSet<int>() << 1));
|
||||
QVERIFY(db.saveowners(id, QSet<int>() << 0));
|
||||
// QVERIFY(!db.saveowners(id, QSet<int>() << 1));
|
||||
// QVERIFY(db.saveowners(id, QSet<int>() << 0));
|
||||
|
||||
QSet<int> items;
|
||||
QVERIFY(db.getAllItemsOfPalyer(id, items));
|
||||
QVERIFY(items.contains(0));
|
||||
QVERIFY(items.size() == 1);
|
||||
// QSet<int> items;
|
||||
// QVERIFY(db.getAllItemsOfPalyer(id, items));
|
||||
// QVERIFY(items.contains(0));
|
||||
// QVERIFY(items.size() == 1);
|
||||
|
||||
|
||||
player->setCureentSnake(0);
|
||||
id = db.savePlayer(player);
|
||||
// player->setCureentSnake(0);
|
||||
// id = db.savePlayer(player);
|
||||
|
||||
auto resPlayer = static_cast<decltype (player)>(db.getPlayer(id));
|
||||
QVERIFY(resPlayer);
|
||||
QVERIFY(player->getLastOnline() == resPlayer->getLastOnline());
|
||||
QVERIFY(player->getMany() == resPlayer->getMany());
|
||||
QVERIFY(player->getOnlineTime() == resPlayer->getOnlineTime());
|
||||
QVERIFY(player->getName() == resPlayer->getName());
|
||||
QVERIFY(player->getCureentSnake() == resPlayer->getCureentSnake());
|
||||
// auto resPlayer = static_cast<decltype (player)>(db.getPlayer(id));
|
||||
// QVERIFY(resPlayer);
|
||||
// QVERIFY(player->getLastOnline() == resPlayer->getLastOnline());
|
||||
// QVERIFY(player->getMany() == resPlayer->getMany());
|
||||
// QVERIFY(player->getOnlineTime() == resPlayer->getOnlineTime());
|
||||
// QVERIFY(player->getName() == resPlayer->getName());
|
||||
// QVERIFY(player->getCureentSnake() == resPlayer->getCureentSnake());
|
||||
|
||||
|
||||
player->setCureentSnake(3);
|
||||
// player->setCureentSnake(3);
|
||||
|
||||
QVERIFY(db.savePlayer(player) < 0);
|
||||
player->setCureentSnake(0);
|
||||
player->setName("new");
|
||||
QVERIFY(db.savePlayer(player) == id);
|
||||
// QVERIFY(db.savePlayer(player) < 0);
|
||||
// player->setCureentSnake(0);
|
||||
// player->setName("new");
|
||||
// QVERIFY(db.savePlayer(player) == id);
|
||||
|
||||
auto tempPlayer = static_cast<decltype (player)>(db.getPlayer(id));
|
||||
// auto tempPlayer = static_cast<decltype (player)>(db.getPlayer(id));
|
||||
|
||||
QVERIFY(tempPlayer->getName() == "new");
|
||||
// QVERIFY(tempPlayer->getName() == "new");
|
||||
|
||||
delete tempPlayer;
|
||||
delete player;
|
||||
// delete tempPlayer;
|
||||
// delete player;
|
||||
|
||||
}
|
||||
|
||||
void testSankeServer::testSqlCache() {
|
||||
SqlDBCache db;
|
||||
// SqlDBCache db;
|
||||
|
||||
QFile::remove("./test.db");
|
||||
// QFile::remove("./test.db");
|
||||
|
||||
bool init = db.initDb("test.db", "./");
|
||||
// bool init = db.initDb("test.db", "./");
|
||||
|
||||
if (!init) {
|
||||
QFile::remove("./test.db");
|
||||
}
|
||||
// if (!init) {
|
||||
// QFile::remove("./test.db");
|
||||
// }
|
||||
|
||||
QVERIFY(init);
|
||||
// QVERIFY(init);
|
||||
|
||||
|
||||
ClientProtocol::Snake snake;
|
||||
snake.setSpeed(10);
|
||||
snake.setSkillet(QList<float>() << 1);
|
||||
snake.setSnakeClass(0);
|
||||
// ClientProtocol::Snake snake;
|
||||
// snake.setSpeed(10);
|
||||
// snake.setSkillet(QList<float>() << 1);
|
||||
// snake.setSnakeClass(0);
|
||||
|
||||
|
||||
// TEST ITEM
|
||||
// // TEST ITEM
|
||||
|
||||
ClientProtocol::Snake *resSnake;
|
||||
int id = db.saveItem(&snake);
|
||||
QVERIFY(id == 0);
|
||||
// ClientProtocol::Snake *resSnake;
|
||||
// int id = db.saveItem(&snake);
|
||||
// QVERIFY(id == 0);
|
||||
|
||||
resSnake = static_cast<decltype (resSnake)>(db.getItem(id));
|
||||
QVERIFY(resSnake);
|
||||
QVERIFY(snake.getSpeed() == resSnake->getSpeed());
|
||||
QVERIFY(snake.getSkillet() == resSnake->getSkillet());
|
||||
QVERIFY(snake.getSnakeClass() == resSnake->getSnakeClass());
|
||||
QVERIFY(snake.getClass() == resSnake->getClass());
|
||||
QVERIFY(snake.id() == resSnake->id());
|
||||
// resSnake = static_cast<decltype (resSnake)>(db.getItem(id));
|
||||
// QVERIFY(resSnake);
|
||||
// QVERIFY(snake.getSpeed() == resSnake->getSpeed());
|
||||
// QVERIFY(snake.getSkillet() == resSnake->getSkillet());
|
||||
// QVERIFY(snake.getSnakeClass() == resSnake->getSnakeClass());
|
||||
// QVERIFY(snake.getClass() == resSnake->getClass());
|
||||
// QVERIFY(snake.id() == resSnake->id());
|
||||
|
||||
resSnake->setSnakeClass(10);
|
||||
QVERIFY(id == db.saveItem(resSnake));
|
||||
// resSnake->setSnakeClass(10);
|
||||
// QVERIFY(id == db.saveItem(resSnake));
|
||||
|
||||
auto temp = static_cast<decltype (resSnake)>(db.getItem(id));
|
||||
// auto temp = static_cast<decltype (resSnake)>(db.getItem(id));
|
||||
|
||||
QVERIFY(temp->getSnakeClass() == 10);
|
||||
// QVERIFY(temp->getSnakeClass() == 10);
|
||||
|
||||
|
||||
// TEST PLAYER
|
||||
// // TEST PLAYER
|
||||
|
||||
PlayerDBData *player = new PlayerDBData();
|
||||
// PlayerDBData *player = new PlayerDBData();
|
||||
|
||||
player->setMany(10);
|
||||
player->setLastOnline(1000);
|
||||
player->setOnlineTime(1001);
|
||||
player->setName("test");
|
||||
player->setGmail("test@gmail.com");
|
||||
player->setCureentSnake(0);
|
||||
player->setToken(QCryptographicHash::hash("1", QCryptographicHash::Sha256));
|
||||
// player->setMany(10);
|
||||
// player->setLastOnline(1000);
|
||||
// player->setOnlineTime(1001);
|
||||
// player->setName("test");
|
||||
// player->setGmail("test@gmail.com");
|
||||
// player->setCureentSnake(0);
|
||||
// player->setToken(QCryptographicHash::hash("1", QCryptographicHash::Sha256));
|
||||
|
||||
QVERIFY(db.savePlayer(player) < 0);
|
||||
player->setCureentSnake(-1);
|
||||
id = db.savePlayer(player);
|
||||
QVERIFY(id == 0);
|
||||
// QVERIFY(db.savePlayer(player) < 0);
|
||||
// player->setCureentSnake(-1);
|
||||
// id = db.savePlayer(player);
|
||||
// QVERIFY(id == 0);
|
||||
|
||||
QVERIFY(!db.getItem(id, 1));
|
||||
QVERIFY(db.getItem(id, 0));
|
||||
// QVERIFY(!db.getItem(id, 1));
|
||||
// QVERIFY(db.getItem(id, 0));
|
||||
|
||||
player->setCureentSnake(0);
|
||||
QVERIFY(db.savePlayer(player) == id);
|
||||
// player->setCureentSnake(0);
|
||||
// QVERIFY(db.savePlayer(player) == id);
|
||||
|
||||
auto resPlayer = static_cast<decltype (player)>(db.getPlayer(id));
|
||||
QVERIFY(resPlayer);
|
||||
QVERIFY(player->getLastOnline() == resPlayer->getLastOnline());
|
||||
QVERIFY(player->getMany() == resPlayer->getMany());
|
||||
QVERIFY(player->getOnlineTime() == resPlayer->getOnlineTime());
|
||||
QVERIFY(player->getName() == resPlayer->getName());
|
||||
QVERIFY(player->getCureentSnake() == resPlayer->getCureentSnake());
|
||||
// auto resPlayer = static_cast<decltype (player)>(db.getPlayer(id));
|
||||
// QVERIFY(resPlayer);
|
||||
// QVERIFY(player->getLastOnline() == resPlayer->getLastOnline());
|
||||
// QVERIFY(player->getMany() == resPlayer->getMany());
|
||||
// QVERIFY(player->getOnlineTime() == resPlayer->getOnlineTime());
|
||||
// QVERIFY(player->getName() == resPlayer->getName());
|
||||
// QVERIFY(player->getCureentSnake() == resPlayer->getCureentSnake());
|
||||
|
||||
|
||||
player->setCureentSnake(3);
|
||||
// player->setCureentSnake(3);
|
||||
|
||||
QVERIFY(db.savePlayer(player) < 0);
|
||||
player->setCureentSnake(0);
|
||||
player->setName("new");
|
||||
QVERIFY(db.savePlayer(player) == id);
|
||||
// QVERIFY(db.savePlayer(player) < 0);
|
||||
// player->setCureentSnake(0);
|
||||
// player->setName("new");
|
||||
// QVERIFY(db.savePlayer(player) == id);
|
||||
|
||||
auto tempPlayer = static_cast<decltype (player)>(db.getPlayer(id));
|
||||
// auto tempPlayer = static_cast<decltype (player)>(db.getPlayer(id));
|
||||
|
||||
QVERIFY(tempPlayer->getName() == "new");
|
||||
// QVERIFY(tempPlayer->getName() == "new");
|
||||
|
||||
|
||||
PlayerDBData *second_player = new PlayerDBData();
|
||||
// PlayerDBData *second_player = new PlayerDBData();
|
||||
|
||||
second_player->setMany(10);
|
||||
second_player->setLastOnline(1000);
|
||||
second_player->setOnlineTime(1001);
|
||||
second_player->setName("test2");
|
||||
second_player->setGmail("test2@gmail.com");
|
||||
second_player->setCureentSnake(-1);
|
||||
second_player->setId(-1);
|
||||
second_player->setToken(QCryptographicHash::hash("1", QCryptographicHash::Sha256));
|
||||
// second_player->setMany(10);
|
||||
// second_player->setLastOnline(1000);
|
||||
// second_player->setOnlineTime(1001);
|
||||
// second_player->setName("test2");
|
||||
// second_player->setGmail("test2@gmail.com");
|
||||
// second_player->setCureentSnake(-1);
|
||||
// second_player->setId(-1);
|
||||
// second_player->setToken(QCryptographicHash::hash("1", QCryptographicHash::Sha256));
|
||||
|
||||
QVERIFY(db.savePlayer(second_player) == 1);
|
||||
// QVERIFY(db.savePlayer(second_player) == 1);
|
||||
|
||||
QVERIFY(db.moveItem(0, 1, 0));
|
||||
// QVERIFY(db.moveItem(0, 1, 0));
|
||||
|
||||
QSet<int> items;
|
||||
QVERIFY(db.getAllItemsOfPalyer(1, items));
|
||||
QVERIFY(items.contains(0));
|
||||
QVERIFY(items.size() == 1);
|
||||
// QSet<int> items;
|
||||
// QVERIFY(db.getAllItemsOfPalyer(1, items));
|
||||
// QVERIFY(items.contains(0));
|
||||
// QVERIFY(items.size() == 1);
|
||||
|
||||
db.updateInterval = 0;
|
||||
// db.updateInterval = 0;
|
||||
|
||||
db.globalUpdateDataBasePrivate(0);
|
||||
// db.globalUpdateDataBasePrivate(0);
|
||||
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user