diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2015-01-21 18:24:18 +0000 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2015-06-13 17:29:48 +0100 |
commit | 9bd436995308e581bdbdc783755f05df99fced47 (patch) | |
tree | 31c26349f8e5f565fad4cc6d291ac3f067c7036e | |
parent | Fix up and fully UT the setup from empty and maintenance process (diff) | |
download | p2pvr-9bd436995308e581bdbdc783755f05df99fced47.tar.bz2 p2pvr-9bd436995308e581bdbdc783755f05df99fced47.tar.xz p2pvr-9bd436995308e581bdbdc783755f05df99fced47.zip |
Improve test over events when references events exist
-rw-r--r-- | p2pvr/daemon/unittests/testMaint.cpp | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/p2pvr/daemon/unittests/testMaint.cpp b/p2pvr/daemon/unittests/testMaint.cpp index b399951..75f3a76 100644 --- a/p2pvr/daemon/unittests/testMaint.cpp +++ b/p2pvr/daemon/unittests/testMaint.cpp @@ -14,8 +14,11 @@ #include <linux/dvb/frontend.h> #include <definedDirs.h> #include "mockDefs.h" +#include "sqlSelectDeserializer.h" +#include "commonHelpers.h" +#include <slicer/slicer.h> -class Core { +class Core : public CommonObjects { public: Core() { @@ -206,17 +209,49 @@ BOOST_AUTO_TEST_CASE( GetService ) BOOST_AUTO_TEST_CASE( update_events ) { + BOOST_CHECKPOINT("Get a DB connection for faking stuff"); + auto db = this->dataSource<RdbmsDataSource>("postgres")->getReadonly(); // Naughty, but don't want txs + BOOST_CHECKPOINT("Write first events"); MockTuner::SetEventsSet(0); m->UpdateEvents(FE_OFDM); + auto dayOneEvents = s->EventSearch(IceUtil::Optional<std::string>(), IceUtil::Optional<int>(), + Common::DateTime {2014, 12, 18, 3, 0}, Common::DateTime {2014, 12, 19, 3, 0}); + BOOST_REQUIRE_EQUAL(dayOneEvents.size(), 3345); BOOST_REQUIRE(s->GetEvent(14448, 27052)); BOOST_REQUIRE_THROW(s->GetEvent(15856, 3591), P2PVR::NotFound); + BOOST_CHECKPOINT("Fake some recorded stuff"); + db->execute("INSERT INTO schedules(repeats) VALUES(false)"); + db->execute("INSERT INTO recorded(scheduleId, eventUid) VALUES(1, 3)"); + db->execute("INSERT INTO recordings(storageAddress, guid, scheduleId, eventUid) VALUES('', '', 1, 8)"); + auto keyEvents = s->GetEvents({3, 8}); + BOOST_REQUIRE_EQUAL(keyEvents.size(), 2); + BOOST_REQUIRE(keyEvents[0]->Current); + BOOST_REQUIRE_EQUAL(keyEvents[0]->StartTime, Common::DateTime({2014, 12, 18, 21, 0})); + BOOST_REQUIRE(keyEvents[1]->Current); + BOOST_REQUIRE_EQUAL(keyEvents[1]->StartTime, Common::DateTime({2014, 12, 17, 5, 30})); + BOOST_CHECKPOINT("Write second events"); MockTuner::SetEventsSet(1); m->UpdateEvents(FE_OFDM); BOOST_REQUIRE_THROW(s->GetEvent(14448, 27052), P2PVR::NotFound); BOOST_REQUIRE(s->GetEvent(15856, 3591)); + + BOOST_CHECKPOINT("Check our faked stuff is still there and right"); + auto dayOneEventsOnDayTwo = s->EventSearch(IceUtil::Optional<std::string>(), IceUtil::Optional<int>(), + Common::DateTime {2014, 12, 18, 3, 0}, Common::DateTime {2014, 12, 19, 3, 0}); + // Some datetime range overlap, but most are gone + BOOST_REQUIRE_EQUAL(dayOneEventsOnDayTwo.size(), 373); + BOOST_REQUIRE_EQUAL(std::count_if(dayOneEventsOnDayTwo.begin(), dayOneEventsOnDayTwo.end(), + [](const P2PVR::EventPtr & e) { return e->EventUid == 3 || e->EventUid == 8; }), 0); + auto keyEventsOnDayTwo = s->GetEvents({3, 8}); + BOOST_REQUIRE_EQUAL(keyEventsOnDayTwo.size(), 2); + BOOST_REQUIRE(!keyEventsOnDayTwo[0]->Current); + BOOST_REQUIRE(!keyEventsOnDayTwo[1]->Current); + + BOOST_REQUIRE_EQUAL(keyEvents[0]->Title, keyEventsOnDayTwo[0]->Title); + BOOST_REQUIRE_EQUAL(keyEvents[1]->Title, keyEventsOnDayTwo[1]->Title); } BOOST_AUTO_TEST_SUITE_END() |