// no transactions -> UNKNOWN reason void TransactionItemReasonTest::testNoTransaction() { Swdb swdb(conn); CPPUNIT_ASSERT_EQUAL(static_cast< TransactionItemReason >( swdb.resolveRPMTransactionItemReason("bash", "x86_64", -1)), TransactionItemReason::UNKNOWN); }
// two transactions with two transaction items -> $reason void TransactionItemReasonTest::test_TwoTransactions_TwoTransactionItems() { Swdb swdb(conn); { swdb.initTransaction(); auto rpm_bash = std::make_shared< RPMItem >(conn); rpm_bash->setName("bash"); rpm_bash->setEpoch(0); rpm_bash->setVersion("4.4.12"); rpm_bash->setRelease("5.fc26"); rpm_bash->setArch("x86_64"); std::string repoid = "base"; TransactionItemAction action = TransactionItemAction::INSTALL; TransactionItemReason reason = TransactionItemReason::GROUP; swdb.addItem(rpm_bash, repoid, action, reason); swdb.beginTransaction(1, "", "", 0); swdb.endTransaction(2, "", true); } { swdb.initTransaction(); auto rpm_bash = std::make_shared< RPMItem >(conn); rpm_bash->setName("bash"); rpm_bash->setEpoch(0); rpm_bash->setVersion("4.4.12"); rpm_bash->setRelease("5.fc26"); rpm_bash->setArch("i686"); std::string repoid = "base"; TransactionItemAction action = TransactionItemAction::INSTALL; TransactionItemReason reason = TransactionItemReason::USER; swdb.addItem(rpm_bash, repoid, action, reason); swdb.beginTransaction(1, "", "", 0); swdb.endTransaction(2, "", true); } // package exists -> $reason CPPUNIT_ASSERT_EQUAL(static_cast< TransactionItemReason >( swdb.resolveRPMTransactionItemReason("bash", "x86_64", -1)), TransactionItemReason::GROUP); // package exists -> $reason CPPUNIT_ASSERT_EQUAL(static_cast< TransactionItemReason >( swdb.resolveRPMTransactionItemReason("bash", "i686", -1)), TransactionItemReason::USER); // 2 packages exists, arch not specified -> return best $reason CPPUNIT_ASSERT_EQUAL( static_cast< TransactionItemReason >(swdb.resolveRPMTransactionItemReason("bash", "", -1)), TransactionItemReason::USER); }
// one transaction with no transaction items -> UNKNOWN reason void TransactionItemReasonTest::testEmptyTransaction() { Swdb swdb(conn); swdb.initTransaction(); swdb.beginTransaction(1, "", "", 0); swdb.endTransaction(2, "", true); CPPUNIT_ASSERT_EQUAL(static_cast< TransactionItemReason >( swdb.resolveRPMTransactionItemReason("bash", "x86_64", -1)), TransactionItemReason::UNKNOWN); }
TEST_F(SwdbTest, StoreRecords) { Swdb swdb("test.db"); EXPECT_TRUE(swdb.init()); uRecord pkg1 = swdb.urecord("pkgs"); pkg1->set("name", "xxx.noarch"); EXPECT_TRUE(pkg1->save()); uQuery q = swdb.uquery("pkgs"); q->filter("name", "xxx.noarch", Query::EQ); auto it = q->begin(); Record record = *it; string name; EXPECT_TRUE(record.get("name", name)); EXPECT_EQ(1, record.id()); EXPECT_EQ("xxx.noarch", name); ++it; EXPECT_TRUE(it == q->end()); }
// one FAILED transaction with one transaction item -> $reason void TransactionItemReasonTest::test_OneFailedTransaction_OneTransactionItem() { Swdb swdb(conn); swdb.initTransaction(); auto rpm_bash = std::make_shared< RPMItem >(conn); rpm_bash->setName("bash"); rpm_bash->setEpoch(0); rpm_bash->setVersion("4.4.12"); rpm_bash->setRelease("5.fc26"); rpm_bash->setArch("x86_64"); std::string repoid = "base"; TransactionItemAction action = TransactionItemAction::INSTALL; TransactionItemReason reason = TransactionItemReason::GROUP; swdb.addItem(rpm_bash, repoid, action, reason); swdb.beginTransaction(1, "", "", 0); swdb.endTransaction(2, "", false); // failed transaction -> UNKNOWN CPPUNIT_ASSERT_EQUAL(static_cast< TransactionItemReason >( swdb.resolveRPMTransactionItemReason("bash", "x86_64", -1)), TransactionItemReason::UNKNOWN); // failed transaction -> UNKNOWN CPPUNIT_ASSERT_EQUAL(static_cast< TransactionItemReason >( swdb.resolveRPMTransactionItemReason("bash", "i686", -1)), TransactionItemReason::UNKNOWN); // failed transaction -> UNKNOWN CPPUNIT_ASSERT_EQUAL( static_cast< TransactionItemReason >(swdb.resolveRPMTransactionItemReason("bash", "", -1)), TransactionItemReason::UNKNOWN); }