Fixed regression on db object comparison, fixes #178

This commit is contained in:
emeric
2021-10-10 20:37:27 +02:00
parent 617139c2f4
commit 1c29962606
3 changed files with 19 additions and 3 deletions
@@ -105,6 +105,8 @@ namespace Database
const T* operator->() const { return _obj.get(); } const T* operator->() const { return _obj.get(); }
operator bool() const { return _obj.get(); } operator bool() const { return _obj.get(); }
bool operator!() const { return !_obj.get(); } bool operator!() const { return !_obj.get(); }
bool operator==(const ObjectPtr& other) const { return other._obj == _obj; }
bool operator!=(const ObjectPtr& other) const { return other._obj != _obj; }
auto modify() { return _obj.modify(); } auto modify() { return _obj.modify(); }
void remove() { _obj.remove(); } void remove() { _obj.remove(); }
+14
View File
@@ -45,6 +45,20 @@ TEST_F(DatabaseFixture, SingleTrack)
} }
} }
TEST_F(DatabaseFixture, MultipleTracks)
{
ScopedTrack track1 {session, "MyTrackFile1"};
ScopedTrack track2 {session, "MyTrackFile2"};
{
auto transaction {session.createSharedTransaction()};
EXPECT_TRUE(track1.getId() != track2.getId());
EXPECT_TRUE(track1.get() != track2.get());
EXPECT_FALSE(track1.get() == track2.get());
}
}
TEST_F(DatabaseFixture, MultipleTracksSearchByFilter) TEST_F(DatabaseFixture, MultipleTracksSearchByFilter)
{ {
ScopedTrack track1 {session, ""}; ScopedTrack track1 {session, ""};
+3 -3
View File
@@ -69,8 +69,8 @@ UsersView::refreshView()
auto transaction {LmsApp->getDbSession().createSharedTransaction()}; auto transaction {LmsApp->getDbSession().createSharedTransaction()};
auto users = Database::User::getAll(LmsApp->getDbSession()); const Database::User::pointer currentUser {LmsApp->getUser()};
for (const auto& user : users) for (const Database::User::pointer& user : Database::User::getAll(LmsApp->getDbSession()))
{ {
const Database::UserId userId {user->getId()}; const Database::UserId userId {user->getId()};
@@ -86,7 +86,7 @@ UsersView::refreshView()
} }
// Don't edit ourself this way // Don't edit ourself this way
if (LmsApp->getUser() == user) if (currentUser == user)
continue; continue;
entry->setCondition("if-edit", true); entry->setCondition("if-edit", true);