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
|
// Copyright Contributors to the DNF5 project.
// Copyright Contributors to the libdnf project.
// SPDX-License-Identifier: GPL-2.0-or-later
//
// This file is part of libdnf: https://github.com/rpm-software-management/libdnf/
//
// Libdnf is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 2 of the License, or
// (at your option) any later version.
//
// Libdnf 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 General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with libdnf. If not, see <https://www.gnu.org/licenses/>.
#include "test_query.hpp"
#include "../shared/private_accessor.hpp"
#include <libdnf5/transaction/transaction.hpp>
#include <string>
using namespace libdnf5::transaction;
CPPUNIT_TEST_SUITE_REGISTRATION(TransactionQueryTest);
namespace {
// Allows accessing private methods
create_private_getter_template;
create_getter(start, &libdnf5::transaction::Transaction::start);
create_getter(finish, &libdnf5::transaction::Transaction::finish);
create_getter(new_transaction, &libdnf5::transaction::TransactionHistory::new_transaction);
} //namespace
void TransactionQueryTest::test_filter_id_eq() {
auto base = new_base();
// create a new empty transaction
libdnf5::transaction::TransactionHistory history(base->get_weak_ptr());
auto trans = (history.*get(new_transaction{}))();
// save the transaction
(trans.*get(start{}))();
(trans.*get(finish{}))(TransactionState::OK);
// create a new Base to force reading the transaction from disk
auto base2 = new_base();
// get the written transaction
libdnf5::transaction::TransactionHistory history2(base2->get_weak_ptr());
auto ts_list = history2.list_transactions({trans.get_id()});
CPPUNIT_ASSERT_EQUAL((size_t)1, ts_list.size());
}
|