From 8c7de5cb6e24e40adc5bd4575ce7e9eae457b047 Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 22 Mar 2024 11:17:03 +0100 Subject: [PATCH] Tests: add unit test to check OCCT behaviour --- tests/src/Mod/Part/App/CMakeLists.txt | 1 + tests/src/Mod/Part/App/TopoDS_Shape.cpp | 38 +++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 tests/src/Mod/Part/App/TopoDS_Shape.cpp diff --git a/tests/src/Mod/Part/App/CMakeLists.txt b/tests/src/Mod/Part/App/CMakeLists.txt index 6f47a52112..ac2d513352 100644 --- a/tests/src/Mod/Part/App/CMakeLists.txt +++ b/tests/src/Mod/Part/App/CMakeLists.txt @@ -20,6 +20,7 @@ target_sources( ${CMAKE_CURRENT_SOURCE_DIR}/PartFeatures.cpp ${CMAKE_CURRENT_SOURCE_DIR}/PartTestHelpers.cpp ${CMAKE_CURRENT_SOURCE_DIR}/PropertyTopoShape.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/TopoDS_Shape.cpp ${CMAKE_CURRENT_SOURCE_DIR}/TopoShape.cpp ${CMAKE_CURRENT_SOURCE_DIR}/TopoShapeCache.cpp ${CMAKE_CURRENT_SOURCE_DIR}/TopoShapeExpansion.cpp diff --git a/tests/src/Mod/Part/App/TopoDS_Shape.cpp b/tests/src/Mod/Part/App/TopoDS_Shape.cpp new file mode 100644 index 0000000000..404510047d --- /dev/null +++ b/tests/src/Mod/Part/App/TopoDS_Shape.cpp @@ -0,0 +1,38 @@ +// SPDX-License-Identifier: LGPL-2.1-or-later + +#include "gtest/gtest.h" +#include +#include +#include +#include +#include + +// NOLINTBEGIN +// clang-format off +TEST(TopoDS_Shape, TestCastEdgeToVertex) +{ + BRepBuilderAPI_MakeEdge mkEdge(gp_Pnt(0, 0, 0), gp_Pnt(10, 0, 0)); + TopoDS_Edge edge = mkEdge.Edge(); + TopoDS_Vertex vertex; + EXPECT_THROW(vertex = TopoDS::Vertex(edge), Standard_TypeMismatch); + EXPECT_TRUE(vertex.IsNull()); +} + +TEST(TopoDS_Shape, TestCastNullVertex) +{ + TopoDS_Vertex vertex1; + TopoDS_Vertex vertex2; + EXPECT_NO_THROW(vertex2 = TopoDS::Vertex(vertex1)); + EXPECT_TRUE(vertex2.IsNull()); +} + +TEST(TopoDS_Shape, TestCastNullEdge) +{ + TopoDS_Edge edge; + TopoDS_Vertex vertex; + EXPECT_NO_THROW(vertex = TopoDS::Vertex(edge)); + EXPECT_TRUE(vertex.IsNull()); +} + +// clang-format on +// NOLINTEND