Browse Source

Harden ResourceManager::setFallback() test.

Removing a fallback should trigger update of the falled-back resources
as well. Works as expected.
dpi-change-events
Vladimír Vondruš 6 years ago
parent
commit
2322267af4
  1. 14
      src/Magnum/Test/ResourceManagerTest.cpp

14
src/Magnum/Test/ResourceManagerTest.cpp

@ -221,9 +221,15 @@ void ResourceManagerTest::state() {
void ResourceManagerTest::stateFallback() {
{
ResourceManager rm;
rm.setFallback(Containers::pointer<Data>());
/* Fetching a resource that's not loaded first */
Resource<Data> data = rm.get<Data>("data");
CORRADE_VERIFY(!data);
CORRADE_COMPARE(data.state(), ResourceState::NotLoaded);
CORRADE_COMPARE(rm.state<Data>("data"), ResourceState::NotLoaded);
/* Setting a fallback should make the resource fetch it */
rm.setFallback(Containers::pointer<Data>());
CORRADE_VERIFY(data);
CORRADE_COMPARE(data.state(), ResourceState::NotLoadedFallback);
CORRADE_COMPARE(rm.state<Data>("data"), ResourceState::NotLoadedFallback);
@ -240,6 +246,12 @@ void ResourceManagerTest::stateFallback() {
/* Only fallback is here */
CORRADE_COMPARE(Data::count, 1);
/* Unsetting a fallback should make the resource go back to empty */
rm.setFallback<Data>(nullptr);
CORRADE_VERIFY(!data);
CORRADE_COMPARE(data.state(), ResourceState::NotFound);
CORRADE_COMPARE(rm.state<Data>("data"), ResourceState::NotFound);
}
/* Fallback gets destroyed */

Loading…
Cancel
Save