package com.gyf.csams import cn.smallbun.screw.core.Configuration import cn.smallbun.screw.core.engine.EngineConfig import cn.smallbun.screw.core.engine.EngineFileType import cn.smallbun.screw.core.engine.EngineTemplateType import cn.smallbun.screw.core.execute.DocumentationExecute import cn.smallbun.screw.core.process.ProcessConfig import io.ktor.config.* import io.ktor.http.* import io.ktor.server.testing.* import org.jetbrains.exposed.sql.transactions.transaction import java.time.LocalDateTime import kotlin.test.Test import kotlin.test.assertEquals class ApplicationTest { @Test fun testRoot() { withTestApplication({ module(testing = true) }) { handleRequest(HttpMethod.Get, "/").apply { assertEquals(HttpStatusCode.OK, response.status()) assertEquals("HELLO WORLD!", response.content) } } } @Test fun testRandom(){ val c= randomNum(8) println(c) val d= randomNum(6) println(d) } @Test fun testMd5(){ println("admin".md5()) } fun initApp(test: TestApplicationEngine.() -> R):R{ // withTestApplication(test: TestApplicationEngine.() -> R): R return withTestApplication({ (environment.config as MapApplicationConfig).apply { // Set here the properties put("ktor.deployment.mysql.jdbcUrl", "jdbc:mysql://localhost:3306/csams?serverTimezone=Asia/Shanghai") put("ktor.deployment.mysql.driverClassName", "com.mysql.cj.jdbc.Driver") put("ktor.deployment.mysql.username", "root") put("ktor.deployment.mysql.password", "123456") } MySQL(testing = true) }, test) } @Test fun testInsertUser(){ initApp{ val c=AccountService.register(UserVo(studentId = "6666",name = "hahaha")) println(c) } } @Test fun testUpdateComment(){ initApp { // updateComment(Users,UserTokens) transaction { UserToken.new { studentId = "6666" token = "22" ip = "sdf" device = "hahha" } } } } @Test fun testEntryId() { initApp { transaction { val c=updateComment(UserTokens) println(c) } } } @Test fun localTime(){ println(LocalDateTime.now()) } /** * 文档生成 */ @Test fun documentGeneration() { initApp { val fileName="数据库设计文档" val dir="${System.getenv("UserProfile")}\\Desktop" //生成配置 val engineConfig = EngineConfig.builder() //生成文件路径 .fileOutputDir(dir) //打开目录 .openOutputDir(true) //文件类型 .fileType(EngineFileType.WORD) //生成模板实现 .produceType(EngineTemplateType.freemarker) //自定义文件名称 .fileName(fileName).build(); println("数据库文档输出路径${engineConfig.fileOutputDir}") //忽略表 // val ignoreTableName = ArrayList() // ignoreTableName.add("test_user") // ignoreTableName.add("test_group") //忽略表前缀 // val ignorePrefix = ArrayList() // ignorePrefix.add("test_") //忽略表后缀 // val ignoreSuffix = ArrayList() // ignoreSuffix.add("_test") val processConfig = ProcessConfig.builder() //指定生成逻辑、当存在指定表、指定表前缀、指定表后缀时,将生成指定表,其余表不生成、并跳过忽略表配置 //根据名称指定表生成 .designatedTableName(ArrayList()) //根据表前缀生成 .designatedTablePrefix(ArrayList()) //根据表后缀生成 .designatedTableSuffix(ArrayList()) //忽略表名 // .ignoreTableName(ignoreTableName) //忽略表前缀 // .ignoreTablePrefix(ignorePrefix) //忽略表后缀 // .ignoreTableSuffix(ignoreSuffix) .build() //配置 val config: Configuration = Configuration.builder() //版本 .version("1.0.0") //描述 .description("${fileName}生成") //数据源 .dataSource(MySQL.getInstance(null).dataSource) //生成配置 .engineConfig(engineConfig) //生成配置 .produceConfig(processConfig) .build() //执行生成 DocumentationExecute(config).execute() } } }