From c20d50bf5fa9e8db67b3c46daba3cec512057229 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Thu, 5 Jul 2018 20:59:27 +0200 Subject: [PATCH] Trade: test that PhongMaterialData acessors fail where they should. --- src/Magnum/Trade/CMakeLists.txt | 4 +-- src/Magnum/Trade/Test/CMakeLists.txt | 2 +- src/Magnum/Trade/Test/MaterialDataTest.cpp | 38 ++++++++++++++++++++++ 3 files changed, 41 insertions(+), 3 deletions(-) diff --git a/src/Magnum/Trade/CMakeLists.txt b/src/Magnum/Trade/CMakeLists.txt index 285c96089..9eb0e14b9 100644 --- a/src/Magnum/Trade/CMakeLists.txt +++ b/src/Magnum/Trade/CMakeLists.txt @@ -34,14 +34,14 @@ set(MagnumTrade_SRCS MeshData3D.cpp MeshObjectData2D.cpp MeshObjectData3D.cpp - PhongMaterialData.cpp SceneData.cpp TextureData.cpp) set(MagnumTrade_GracefulAssert_SRCS ImageData.cpp ObjectData2D.cpp - ObjectData3D.cpp) + ObjectData3D.cpp + PhongMaterialData.cpp) set(MagnumTrade_HEADERS AbstractImporter.h diff --git a/src/Magnum/Trade/Test/CMakeLists.txt b/src/Magnum/Trade/Test/CMakeLists.txt index 5c782c0a3..9a8c0e5de 100644 --- a/src/Magnum/Trade/Test/CMakeLists.txt +++ b/src/Magnum/Trade/Test/CMakeLists.txt @@ -43,7 +43,7 @@ target_include_directories(TradeAbstractImporterTest PRIVATE ${CMAKE_CURRENT_BIN corrade_add_test(TradeCameraDataTest CameraDataTest.cpp LIBRARIES MagnumTrade) corrade_add_test(TradeImageDataTest ImageDataTest.cpp LIBRARIES MagnumTradeTestLib) corrade_add_test(TradeLightDataTest LightDataTest.cpp LIBRARIES MagnumTrade) -corrade_add_test(TradeMaterialDataTest MaterialDataTest.cpp LIBRARIES MagnumTrade) +corrade_add_test(TradeMaterialDataTest MaterialDataTest.cpp LIBRARIES MagnumTradeTestLib) corrade_add_test(TradeMeshData2DTest MeshData2DTest.cpp LIBRARIES MagnumTrade) corrade_add_test(TradeMeshData3DTest MeshData3DTest.cpp LIBRARIES MagnumTrade) corrade_add_test(TradeObjectData2DTest ObjectData2DTest.cpp LIBRARIES MagnumTradeTestLib) diff --git a/src/Magnum/Trade/Test/MaterialDataTest.cpp b/src/Magnum/Trade/Test/MaterialDataTest.cpp index ed71bd005..174ba6cae 100644 --- a/src/Magnum/Trade/Test/MaterialDataTest.cpp +++ b/src/Magnum/Trade/Test/MaterialDataTest.cpp @@ -43,6 +43,9 @@ class MaterialDataTest: public TestSuite::Tester { void constructMovePhongNoDiffuseTexture(); void constructMovePhongNoSpecularTexture(); + void accessInvalidColors(); + void accessInvalidTextures(); + void debugType(); void debugPhongFlag(); void debugPhongFlags(); @@ -58,6 +61,9 @@ MaterialDataTest::MaterialDataTest() { &MaterialDataTest::constructMovePhongNoDiffuseTexture, &MaterialDataTest::constructMovePhongNoSpecularTexture, + &MaterialDataTest::accessInvalidColors, + &MaterialDataTest::accessInvalidTextures, + &MaterialDataTest::debugType, &MaterialDataTest::debugPhongFlag, &MaterialDataTest::debugPhongFlags}); @@ -235,6 +241,38 @@ void MaterialDataTest::constructMovePhongNoSpecularTexture() { CORRADE_COMPARE(d.shininess(), 80.0f); } +void MaterialDataTest::accessInvalidColors() { + std::ostringstream out; + Error redirectError{&out}; + + PhongMaterialData a{PhongMaterialData::Flag::AmbientTexture|PhongMaterialData::Flag::DiffuseTexture|PhongMaterialData::Flag::SpecularTexture, 80.0f}; + + a.ambientColor(); + a.diffuseColor(); + a.specularColor(); + + CORRADE_COMPARE(out.str(), + "Trade::PhongMaterialData::ambientColor(): the material has ambient texture\n" + "Trade::PhongMaterialData::diffuseColor(): the material has diffuse texture\n" + "Trade::PhongMaterialData::specularColor(): the material has specular texture\n"); +} + +void MaterialDataTest::accessInvalidTextures() { + std::ostringstream out; + Error redirectError{&out}; + + PhongMaterialData a{PhongMaterialData::Flags{}, 80.0f}; + + a.ambientTexture(); + a.diffuseTexture(); + a.specularTexture(); + + CORRADE_COMPARE(out.str(), + "Trade::PhongMaterialData::ambientTexture(): the material doesn't have ambient texture\n" + "Trade::PhongMaterialData::diffuseTexture(): the material doesn't have diffuse texture\n" + "Trade::PhongMaterialData::specularTexture(): the material doesn't have specular texture\n"); +} + void MaterialDataTest::debugType() { std::ostringstream out;