diff --git a/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/SpringBootCallable.java b/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/SpringBootCallable.java index 614823b0..73663584 100644 --- a/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/SpringBootCallable.java +++ b/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/SpringBootCallable.java @@ -693,8 +693,6 @@ public class SpringBootCallable implements Callable { freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), "DICT_ITEM.sql"), option + "/resources/dbtool/system/DICT_ITEM.sql", ctx); freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), "FILE.sql"), option + "/resources/dbtool/system/FILE.sql", ctx); } - - } public void generateTestResources(File root, Project project, DataBase dataBase, String option) { @@ -707,6 +705,7 @@ public class SpringBootCallable implements Callable { ctx.put("author", project.getProjectAuthor()); ctx.put("dBmapper", dBmapper); ctx.put("date", new Date()); + ctx.put("cloud", cloud); freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "application.properties"), option + "/test/application.properties", ctx); Tool.outputResource(option + "/test/logback-spring.xml", Tool.createFile(root.getAbsolutePath(), "logback-spring.xml")); } @@ -850,6 +849,19 @@ public class SpringBootCallable implements Callable { freeMarkerManager.outputTemp(file, option + "/test/UtilTest.java", ctx); } + { + HashMap ctx = new HashMap(); + ctx.put("tool", Tool.class); + ctx.put("basePackage", project.getProjectBasePackage()); + ctx.put("moduleName", project.getProjectName()); + ctx.put("author", project.getProjectAuthor()); + ctx.put("date", new Date()); + File system = Tool.createPath(root.getAbsolutePath(), "system"); + freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), "DictItemTest.java"), option + "/test/system/DictItemTest.java", ctx); + freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), "DictTest.java"), option + "/test/system/DictTest.java", ctx); + freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), "FileTest.java"), option + "/test/system/FileTest.java", ctx); + } + for (Module md : project.getModules()) { File module = Tool.createPath(root.getAbsolutePath(), md.getModuleName()); diff --git a/src/main/resources/modules/Java_api/pom.xml b/src/main/resources/modules/Java_api/pom.xml index 632797a5..c3bdfa5c 100644 --- a/src/main/resources/modules/Java_api/pom.xml +++ b/src/main/resources/modules/Java_api/pom.xml @@ -29,6 +29,7 @@ junit junit 4.12 + test @@ -76,6 +77,10 @@ false false + + compile + + test diff --git a/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictManagerImpl.java b/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictManagerImpl.java index 7b31b06b..16024c4e 100644 --- a/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictManagerImpl.java +++ b/src/main/resources/modules/SpringBoot/java/module/system/mgr/DictManagerImpl.java @@ -190,6 +190,7 @@ public class DictManagerImpl implements DictManager { response.addError(ErrorType.BUSINESS_ERROR, "字典重复异常,请联系管理员"); return response; } + response.setDict(dicts.get(0)); DictItemFindRequest dictItemFindRequest = new DictItemFindRequest(); dictItemFindRequest.setDictName(request.getDictName()); diff --git a/src/main/resources/modules/SpringBoot/test/application.properties b/src/main/resources/modules/SpringBoot/test/application.properties index 65dcef65..d81124f4 100644 --- a/src/main/resources/modules/SpringBoot/test/application.properties +++ b/src/main/resources/modules/SpringBoot/test/application.properties @@ -1,26 +1,22 @@ -# 测试环境 +# 开发环境 server.port=8080 -server.servlet.context-path=/ +server.servlet.context-path= spring.mvc.static-path-pattern=/static/** -spring.resources.static-locations=classpath:static/ +spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:/file-upload spring.application.name=${projectName?default("SpringBoot")} spring.main.banner-mode=CONSOLE spring.devtools.restart.enabled=true +<#if cloud> +eureka.client.serviceUrl.defaultZone=http://localhost:18080/eureka/ + # 编码配置 spring.http.encoding.force=true spring.http.encoding.charset=UTF-8 spring.http.encoding.enabled=true server.tomcat.uri-encoding=UTF-8 -# 根路径、欢迎页 -web.welcome.page=/index.htm -# 需要验证授权, 既访问时组装Token -web.url.auth.included=/** -# 不需要验证授权, 或该请求有自己的验证机制 -web.url.auth.excluded=/favicon.ico,/static/**,/module,/login.htm # 日志配置 logging.path=D:// logging.levels=DEBUG -logging.config=classpath:logback-config.xml <#if dataBase == 'ORACLE'> # oracle spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver @@ -31,21 +27,22 @@ spring.datasource.password=123456 <#if dataBase == 'MYSQL'> # mysql spring.datasource.driver-class-name=com.mysql.jdbc.Driver -spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8 +spring.datasource.url=jdbc:mysql://192.168.31.81:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.username=test spring.datasource.password=123456 # mybatis mybatis.mapper-locations=classpath:**/mpr/*.xml +mybatis.configuration.map-underscore-to-camel-case=true # pagehelper pagehelper.autoRuntimeDialect=true -pagehelper.reasonable=true +pagehelper.reasonable=false pagehelper.supportMethodsArguments=true pagehelper.params=count=countSql # jackson 相关配置 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring.jackson.time-zone=GMT+8 -spring.jackson.default-property-inclusion=use_defaults +spring.jackson.default-property-inclusion=non_null spring.jackson.mapper.sort-properties-alphabetically=true spring.jackson.deserialization.fail-on-unknown-properties=false # freemarker @@ -60,7 +57,7 @@ spring.freemarker.expose-session-attributes=false spring.freemarker.expose-spring-macro-helpers=false spring.freemarker.settings.template_update_delay=1 spring.freemarker.settings.locale=zh_CN -spring.freemarker.settings.datetime_format=yyyy-MM-dd +spring.freemarker.settings.datetime_format=yyyy-MM-dd HH:mm:ss spring.freemarker.settings.date_format=yyyy-MM-dd spring.freemarker.settings.number_format=#.## spring.freemarker.settings.classic_compatible=true @@ -69,4 +66,15 @@ spring.freemarker.settings.url_escaping_charset=utf-8 # 文件上传配置 spring.servlet.multipart.resolveLazily=false spring.servlet.multipart.max-file-size=100MB -spring.servlet.multipart.max-request-size=100MB \ No newline at end of file +spring.servlet.multipart.max-request-size=100MB +server.tomcat.max-http-post-size=-1 + +# 自定义配置 +# 根路径默认页,'/'跳转至该页 +web.welcome.page=/index.htm +# 登录页 +web.login.page=/login.htm +# 拦截验证 +web.url.auth.included=/,/**/*.htm +# 直接放行 +web.url.auth.excluded=/login.htm \ No newline at end of file diff --git a/src/main/resources/modules/SpringBoot/test/system/DictItemTest.java b/src/main/resources/modules/SpringBoot/test/system/DictItemTest.java new file mode 100644 index 00000000..3372d438 --- /dev/null +++ b/src/main/resources/modules/SpringBoot/test/system/DictItemTest.java @@ -0,0 +1,131 @@ +package com.example.system; + +import com.example.frame.base.Token; +import com.example.module.system.mgr.DictItemManager; +import com.example.module.system.req.*; +import com.example.module.system.rsp.*; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.transaction.annotation.Transactional; + +import static org.junit.Assert.assertTrue; + + +/** +* DictItemTest - - 字典项测试用例 +* +* @author wangbing +* @version 0.0.1 +* @since 2019-07-22 +*/ +@RunWith(SpringRunner.class) +@SpringBootTest +@Transactional +public class DictItemTest { + + @Autowired + private Token token; + + @Autowired + private DictItemManager dictItemManager; + + @Test + public void testCreate() { + DictItemCreateRequest request = new DictItemCreateRequest(); + request.setDictName("字典名称"); + request.setKey("字典KEY"); + request.setValue("字典VALUE"); + request.setSort(1); + request.setValid(true); + + DictItemCreateResponse response = dictItemManager.create(request,token); + + assertTrue(!response.hasError()); + } + + @Test + public void testDelete() { + + //创建数据 + DictItemCreateRequest createRequest = new DictItemCreateRequest(); + createRequest.setDictName("字典名称"); + createRequest.setKey("字典KEY"); + createRequest.setValue("字典VALUE"); + createRequest.setSort(1); + createRequest.setValid(true); + + DictItemCreateResponse createResponse = dictItemManager.create(createRequest,token); + + assertTrue(!createResponse.hasError() && createResponse.getId() > 0); + //删除数据 + DictItemDeleteRequest request = new DictItemDeleteRequest(); + request.setId(createResponse.getId()); + + DictItemDeleteResponse response = dictItemManager.delete(request,token); + + assertTrue(!response.hasError() && response.getResult() == 1L); + } + + @Test + public void testUpdate() { + //创建数据 + DictItemCreateRequest createRequest = new DictItemCreateRequest(); + createRequest.setDictName("字典名称"); + createRequest.setKey("字典KEY"); + createRequest.setValue("字典VALUE"); + createRequest.setSort(1); + createRequest.setValid(true); + + DictItemCreateResponse createResponse = dictItemManager.create(createRequest, token); + + //更新数据 + DictItemUpdateRequest request = new DictItemUpdateRequest(); + request.setId(createResponse.getId()); + request.setKey("字典KEY"); + request.setValue("字典VALUE"); + request.setSort(1); + request.setValid(true); + + DictItemUpdateResponse response = dictItemManager.update(request,token); + + assertTrue(!response.hasError() && response.getResult() == 1L); + } + + @Test + public void testFind() { + DictItemFindRequest request = new DictItemFindRequest(); + request.setDictName("字典名称"); + request.setKey("字典KEY"); + request.setValue("字典VALUE"); + request.setSort(1); + request.setValid(true); + + DictItemFindResponse response = dictItemManager.find(request,token); + + assertTrue(!response.hasError()); + } + + @Test + public void testGet() { + //创建数据 + DictItemCreateRequest createRequest = new DictItemCreateRequest(); + createRequest.setDictName("字典名称"); + createRequest.setKey("字典KEY"); + createRequest.setValue("字典VALUE"); + createRequest.setSort(1); + createRequest.setValid(true); + + DictItemCreateResponse createResponse = dictItemManager.create(createRequest, token); + + //获得数据 + DictItemGetRequest request = new DictItemGetRequest(); + request.setId(createResponse.getId()); + + DictItemGetResponse response = dictItemManager.get(request,token); + + assertTrue(!response.hasError() && response.getDictItem() != null); + } +} diff --git a/src/main/resources/modules/SpringBoot/test/system/DictTest.java b/src/main/resources/modules/SpringBoot/test/system/DictTest.java new file mode 100644 index 00000000..3bff7d77 --- /dev/null +++ b/src/main/resources/modules/SpringBoot/test/system/DictTest.java @@ -0,0 +1,158 @@ +package com.example.system; + +import com.example.frame.base.Token; +import com.example.module.system.mgr.DictItemManager; +import com.example.module.system.mgr.DictItemManagerImpl; +import com.example.module.system.mgr.DictManager; +import com.example.module.system.req.*; +import com.example.module.system.rsp.*; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.transaction.annotation.Transactional; + +import static org.junit.Assert.assertTrue; + + +/** + * DictTest - - 字典测试用例 + * + * @author wangbing + * @version 0.0.1 + * @since 2019-07-22 + */ +@RunWith(SpringRunner.class) +@SpringBootTest +@Transactional +public class DictTest { + + @Autowired + private Token token; + + @Autowired + private DictManager dictManager; + @Autowired + private DictItemManager dictItemManager; + + @Test + public void testCreate() { + DictCreateRequest request = new DictCreateRequest(); + request.setDictName("字典名称"); + request.setDictComment("字典描述"); + request.setVersion("字典版本号"); + request.setValid(true); + + DictCreateResponse response = dictManager.create(request, token); + + assertTrue(!response.hasError()); + } + + @Test + public void testDelete() { + + //创建数据 + DictCreateRequest createRequest = new DictCreateRequest(); + createRequest.setDictName("字典名称"); + createRequest.setDictComment("字典描述"); + createRequest.setVersion("字典版本号"); + createRequest.setValid(true); + + DictCreateResponse createResponse = dictManager.create(createRequest, token); + + assertTrue(!createResponse.hasError() && createResponse.getId() > 0); + //删除数据 + DictDeleteRequest request = new DictDeleteRequest(); + request.setId(createResponse.getId()); + + DictDeleteResponse response = dictManager.delete(request, token); + + assertTrue(!response.hasError() && response.getResult() == 1L); + } + + @Test + public void testUpdate() { + //创建数据 + DictCreateRequest createRequest = new DictCreateRequest(); + createRequest.setDictName("字典名称"); + createRequest.setDictComment("字典描述"); + createRequest.setVersion("字典版本号"); + createRequest.setValid(true); + + DictCreateResponse createResponse = dictManager.create(createRequest, token); + + //更新数据 + DictUpdateRequest request = new DictUpdateRequest(); + request.setId(createResponse.getId()); + request.setDictName("字典名称"); + request.setDictComment("字典描述"); + request.setVersion("字典版本号"); + request.setValid(true); + + DictUpdateResponse response = dictManager.update(request, token); + + assertTrue(!response.hasError() && response.getResult() == 1L); + } + + @Test + public void testFind() { + DictFindRequest request = new DictFindRequest(); + request.setDictName("字典名称"); + request.setDictComment("字典描述"); + request.setValid(true); + + DictFindResponse response = dictManager.find(request, token); + + assertTrue(!response.hasError()); + } + + @Test + public void testGet() { + //创建数据 + DictCreateRequest createRequest = new DictCreateRequest(); + createRequest.setDictName("字典名称"); + createRequest.setDictComment("字典描述"); + createRequest.setVersion("字典版本号"); + createRequest.setValid(true); + + DictCreateResponse createResponse = dictManager.create(createRequest, token); + + //获得数据 + DictGetRequest request = new DictGetRequest(); + request.setId(createResponse.getId()); + + DictGetResponse response = dictManager.get(request, token); + + assertTrue(!response.hasError() && response.getDict() != null); + } + + @Test + public void testLoad() { + //创建数据 + DictCreateRequest createRequest = new DictCreateRequest(); + createRequest.setDictName("字典名称"); + createRequest.setDictComment("字典描述"); + createRequest.setVersion("字典版本号"); + createRequest.setValid(true); + + DictCreateResponse createResponse = dictManager.create(createRequest, token); + assertTrue(!createResponse.hasError() && createResponse.getId() > 0); + + DictItemCreateRequest dictItemCreateRequest = new DictItemCreateRequest(); + dictItemCreateRequest.setDictName("字典名称"); + dictItemCreateRequest.setKey("1"); + dictItemCreateRequest.setValue("1"); + dictItemCreateRequest.setSort(1); + dictItemCreateRequest.setValid(true); + DictItemCreateResponse dictItemCreateResponse = dictItemManager.create(dictItemCreateRequest, token); + assertTrue(!dictItemCreateResponse.hasError() && dictItemCreateResponse.getId() > 0); + + //获取字典及字典项数据 + DictLoadRequest request = new DictLoadRequest(); + request.setDictName("字典名称"); + + DictLoadResponse response = dictManager.load(request, token); + assertTrue(!response.hasError() && response.getDict() != null && response.getDictItems().size() > 0); + } +} diff --git a/src/main/resources/modules/SpringBoot/test/system/FileTest.java b/src/main/resources/modules/SpringBoot/test/system/FileTest.java new file mode 100644 index 00000000..80b18ff0 --- /dev/null +++ b/src/main/resources/modules/SpringBoot/test/system/FileTest.java @@ -0,0 +1,118 @@ +package com.example.system; + +import com.example.frame.base.Token; +import com.example.module.system.mgr.FileManager; +import com.example.module.system.req.FileCreateRequest; +import com.example.module.system.req.FileDeleteRequest; +import com.example.module.system.req.FileFindRequest; +import com.example.module.system.req.FileGetRequest; +import com.example.module.system.rsp.FileCreateResponse; +import com.example.module.system.rsp.FileDeleteResponse; +import com.example.module.system.rsp.FileFindResponse; +import com.example.module.system.rsp.FileGetResponse; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.transaction.annotation.Transactional; + +import static org.junit.Assert.assertTrue; + + +/** + * FileTest - - 字典测试用例 + * + * @author wangbing + * @version 0.0.1 + * @since 2019-07-22 + */ +@RunWith(SpringRunner.class) +@SpringBootTest +@Transactional +public class FileTest { + + @Autowired + private Token token; + + @Autowired + private FileManager fileManager; + + @Test + public void testCreate() { + FileCreateRequest request = new FileCreateRequest(); + request.setName("字文件名称"); + request.setFileType(null); + request.setUrl("http://example.com/a.zip"); + request.setUrlDownload("http://example.com/a.zip"); + request.setAttribute1("Attribute1"); + request.setAttribute2("Attribute2"); + request.setAttribute2("Attribute3"); + + FileCreateResponse response = fileManager.create(request, token); + + assertTrue(!response.hasError()); + } + + @Test + public void testDelete() { + + //创建数据 + FileCreateRequest createRequest = new FileCreateRequest(); + createRequest.setName("字文件名称"); + createRequest.setFileType(null); + createRequest.setUrl("http://example.com/a.zip"); + createRequest.setUrlDownload("http://example.com/a.zip"); + createRequest.setAttribute1("Attribute1"); + createRequest.setAttribute2("Attribute2"); + createRequest.setAttribute2("Attribute3"); + + FileCreateResponse createResponse = fileManager.create(createRequest, token); + + assertTrue(!createResponse.hasError() && createResponse.getId() > 0); + //删除数据 + FileDeleteRequest request = new FileDeleteRequest(); + request.setId(createResponse.getId()); + + FileDeleteResponse response = fileManager.delete(request, token); + + assertTrue(!response.hasError() && response.getResult() == 1L); + } + + @Test + public void testFind() { + FileFindRequest request = new FileFindRequest(); + request.setName("字文件名称"); + request.setFileType(null); + request.setAttribute1("Attribute1"); + request.setAttribute2("Attribute2"); + request.setAttribute2("Attribute3"); + + FileFindResponse response = fileManager.find(request, token); + + assertTrue(!response.hasError()); + } + + @Test + public void testGet() { + //创建数据 + FileCreateRequest createRequest = new FileCreateRequest(); + createRequest.setName("字文件名称"); + createRequest.setFileType(null); + createRequest.setUrl("http://example.com/a.zip"); + createRequest.setUrlDownload("http://example.com/a.zip"); + createRequest.setAttribute1("Attribute1"); + createRequest.setAttribute2("Attribute2"); + createRequest.setAttribute2("Attribute3"); + + FileCreateResponse createResponse = fileManager.create(createRequest, token); + + //获得数据 + FileGetRequest request = new FileGetRequest(); + request.setId(createResponse.getId()); + + FileGetResponse response = fileManager.get(request, token); + + assertTrue(!response.hasError() && response.getFile() != null); + } +}