From abdbada14470fc8481c3bd8fab72d6938f6cc6a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Tue, 12 Apr 2022 19:40:08 +0200 Subject: [PATCH] Trade: AbstractImporter::openFile() and openState() had no tests?! I wonder what the reason was. Too simple to be tested? Coverage from testing actual plugins was enough?? --- .../Trade/Test/AbstractImporterTest.cpp | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/src/Magnum/Trade/Test/AbstractImporterTest.cpp b/src/Magnum/Trade/Test/AbstractImporterTest.cpp index cb858d650..c60ee8285 100644 --- a/src/Magnum/Trade/Test/AbstractImporterTest.cpp +++ b/src/Magnum/Trade/Test/AbstractImporterTest.cpp @@ -84,8 +84,10 @@ struct AbstractImporterTest: TestSuite::Tester { void openDataDeprecatedFallback(); #endif void openMemory(); + void openFile(); void openFileAsData(); void openFileAsDataNotFound(); + void openState(); void openFileNotImplemented(); void openDataNotSupported(); @@ -383,8 +385,10 @@ AbstractImporterTest::AbstractImporterTest() { &AbstractImporterTest::openDataDeprecatedFallback, #endif &AbstractImporterTest::openMemory, + &AbstractImporterTest::openFile, &AbstractImporterTest::openFileAsData, &AbstractImporterTest::openFileAsDataNotFound, + &AbstractImporterTest::openState, &AbstractImporterTest::openFileNotImplemented, &AbstractImporterTest::openDataNotSupported, @@ -843,6 +847,28 @@ void AbstractImporterTest::openMemory() { CORRADE_VERIFY(!importer.isOpened()); } +void AbstractImporterTest::openFile() { + struct: AbstractImporter { + ImporterFeatures doFeatures() const override { return {}; } + bool doIsOpened() const override { return _opened; } + void doClose() override { _opened = false; } + + void doOpenFile(Containers::StringView filename) override { + CORRADE_COMPARE(filename, "yello.foo"); + _opened = true; + } + + bool _opened = false; + } importer; + + CORRADE_VERIFY(!importer.isOpened()); + CORRADE_VERIFY(importer.openFile("yello.foo")); + CORRADE_VERIFY(importer.isOpened()); + + importer.close(); + CORRADE_VERIFY(!importer.isOpened()); +} + void AbstractImporterTest::openFileAsData() { struct: AbstractImporter { ImporterFeatures doFeatures() const override { return ImporterFeature::OpenData; } @@ -895,6 +921,31 @@ void AbstractImporterTest::openFileAsDataNotFound() { TestSuite::Compare::StringHasSuffix); } +void AbstractImporterTest::openState() { + struct: AbstractImporter { + ImporterFeatures doFeatures() const override { + return ImporterFeature::OpenState; + } + bool doIsOpened() const override { return _opened; } + void doClose() override { _opened = false; } + + void doOpenState(const void* state, Containers::StringView filePath) override { + CORRADE_COMPARE(state, reinterpret_cast(0xbadcafe)); + CORRADE_COMPARE(filePath, "yello/foo/"); + _opened = true; + } + + bool _opened = false; + } importer; + + CORRADE_VERIFY(!importer.isOpened()); + CORRADE_VERIFY(importer.openState(reinterpret_cast(0xbadcafe), "yello/foo/")); + CORRADE_VERIFY(importer.isOpened()); + + importer.close(); + CORRADE_VERIFY(!importer.isOpened()); +} + void AbstractImporterTest::openFileNotImplemented() { #ifdef CORRADE_NO_ASSERT CORRADE_SKIP("CORRADE_NO_ASSERT defined, can't test assertions");