diff --git a/pom.xml b/pom.xml index a794d14..d7abf84 100644 --- a/pom.xml +++ b/pom.xml @@ -23,6 +23,12 @@ spring-boot-starter-logging + + com.jayway.jsonpath + json-path + 2.4.0 + + net.sourceforge.plantuml plantuml @@ -49,12 +55,6 @@ org.springframework.boot spring-boot-starter-test test - - - org.junit.vintage - junit-vintage-engine - - @@ -69,4 +69,6 @@ + + \ No newline at end of file diff --git a/src/main/java/com/yame/uml/Application.java b/src/main/java/com/yame/uml/Application.java index 35b7385..3004a68 100644 --- a/src/main/java/com/yame/uml/Application.java +++ b/src/main/java/com/yame/uml/Application.java @@ -2,8 +2,12 @@ package com.yame.uml; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; @SpringBootApplication +@Configuration + public class Application { public static void main(String[] args) { diff --git a/src/main/java/com/yame/uml/control/api.java b/src/main/java/com/yame/uml/control/API.java similarity index 87% rename from src/main/java/com/yame/uml/control/api.java rename to src/main/java/com/yame/uml/control/API.java index ca04103..5566bc4 100644 --- a/src/main/java/com/yame/uml/control/api.java +++ b/src/main/java/com/yame/uml/control/API.java @@ -19,12 +19,13 @@ import net.sourceforge.plantuml.FileFormat; import net.sourceforge.plantuml.FileFormatOption; import net.sourceforge.plantuml.SourceStringReader; import net.sourceforge.plantuml.core.Diagram; +import net.sourceforge.plantuml.core.UmlSource; import net.sourceforge.plantuml.error.PSystemError; @RestController @RequestMapping("/api") @Slf4j -public class api { +public class API { static public String getUmlSource(String source) { // encapsulate the UML syntax if necessary @@ -45,7 +46,7 @@ public class api { } @PostMapping("/v1/megreflow") - public Result megreSVG(@RequestParam("src") String src, @RequestParam("dst") String dst) throws IOException { + public Result megreSVG(@RequestParam("src") String src, @RequestParam("dst") String dst) throws IOException { String source = getUmlSource(src); List srcblocks = new SourceStringReader(source).getBlocks(); @@ -54,9 +55,14 @@ public class api { Result result = new Result(); - if(srcblocks.size() != 0 && dstblocks.size() != 0) { + if (srcblocks.size() != 0 && dstblocks.size() != 0) { + BlockUml sblock = srcblocks.get(0); + BlockUml dblock = srcblocks.get(0); + Diagram d1 = sblock.getDiagram(); + Diagram d2 = dblock.getDiagram(); - + UmlSource s1 = d1.getSource(); + UmlSource s2 = d2.getSource(); } result.setType(ResultType.ErrorMegreUML2SVG); return result; diff --git a/src/test/java/com/yame/control/TestAPI.java b/src/test/java/com/yame/control/TestAPI.java index 9785fff..a375cd8 100644 --- a/src/test/java/com/yame/control/TestAPI.java +++ b/src/test/java/com/yame/control/TestAPI.java @@ -1,12 +1,63 @@ package com.yame.control; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Configurable; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.web.client.TestRestTemplate; +import org.springframework.boot.web.server.LocalServerPort; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; + +import static org.junit.Assert.*; + +import java.util.HashMap; + +import com.fasterxml.jackson.core.JsonEncoding; +import com.jayway.jsonpath.DocumentContext; +import com.jayway.jsonpath.JsonPath; +import com.jayway.jsonpath.ReadContext; +import com.yame.uml.Application; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; + +import lombok.extern.slf4j.Slf4j; /** * TestAPI */ -@SpringBootTest + + +@RunWith(SpringJUnit4ClassRunner.class) +@SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +@Slf4j public class TestAPI { + @LocalServerPort + String port; + + @Autowired + TestRestTemplate rest; + + String domain; + + @Before + public void init() { + domain = "http://localhost:" + port; + } + @Test + public void uml2SVG() { + + MultiValueMap map = new LinkedMultiValueMap<>(); + map.add("data", "123"); + String resp = rest.postForObject(domain + "/api/v1/uml2svg", map, String.class); + ReadContext cxt = JsonPath.parse(resp); + assertEquals(cxt.read("$.type").toString(), "{desc=Error Source2SVG, code=-102, success=false}"); + + log.info(resp.toString()); + } } \ No newline at end of file