|
@@ -0,0 +1,60 @@
|
|
|
+package com.yomahub.liteflow.test.aop;
|
|
|
+
|
|
|
+import com.yomahub.liteflow.core.FlowExecutor;
|
|
|
+import com.yomahub.liteflow.flow.LiteflowResponse;
|
|
|
+import com.yomahub.liteflow.slot.DefaultContext;
|
|
|
+import com.yomahub.liteflow.test.BaseTest;
|
|
|
+import com.yomahub.liteflow.test.aop.aspect.CustomAspect;
|
|
|
+import org.junit.jupiter.api.Assertions;
|
|
|
+import org.junit.jupiter.api.Test;
|
|
|
+import org.junit.jupiter.api.extension.ExtendWith;
|
|
|
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
|
|
+import org.springframework.boot.test.context.SpringBootTest;
|
|
|
+import org.springframework.context.annotation.ComponentScan;
|
|
|
+import org.springframework.context.annotation.Import;
|
|
|
+import org.springframework.test.context.TestPropertySource;
|
|
|
+import org.springframework.test.context.junit.jupiter.SpringExtension;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 切面场景单元测试 在声明式组件场景中,自定义aspect的aop不生效的,因为生成的代理类并不是原类,也不是原类的子类,而是NodeComponent的子类
|
|
|
+ * 所以切不到,暂且没有想出办法来解决,这个测试类暂时不用
|
|
|
+ *
|
|
|
+ * @author Bryan.Zhang
|
|
|
+ */
|
|
|
+@ExtendWith(SpringExtension.class)
|
|
|
+@TestPropertySource(value = "classpath:/aop/application.properties")
|
|
|
+@SpringBootTest(classes = CustomAOPELDeclMultiSpringbootTest.class)
|
|
|
+@EnableAutoConfiguration
|
|
|
+@Import(CustomAspect.class)
|
|
|
+@ComponentScan({"com.yomahub.liteflow.test.aop.cmp1","com.yomahub.liteflow.test.aop.cmp2"})
|
|
|
+
|
|
|
+public class CustomAOPELDeclMultiSpringbootTest extends BaseTest {
|
|
|
+
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private FlowExecutor flowExecutor;
|
|
|
+
|
|
|
+ //测试自定义AOP,串行场景
|
|
|
+ @Test
|
|
|
+ public void testCustomAopS() {
|
|
|
+ LiteflowResponse response = flowExecutor.execute2Resp("chain1", "it's a request");
|
|
|
+ DefaultContext context = response.getFirstContextBean();
|
|
|
+ Assertions.assertTrue(response.isSuccess());
|
|
|
+ Assertions.assertEquals("before_after", context.getData("a"));
|
|
|
+ Assertions.assertEquals("before_after", context.getData("b"));
|
|
|
+ Assertions.assertEquals("before_after", context.getData("c"));
|
|
|
+ }
|
|
|
+
|
|
|
+ //测试自定义AOP,并行场景
|
|
|
+ @Test
|
|
|
+ public void testCustomAopP() {
|
|
|
+ LiteflowResponse response = flowExecutor.execute2Resp("chain2", "it's a request");
|
|
|
+ DefaultContext context = response.getFirstContextBean();
|
|
|
+ Assertions.assertTrue(response.isSuccess());
|
|
|
+ Assertions.assertEquals("before_after", context.getData("a"));
|
|
|
+ Assertions.assertEquals("before_after", context.getData("b"));
|
|
|
+ Assertions.assertEquals("before_after", context.getData("c"));
|
|
|
+ }
|
|
|
+}
|