mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-05-24 00:25:15 -04:00
EGD-3087 SMS Search implemented (#374)
* EGD-3087 WIP adding SMS Querry * EGD-3087 Added query virtual interface on Service top layer Service shouldn't implement query logic and should be proxying that. additionally: - small fixes in includes - shared service db name same way as apps and event manager * EGD-3087 Query - want to work on interface not on db * EGD-3087 Query gluecode works fine. Our query in SMS search calls getBySMSQuery Changes cut off before any potential orm interface layer * EGD-3087 WIP Interface in use * EGD-3087 Query for SMS search works as designed * EGD-3087 Query results should be on screen * EGD-3087 BUG workaround - need to deep refresh display to show data * EGD-3087 Searching for text from input works fine * EGD-3087 Showing results / or empty results depending on query * EGD-3087 Pre PR fixups * EGD-3087 Empty search - getting back to prewious window ignore current * EGD-3087 PR applied * EGD-3087 PR - style fixed * EGD-3087 Review - DB ListView handling moved to separate function * EGD-3087 Workaround: crash on use after free fix * EGD-3087 PR stylistic changes * EGD-3087 PR cleanup applied * EGD-3087 Added test for Query interface * EGD-3087 renamed getByQuery to getQuery & finished tests * EGD-3087 Post rebase fixup * EGD-3087 PR - moved ListView request part to separate function * EGD-3087 PR Fixups * EGD-3087 Post rebase style fix * EGD-3087 Added variable for DB service stack & const to getter function
This commit is contained in:
54
module-db/tests/QueryInterface.cpp
Normal file
54
module-db/tests/QueryInterface.cpp
Normal file
@@ -0,0 +1,54 @@
|
||||
#include "Common/Query.hpp"
|
||||
#include "Databases/ContactsDB.hpp"
|
||||
#include "Databases/SmsDB.hpp"
|
||||
#include "SMSRecord.hpp"
|
||||
#include "ThreadRecord.hpp"
|
||||
#include "catch.hpp"
|
||||
#include "../Database/Database.hpp"
|
||||
#include "queries/sms/QuerySMSSearch.hpp"
|
||||
#include <memory>
|
||||
|
||||
namespace db
|
||||
{
|
||||
|
||||
class TestQuery : public Query
|
||||
{
|
||||
public:
|
||||
[[nodiscard]] auto debugInfo() const -> std::string override
|
||||
{
|
||||
return "Test!";
|
||||
}
|
||||
};
|
||||
} // namespace db
|
||||
|
||||
TEST_CASE("Query interface")
|
||||
{
|
||||
Database::Initialize();
|
||||
auto contactsDB = std::make_unique<ContactsDB>();
|
||||
auto smsDB = std::make_unique<SmsDB>();
|
||||
auto smsInterface = std::make_unique<SMSRecordInterface>(smsDB.get(), contactsDB.get());
|
||||
auto threadInterface = std::make_unique<ThreadRecordInterface>(smsDB.get(), contactsDB.get());
|
||||
|
||||
REQUIRE(contactsDB);
|
||||
REQUIRE(smsDB);
|
||||
REQUIRE(smsInterface);
|
||||
|
||||
SECTION("unknown query -> no results")
|
||||
{
|
||||
REQUIRE(smsInterface->runQuery(std::make_unique<db::TestQuery>().get()) == nullptr);
|
||||
}
|
||||
|
||||
auto query = std::make_unique<db::query::SMSSearch>("a", 0, 10);
|
||||
|
||||
SECTION("known query, wrong interface")
|
||||
{
|
||||
auto result = smsInterface->runQuery(query.get());
|
||||
REQUIRE(result == nullptr);
|
||||
}
|
||||
|
||||
SECTION("proper result returned")
|
||||
{
|
||||
auto result = threadInterface->runQuery(query.get());
|
||||
REQUIRE(dynamic_cast<db::query::SMSSearchResult *>(result.get()));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user