单元测试
diff --git a/src/main/kotlin/com/supwisdom/dlpay/shop/service/impl/shop_service_impl.kt b/src/main/kotlin/com/supwisdom/dlpay/shop/service/impl/shop_service_impl.kt
index c7d70db..411182d 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/shop/service/impl/shop_service_impl.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/shop/service/impl/shop_service_impl.kt
@@ -5,6 +5,7 @@
 import com.supwisdom.dlpay.framework.domain.TShop
 import com.supwisdom.dlpay.framework.domain.TShopacc
 import com.supwisdom.dlpay.framework.service.SystemUtilService
+import com.supwisdom.dlpay.framework.util.Subject
 import com.supwisdom.dlpay.shop.service.ShopService
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.stereotype.Service
@@ -35,7 +36,7 @@
             shopacc.shopid = shop.shopid
             shopacc.shopname = shop.shopname
             shopacc.status = shop.status
-            shopacc.subjno = "2004"
+            shopacc.subjno = Subject.SUBJNO_MACHANT_INCOME
             shopacc.opendate = systemdatetime.hostdate
             shopacc.shopaccno = String.format("2%09d",shop.shopid)
             shopaccDao.save(shopacc)
diff --git a/src/main/kotlin/com/supwisdom/dlpay/user/service/impl/user_service_impl.kt b/src/main/kotlin/com/supwisdom/dlpay/user/service/impl/user_service_impl.kt
index 8842924..4f04d2c 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/user/service/impl/user_service_impl.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/user/service/impl/user_service_impl.kt
@@ -5,6 +5,7 @@
 import com.supwisdom.dlpay.consume.domain.TAccount
 import com.supwisdom.dlpay.consume.domain.TPerson
 import com.supwisdom.dlpay.framework.service.SystemUtilService
