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(); }
operator bool() 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(); }
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)
{
ScopedTrack track1 {session, ""};
+3 -3
View File
@@ -69,8 +69,8 @@ UsersView::refreshView()
auto transaction {LmsApp->getDbSession().createSharedTransaction()};
auto users = Database::User::getAll(LmsApp->getDbSession());
for (const auto& user : users)
const Database::User::pointer currentUser {LmsApp->getUser()};
for (const Database::User::pointer& user : Database::User::getAll(LmsApp->getDbSession()))
{
const Database::UserId userId {user->getId()};
@@ -86,7 +86,7 @@ UsersView::refreshView()
}
// Don't edit ourself this way
if (LmsApp->getUser() == user)
if (currentUser == user)
continue;
entry->setCondition("if-edit", true);