From 9bd436995308e581bdbdc783755f05df99fced47 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Wed, 21 Jan 2015 18:24:18 +0000 Subject: Improve test over events when references events exist --- p2pvr/daemon/unittests/testMaint.cpp | 37 +++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) 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 #include #include "mockDefs.h" +#include "sqlSelectDeserializer.h" +#include "commonHelpers.h" +#include -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("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(), IceUtil::Optional(), + 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(), IceUtil::Optional(), + 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() -- cgit v1.2.3