package com.ycwl.basic.puzzle.integration; import com.ycwl.basic.puzzle.element.base.BaseElement; import com.ycwl.basic.puzzle.element.base.ElementFactory; import com.ycwl.basic.puzzle.element.enums.ElementType; import com.ycwl.basic.puzzle.element.impl.ImageElement; import com.ycwl.basic.puzzle.element.impl.TextElement; import com.ycwl.basic.puzzle.entity.PuzzleElementEntity; import com.ycwl.basic.puzzle.test.PuzzleTestDataBuilder; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; /** * Element 调试测试 * 用于验证 Element 创建和配置是否正确 */ class ElementDebugTest { @BeforeAll static void registerElements() { ElementFactory.register(ElementType.TEXT, TextElement.class); ElementFactory.register(ElementType.IMAGE, ImageElement.class); } @Test void testCreateTextElement() { System.out.println("=== 测试创建 TEXT 元素 ==="); PuzzleElementEntity entity = PuzzleTestDataBuilder.createTextElement( 1L, "testText", 100, 200, 300, 50, 10, "测试文字", 24, "#333333" ); System.out.println("Entity elementType: " + entity.getElementType()); System.out.println("Entity config: " + entity.getConfig()); try { BaseElement element = ElementFactory.create(entity); System.out.println("✅ Element 创建成功"); System.out.println("Element type: " + element.getElementType()); System.out.println("Element key: " + element.getElementKey()); assertNotNull(element); } catch (Exception e) { System.err.println("❌ Element 创建失败: " + e.getMessage()); e.printStackTrace(); fail("Element 创建失败"); } } @Test void testCreateImageElement() { System.out.println("\n=== 测试创建 IMAGE 元素 ==="); PuzzleElementEntity entity = PuzzleTestDataBuilder.createImageElement( 1L, "testImage", 50, 100, 100, 100, 5, "https://example.com/test.jpg" ); System.out.println("Entity elementType: " + entity.getElementType()); System.out.println("Entity config: " + entity.getConfig()); try { BaseElement element = ElementFactory.create(entity); System.out.println("✅ Element 创建成功"); System.out.println("Element type: " + element.getElementType()); System.out.println("Element key: " + element.getElementKey()); assertNotNull(element); } catch (Exception e) { System.err.println("❌ Element 创建失败: " + e.getMessage()); e.printStackTrace(); fail("Element 创建失败"); } } @Test void testRealScenarioElements() { System.out.println("\n=== 测试现实场景元素创建 ==="); var elements = PuzzleTestDataBuilder.createRealScenarioElements(1L); System.out.println("元素数量: " + elements.size()); int successCount = 0; for (PuzzleElementEntity entity : elements) { System.out.println("\n--- 测试元素: " + entity.getElementKey() + " ---"); System.out.println("Type: " + entity.getElementType()); System.out.println("Config: " + entity.getConfig()); try { BaseElement element = ElementFactory.create(entity); System.out.println("✅ 创建成功"); successCount++; } catch (Exception e) { System.err.println("❌ 创建失败: " + e.getMessage()); e.printStackTrace(); } } System.out.println("\n总结: " + successCount + "/" + elements.size() + " 个元素创建成功"); assertEquals(elements.size(), successCount, "所有元素都应该创建成功"); } }