+import com.supwisdom.dlpay.framework.util.Subject
 import com.supwisdom.dlpay.user.service.UserService
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.stereotype.Service
@@ -22,6 +23,7 @@
     private lateinit var systemUtilService: SystemUtilService
 
     override fun save(person: TPerson): TPerson {
+        //TODO check tac
         personDao.save(person)
         var account = accountDao.findByUserid(person.userid)
         if (account == null) {
@@ -31,7 +33,7 @@
             account.opendate = systemdatetime.hostdate
             account.userid = person.userid
             account.status = person.status
-            account.subjno = "220201"
+            account.subjno = Subject.SUBJNO_PERSONAL_DEPOSIT
             account.balance = 0.0
             account.availbal = 0.0
             account.frozebal = 0.0
diff --git a/src/test/kotlin/com/supwisdom/dlpay/MvcBaseTest.kt b/src/test/kotlin/com/supwisdom/dlpay/MvcBaseTest.kt
new file mode 100644
index 0000000..626b090
--- /dev/null
+++ b/src/test/kotlin/com/supwisdom/dlpay/MvcBaseTest.kt
@@ -0,0 +1,15 @@
+package com.supwisdom.dlpay
+
+import org.junit.runner.RunWith
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc
+import org.springframework.boot.test.context.SpringBootTest
+import org.springframework.test.context.junit4.SpringRunner
+
+/**
+ * mvc 基础测试类
+ * 放置基础方法,如认证信息等
+ */
+@RunWith(SpringRunner::class)
+@SpringBootTest
+@AutoConfigureMockMvc
+abstract class MvcBaseTest
\ No newline at end of file
diff --git a/src/test/kotlin/com/supwisdom/dlpay/ShopControllerTest.kt b/src/test/kotlin/com/supwisdom/dlpay/controller/ShopControllerTest.kt
similarity index 87%
rename from src/test/kotlin/com/supwisdom/dlpay/ShopControllerTest.kt
rename to src/test/kotlin/com/supwisdom/dlpay/controller/ShopControllerTest.kt
index 4ff1714..e07a5fe 100644
--- a/src/test/kotlin/com/supwisdom/dlpay/ShopControllerTest.kt
+++ b/src/test/kotlin/com/supwisdom/dlpay/controller/ShopControllerTest.kt
@@ -1,17 +1,13 @@
-package com.supwisdom.dlpay
+package com.supwisdom.dlpay.controller
 
 import com.google.gson.Gson
+import com.supwisdom.dlpay.MvcBaseTest
 import com.supwisdom.dlpay.framework.domain.TShop
 import com.supwisdom.dlpay.shop.bean.ShopParam
 import org.junit.Assert
 import org.junit.Test
-import org.junit.runner.RunWith
 import org.springframework.beans.factory.annotation.Autowired
-import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc
-import org.springframework.boot.test.context.SpringBootTest
 import org.springframework.http.MediaType
-import org.springframework.test.context.TestPropertySource
-import org.springframework.test.context.junit4.SpringRunner
 import org.springframework.test.web.servlet.MockMvc
 
 import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get
@@ -22,10 +18,7 @@
 /**
  * Created by shuwei on 2019/4/15.
  */
-@RunWith(SpringRunner::class)
-@SpringBootTest
-@AutoConfigureMockMvc
-class ShopControllerTest {
+class ShopControllerTest : MvcBaseTest() {
     @Autowired
     private lateinit var mvc: MockMvc
 
diff --git a/src/test/kotlin/com/supwisdom/dlpay/controller/UserControllerTest.kt b/src/test/kotlin/com/supwisdom/dlpay/controller/UserControllerTest.kt
new file mode 100644
index 0000000..3d93d47
--- /dev/null
+++ b/src/test/kotlin/com/supwisdom/dlpay/controller/UserControllerTest.kt
@@ -0,0 +1,84 @@
+package com.supwisdom.dlpay.controller
+
+import com.google.gson.Gson
+import com.supwisdom.dlpay.MvcBaseTest
+import com.supwisdom.dlpay.consume.domain.TAccount
+import com.supwisdom.dlpay.consume.domain.TPerson
+import com.supwisdom.dlpay.shop.bean.ShopParam
+import com.supwisdom.dlpay.shop.bean.UserParam
+import org.junit.Assert
+import org.junit.Test
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.http.MediaType
+import org.springframework.test.web.servlet.MockMvc
+import org.springframework.test.web.servlet.request.MockMvcRequestBuilders
+import org.springframework.test.web.servlet.result.MockMvcResultHandlers
+import org.springframework.test.web.servlet.result.MockMvcResultMatchers
+
+
+class UserControllerTest : MvcBaseTest() {
+    @Autowired
+    private lateinit var mvc: MockMvc
+
+    class RetBean {
+        var userid: String = ""
+        var retcode: Int = 0
+        lateinit var person: TPerson
+        lateinit var account: TAccount
+    }
+
+    @Test
+    fun open() {
+        val userParam = UserParam()
+        userParam.uniqueId = ""//random req
+        userParam.name = "测试名称"
+        val gson = Gson()
+        val ret = mvc.perform(MockMvcRequestBuilders.post("/user/open").content(gson.toJson(userParam))
+                .contentType(MediaType.APPLICATION_JSON))
+                .andExpect(MockMvcResultMatchers.status().isOk)
+                .andDo(MockMvcResultHandlers.print())
+                .andReturn()
+        val res = ret.response.contentAsString
+        Assert.assertNotNull(res)
+        val retBean = gson.fromJson(res, RetBean::class.java)
+        Assert.assertNotNull(retBean)
+        Assert.assertEquals(0, retBean.retcode)
+        Assert.assertNotNull(retBean.userid)
+        Assert.assertNotEquals("", retBean.userid)
+    }
+
+    @Test
+    fun get() {
+        val userParam = UserParam()
+        userParam.uniqueId = "testuseruniqueId"//测试用
+        userParam.name = "测试名称:testuseruniqueId"
+        val gson = Gson()
+        val ret = mvc.perform(MockMvcRequestBuilders.post("/user/open").content(gson.toJson(userParam))
+                .contentType(MediaType.APPLICATION_JSON))
+                .andExpect(MockMvcResultMatchers.status().isOk)
+                .andDo(MockMvcResultHandlers.print())
+                .andReturn()
+        val resOpen = ret.response.contentAsString
+        Assert.assertNotNull(resOpen)
+        val retBeanOpen = gson.fromJson(resOpen, RetBean::class.java)
+        Assert.assertNotNull(retBeanOpen)
+        Assert.assertNotNull(retBeanOpen.userid)
+        userParam.userid = retBeanOpen.userid
+
+        val retGet = mvc.perform(MockMvcRequestBuilders.get("/user/get").content(gson.toJson(userParam))
+                .contentType(MediaType.APPLICATION_JSON))
+                .andExpect(MockMvcResultMatchers.status().isOk)
+                .andDo(MockMvcResultHandlers.print())
+                .andReturn()
+        val res = retGet.response.contentAsString
+        Assert.assertNotNull(res)
+        val retBean = gson.fromJson(res, RetBean::class.java)
+        Assert.assertNotNull(retBean)
+        Assert.assertEquals(0, retBean.retcode)
+        Assert.assertNotNull(retBean.person)
+        Assert.assertEquals(retBeanOpen.userid, retBean.person.userid)
+        Assert.assertNotNull(retBeanOpen.account)
+        Assert.assertEquals(retBeanOpen.person.userid, retBean.account.userid)
+    }
+
+}
\ No newline at end of file