From 2322267af4d532d5f189d4bfb3aeb04a7e7ab63d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Fri, 14 Feb 2020 13:42:10 +0100 Subject: [PATCH] Harden ResourceManager::setFallback() test. Removing a fallback should trigger update of the falled-back resources as well. Works as expected. --- src/Magnum/Test/ResourceManagerTest.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Magnum/Test/ResourceManagerTest.cpp b/src/Magnum/Test/ResourceManagerTest.cpp index 89a68179a..9e0dfed69 100644 --- a/src/Magnum/Test/ResourceManagerTest.cpp +++ b/src/Magnum/Test/ResourceManagerTest.cpp @@ -221,9 +221,15 @@ void ResourceManagerTest::state() { void ResourceManagerTest::stateFallback() { { ResourceManager rm; - rm.setFallback(Containers::pointer()); + /* Fetching a resource that's not loaded first */ Resource data = rm.get("data"); + CORRADE_VERIFY(!data); + CORRADE_COMPARE(data.state(), ResourceState::NotLoaded); + CORRADE_COMPARE(rm.state("data"), ResourceState::NotLoaded); + + /* Setting a fallback should make the resource fetch it */ + rm.setFallback(Containers::pointer()); CORRADE_VERIFY(data); CORRADE_COMPARE(data.state(), ResourceState::NotLoadedFallback); CORRADE_COMPARE(rm.state("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(nullptr); + CORRADE_VERIFY(!data); + CORRADE_COMPARE(data.state(), ResourceState::NotFound); + CORRADE_COMPARE(rm.state("data"), ResourceState::NotFound); } /* Fallback gets destroyed */