错误处理
This commit is contained in:
@@ -130,7 +130,7 @@ TEST(scene_base_test, attach_builder_can_build_complete_initial_topology) {
|
||||
TEST(scene_base_test, attach_builder_rejects_null_renderable) {
|
||||
Scene2D_Context<> scene;
|
||||
auto builder = scene.attach_builder();
|
||||
EXPECT_THROW(builder.attach({}), std::invalid_argument);
|
||||
EXPECT_EQ(builder.attach({}), Scene_Edit_Error::null_renderable);
|
||||
}
|
||||
TEST(scene_base_test, one_runtime_callback_attaches_multiple_renderables) {
|
||||
Scene2D_Context<> scene;
|
||||
@@ -269,7 +269,7 @@ TEST(scene_base_test, detached_renderable_cannot_migrate_to_another_scene) {
|
||||
});
|
||||
EXPECT_EQ(first_scene.renderable_count(), 0u);
|
||||
auto builder = second_scene.attach_builder();
|
||||
EXPECT_THROW(builder.attach(renderable), std::invalid_argument);
|
||||
EXPECT_EQ(builder.attach(renderable), Scene_Edit_Error::foreign_renderable);
|
||||
}
|
||||
TEST(scene_base_test, dependency_edit_invalidates_cached_child_prepare) {
|
||||
Scene2D_Context<> scene;
|
||||
@@ -476,9 +476,18 @@ TEST(scene_base_test, invalid_runtime_edit_rolls_back_complete_topology) {
|
||||
EXPECT_EQ(restored.renderables, topology.renderables);
|
||||
EXPECT_EQ(restored.display.size(), topology.display.size());
|
||||
ASSERT_EQ(restored.dependency.size(), topology.dependency.size());
|
||||
ASSERT_EQ(restored.dependency.size(), 1u);
|
||||
EXPECT_EQ(restored.dependency[0].child, topology.dependency[0].child);
|
||||
EXPECT_EQ(restored.dependency[0].parent, topology.dependency[0].parent);
|
||||
const auto restored_edge = std::ranges::find_if(
|
||||
restored.dependency, [](const auto& relationship) {
|
||||
return static_cast<bool>(relationship.parent);
|
||||
});
|
||||
const auto original_edge = std::ranges::find_if(
|
||||
topology.dependency, [](const auto& relationship) {
|
||||
return static_cast<bool>(relationship.parent);
|
||||
});
|
||||
ASSERT_NE(restored_edge, restored.dependency.end());
|
||||
ASSERT_NE(original_edge, topology.dependency.end());
|
||||
EXPECT_EQ(restored_edge->child, original_edge->child);
|
||||
EXPECT_EQ(restored_edge->parent, original_edge->parent);
|
||||
scene.render();
|
||||
EXPECT_NO_THROW(scene.wait_for_render());
|
||||
EXPECT_EQ(parent->render_count, 1);
|
||||
|
||||
Reference in New Issue
Block a user