You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

config_test.go 14 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. /*
  2. * Licensed to the Apache Software Foundation (ASF) under one or more
  3. * contributor license agreements. See the NOTICE file distributed with
  4. * this work for additional information regarding copyright ownership.
  5. * The ASF licenses this file to You under the Apache License, Version 2.0
  6. * (the "License"); you may not use this file except in compliance with
  7. * the License. You may obtain a copy of the License at
  8. *
  9. * http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS,
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. * See the License for the specific language governing permissions and
  15. * limitations under the License.
  16. */
  17. package client
  18. import (
  19. "flag"
  20. "os"
  21. "testing"
  22. "time"
  23. "github.com/stretchr/testify/assert"
  24. )
  25. func TestLoadPath(t *testing.T) {
  26. cfg := LoadPath("../../testdata/conf/seatago.yml")
  27. assert.NotNil(t, cfg)
  28. assert.Equal(t, true, cfg.Enabled)
  29. assert.Equal(t, "applicationName", cfg.ApplicationID)
  30. assert.Equal(t, "default_tx_group", cfg.TxServiceGroup)
  31. assert.Equal(t, "aliyunAccessKey", cfg.AccessKey)
  32. assert.Equal(t, "aliyunSecretKey", cfg.SecretKey)
  33. assert.Equal(t, true, cfg.EnableAutoDataSourceProxy)
  34. assert.Equal(t, "AT", cfg.DataSourceProxyMode)
  35. assert.NotNil(t, cfg.TCCConfig)
  36. assert.NotNil(t, cfg.TCCConfig.FenceConfig)
  37. assert.Equal(t, "tcc_fence_log_test", cfg.TCCConfig.FenceConfig.LogTableName)
  38. assert.Equal(t, time.Second*60, cfg.TCCConfig.FenceConfig.CleanPeriod)
  39. assert.NotNil(t, cfg.ClientConfig)
  40. assert.NotNil(t, cfg.ClientConfig.TmConfig)
  41. assert.Equal(t, 5, cfg.ClientConfig.TmConfig.CommitRetryCount)
  42. assert.Equal(t, 5, cfg.ClientConfig.TmConfig.RollbackRetryCount)
  43. assert.Equal(t, time.Second*60, cfg.ClientConfig.TmConfig.DefaultGlobalTransactionTimeout)
  44. assert.Equal(t, false, cfg.ClientConfig.TmConfig.DegradeCheck)
  45. assert.Equal(t, 2000, cfg.ClientConfig.TmConfig.DegradeCheckPeriod)
  46. assert.Equal(t, time.Second*10, cfg.ClientConfig.TmConfig.DegradeCheckAllowTimes)
  47. assert.Equal(t, -2147482648, cfg.ClientConfig.TmConfig.InterceptorOrder)
  48. assert.Equal(t, 10000, cfg.ClientConfig.RmConfig.AsyncCommitBufferLimit)
  49. assert.Equal(t, 5, cfg.ClientConfig.RmConfig.ReportRetryCount)
  50. assert.Equal(t, false, cfg.ClientConfig.RmConfig.TableMetaCheckEnable)
  51. assert.Equal(t, false, cfg.ClientConfig.RmConfig.ReportSuccessEnable)
  52. assert.Equal(t, false, cfg.ClientConfig.RmConfig.SagaBranchRegisterEnable)
  53. assert.Equal(t, "fastjson", cfg.ClientConfig.RmConfig.SagaJsonParser)
  54. assert.Equal(t, false, cfg.ClientConfig.RmConfig.SagaCompensatePersistModeUpdate)
  55. assert.Equal(t, false, cfg.ClientConfig.RmConfig.SagaRetryPersistModeUpdate)
  56. assert.Equal(t, -2147482648, cfg.ClientConfig.RmConfig.TccActionInterceptorOrder)
  57. assert.Equal(t, "druid", cfg.ClientConfig.RmConfig.SqlParserType)
  58. assert.Equal(t, 30*time.Second, cfg.ClientConfig.RmConfig.LockConfig.RetryInterval)
  59. assert.Equal(t, 10, cfg.ClientConfig.RmConfig.LockConfig.RetryTimes)
  60. assert.Equal(t, true, cfg.ClientConfig.RmConfig.LockConfig.RetryPolicyBranchRollbackOnConflict)
  61. assert.NotNil(t, cfg.ClientConfig.UndoConfig)
  62. assert.Equal(t, true, cfg.ClientConfig.UndoConfig.DataValidation)
  63. assert.Equal(t, "json", cfg.ClientConfig.UndoConfig.LogSerialization)
  64. assert.Equal(t, "undo_log", cfg.ClientConfig.UndoConfig.LogTable)
  65. assert.Equal(t, true, cfg.ClientConfig.UndoConfig.OnlyCareUpdateColumns)
  66. assert.NotNil(t, cfg.ClientConfig.UndoConfig.CompressConfig)
  67. assert.Equal(t, true, cfg.ClientConfig.UndoConfig.CompressConfig.Enable)
  68. assert.Equal(t, "zip", cfg.ClientConfig.UndoConfig.CompressConfig.Type)
  69. assert.Equal(t, "64k", cfg.ClientConfig.UndoConfig.CompressConfig.Threshold)
  70. assert.NotNil(t, cfg.GettyConfig)
  71. assert.NotNil(t, cfg.GettyConfig.SessionConfig)
  72. assert.Equal(t, 0, cfg.GettyConfig.ReconnectInterval)
  73. assert.Equal(t, 1, cfg.GettyConfig.ConnectionNum)
  74. assert.Equal(t, false, cfg.GettyConfig.SessionConfig.CompressEncoding)
  75. assert.Equal(t, true, cfg.GettyConfig.SessionConfig.TCPNoDelay)
  76. assert.Equal(t, true, cfg.GettyConfig.SessionConfig.TCPKeepAlive)
  77. assert.Equal(t, time.Minute*2, cfg.GettyConfig.SessionConfig.KeepAlivePeriod)
  78. assert.Equal(t, 262144, cfg.GettyConfig.SessionConfig.TCPRBufSize)
  79. assert.Equal(t, 65536, cfg.GettyConfig.SessionConfig.TCPWBufSize)
  80. assert.Equal(t, time.Second, cfg.GettyConfig.SessionConfig.TCPReadTimeout)
  81. assert.Equal(t, time.Second*5, cfg.GettyConfig.SessionConfig.TCPWriteTimeout)
  82. assert.Equal(t, time.Second, cfg.GettyConfig.SessionConfig.WaitTimeout)
  83. assert.Equal(t, 16498688, cfg.GettyConfig.SessionConfig.MaxMsgLen)
  84. assert.Equal(t, "client_test", cfg.GettyConfig.SessionConfig.SessionName)
  85. assert.Equal(t, time.Second, cfg.GettyConfig.SessionConfig.CronPeriod)
  86. assert.NotNil(t, cfg.TransportConfig)
  87. assert.NotNil(t, cfg.TransportConfig.ShutdownConfig)
  88. assert.Equal(t, time.Second*3, cfg.TransportConfig.ShutdownConfig.Wait)
  89. assert.Equal(t, "TCP", cfg.TransportConfig.Type)
  90. assert.Equal(t, "NIO", cfg.TransportConfig.Server)
  91. assert.Equal(t, true, cfg.TransportConfig.Heartbeat)
  92. assert.Equal(t, "seata", cfg.TransportConfig.Serialization)
  93. assert.Equal(t, "none", cfg.TransportConfig.Compressor)
  94. assert.Equal(t, false, cfg.TransportConfig.EnableTmClientBatchSendRequest)
  95. assert.Equal(t, true, cfg.TransportConfig.EnableRmClientBatchSendRequest)
  96. assert.Equal(t, time.Second*30, cfg.TransportConfig.RPCRmRequestTimeout)
  97. assert.Equal(t, time.Second*30, cfg.TransportConfig.RPCTmRequestTimeout)
  98. assert.NotNil(t, cfg.ServiceConfig)
  99. assert.Equal(t, false, cfg.ServiceConfig.EnableDegrade)
  100. assert.Equal(t, false, cfg.ServiceConfig.DisableGlobalTransaction)
  101. assert.Equal(t, "default", cfg.ServiceConfig.VgroupMapping["default_tx_group"])
  102. assert.Equal(t, "127.0.0.1:8091", cfg.ServiceConfig.Grouplist["default"])
  103. assert.NotNil(t, cfg.RegistryConfig)
  104. assert.Equal(t, "file", cfg.RegistryConfig.Type)
  105. assert.Equal(t, "seatago.yml", cfg.RegistryConfig.File.Name)
  106. assert.Equal(t, "seata-server", cfg.RegistryConfig.Nacos.Application)
  107. assert.Equal(t, "127.0.0.1:8848", cfg.RegistryConfig.Nacos.ServerAddr)
  108. assert.Equal(t, "SEATA_GROUP", cfg.RegistryConfig.Nacos.Group)
  109. assert.Equal(t, "test-namespace", cfg.RegistryConfig.Nacos.Namespace)
  110. assert.Equal(t, "test-username", cfg.RegistryConfig.Nacos.Username)
  111. assert.Equal(t, "test-password", cfg.RegistryConfig.Nacos.Password)
  112. assert.Equal(t, "test-access-key", cfg.RegistryConfig.Nacos.AccessKey)
  113. assert.Equal(t, "test-secret-key", cfg.RegistryConfig.Nacos.SecretKey)
  114. assert.Equal(t, "default", cfg.RegistryConfig.Etcd3.Cluster)
  115. assert.Equal(t, "http://localhost:2379", cfg.RegistryConfig.Etcd3.ServerAddr)
  116. // reset flag.CommandLine
  117. flag.CommandLine = flag.NewFlagSet(os.Args[0], flag.ExitOnError)
  118. }
  119. func TestLoadJson(t *testing.T) {
  120. confJson := `{"enabled":false,"application-id":"application_test","tx-service-group":"default_tx_group","access-key":"test","secret-key":"test","enable-auto-data-source-proxy":false,"data-source-proxy-mode":"AT","client":{"rm":{"async-commit-buffer-limit":10000,"report-retry-count":5,"table-meta-check-enable":false,"report-success-enable":false,"saga-branch-register-enable":false,"saga-json-parser":"fastjson","saga-retry-persist-mode-update":false,"saga-compensate-persist-mode-update":false,"tcc-action-interceptor-order":-2147482648,"sql-parser-type":"druid","lock":{"retry-interval":"30s","retry-times":10,"retry-policy-branch-rollback-on-conflict":true}},"tm":{"commit-retry-count":5,"rollback-retry-count":5,"default-global-transaction-timeout":"60s","degrade-check":false,"degrade-check-period":2000,"degrade-check-allow-times":"10s","interceptor-order":-2147482648},"undo":{"data-validation":false,"log-serialization":"jackson222","only-care-update-columns":false,"log-table":"undo_log333","compress":{"enable":false,"type":"zip111","threshold":"128k"}}},"tcc":{"fence":{"log-table-name":"tcc_fence_log_test2","clean-period":80000000000}},"getty":{"reconnect-interval":1,"connection-num":10,"session":{"compress-encoding":true,"tcp-no-delay":false,"tcp-keep-alive":false,"keep-alive-period":"120s","tcp-r-buf-size":261120,"tcp-w-buf-size":32768,"tcp-read-timeout":"2s","tcp-write-timeout":"8s","wait-timeout":"2s","max-msg-len":261120,"session-name":"client_test","cron-period":"2s"}},"transport":{"shutdown":{"wait":"3s"},"type":"TCP","server":"NIO","heartbeat":true,"serialization":"seata","compressor":"none"," enable-tm-client-batch-send-request":false,"enable-rm-client-batch-send-request":true,"rpc-rm-request-timeout":"30s","rpc-tm-request-timeout":"30s"},"service":{"enable-degrade":true,"disable-global-transaction":true,"vgroup-mapping":{"default_tx_group":"default_test"},"grouplist":{"default":"127.0.0.1:8092"}}}`
  121. cfg := LoadJson([]byte(confJson))
  122. assert.NotNil(t, cfg)
  123. assert.Equal(t, false, cfg.Enabled)
  124. assert.Equal(t, "application_test", cfg.ApplicationID)
  125. assert.Equal(t, "default_tx_group", cfg.TxServiceGroup)
  126. assert.Equal(t, "test", cfg.AccessKey)
  127. assert.Equal(t, "test", cfg.SecretKey)
  128. assert.Equal(t, false, cfg.EnableAutoDataSourceProxy)
  129. assert.Equal(t, "AT", cfg.DataSourceProxyMode)
  130. assert.Equal(t, 10000, cfg.ClientConfig.RmConfig.AsyncCommitBufferLimit)
  131. assert.Equal(t, 5, cfg.ClientConfig.RmConfig.ReportRetryCount)
  132. assert.Equal(t, false, cfg.ClientConfig.RmConfig.TableMetaCheckEnable)
  133. assert.Equal(t, false, cfg.ClientConfig.RmConfig.ReportSuccessEnable)
  134. assert.Equal(t, false, cfg.ClientConfig.RmConfig.SagaBranchRegisterEnable)
  135. assert.Equal(t, "fastjson", cfg.ClientConfig.RmConfig.SagaJsonParser)
  136. assert.Equal(t, false, cfg.ClientConfig.RmConfig.SagaCompensatePersistModeUpdate)
  137. assert.Equal(t, false, cfg.ClientConfig.RmConfig.SagaRetryPersistModeUpdate)
  138. assert.Equal(t, -2147482648, cfg.ClientConfig.RmConfig.TccActionInterceptorOrder)
  139. assert.Equal(t, "druid", cfg.ClientConfig.RmConfig.SqlParserType)
  140. assert.Equal(t, 30*time.Second, cfg.ClientConfig.RmConfig.LockConfig.RetryInterval)
  141. assert.Equal(t, 10, cfg.ClientConfig.RmConfig.LockConfig.RetryTimes)
  142. assert.Equal(t, true, cfg.ClientConfig.RmConfig.LockConfig.RetryPolicyBranchRollbackOnConflict)
  143. assert.NotNil(t, cfg.ClientConfig.UndoConfig)
  144. assert.Equal(t, false, cfg.ClientConfig.UndoConfig.DataValidation)
  145. assert.Equal(t, "jackson222", cfg.ClientConfig.UndoConfig.LogSerialization)
  146. assert.Equal(t, "undo_log333", cfg.ClientConfig.UndoConfig.LogTable)
  147. assert.Equal(t, false, cfg.ClientConfig.UndoConfig.OnlyCareUpdateColumns)
  148. assert.NotNil(t, cfg.ClientConfig.UndoConfig.CompressConfig)
  149. assert.Equal(t, false, cfg.ClientConfig.UndoConfig.CompressConfig.Enable)
  150. assert.Equal(t, "zip111", cfg.ClientConfig.UndoConfig.CompressConfig.Type)
  151. assert.Equal(t, "128k", cfg.ClientConfig.UndoConfig.CompressConfig.Threshold)
  152. assert.NotNil(t, cfg.TCCConfig)
  153. assert.NotNil(t, cfg.TCCConfig.FenceConfig)
  154. assert.Equal(t, "tcc_fence_log_test2", cfg.TCCConfig.FenceConfig.LogTableName)
  155. assert.Equal(t, time.Second*80, cfg.TCCConfig.FenceConfig.CleanPeriod)
  156. assert.NotNil(t, cfg.ClientConfig)
  157. assert.NotNil(t, cfg.ClientConfig.TmConfig)
  158. assert.Equal(t, 5, cfg.ClientConfig.TmConfig.CommitRetryCount)
  159. assert.Equal(t, 5, cfg.ClientConfig.TmConfig.RollbackRetryCount)
  160. assert.Equal(t, time.Second*60, cfg.ClientConfig.TmConfig.DefaultGlobalTransactionTimeout)
  161. assert.Equal(t, false, cfg.ClientConfig.TmConfig.DegradeCheck)
  162. assert.Equal(t, 2000, cfg.ClientConfig.TmConfig.DegradeCheckPeriod)
  163. assert.Equal(t, time.Second*10, cfg.ClientConfig.TmConfig.DegradeCheckAllowTimes)
  164. assert.Equal(t, -2147482648, cfg.ClientConfig.TmConfig.InterceptorOrder)
  165. assert.NotNil(t, cfg.GettyConfig)
  166. assert.NotNil(t, cfg.GettyConfig.SessionConfig)
  167. assert.Equal(t, 1, cfg.GettyConfig.ReconnectInterval)
  168. assert.Equal(t, 10, cfg.GettyConfig.ConnectionNum)
  169. assert.Equal(t, true, cfg.GettyConfig.SessionConfig.CompressEncoding)
  170. assert.Equal(t, false, cfg.GettyConfig.SessionConfig.TCPNoDelay)
  171. assert.Equal(t, false, cfg.GettyConfig.SessionConfig.TCPKeepAlive)
  172. assert.Equal(t, time.Minute*2, cfg.GettyConfig.SessionConfig.KeepAlivePeriod)
  173. assert.Equal(t, 261120, cfg.GettyConfig.SessionConfig.TCPRBufSize)
  174. assert.Equal(t, 32768, cfg.GettyConfig.SessionConfig.TCPWBufSize)
  175. assert.Equal(t, time.Second*2, cfg.GettyConfig.SessionConfig.TCPReadTimeout)
  176. assert.Equal(t, time.Second*8, cfg.GettyConfig.SessionConfig.TCPWriteTimeout)
  177. assert.Equal(t, time.Second*2, cfg.GettyConfig.SessionConfig.WaitTimeout)
  178. assert.Equal(t, 261120, cfg.GettyConfig.SessionConfig.MaxMsgLen)
  179. assert.Equal(t, "client_test", cfg.GettyConfig.SessionConfig.SessionName)
  180. assert.Equal(t, time.Second*2, cfg.GettyConfig.SessionConfig.CronPeriod)
  181. assert.NotNil(t, cfg.TransportConfig)
  182. assert.NotNil(t, cfg.TransportConfig.ShutdownConfig)
  183. assert.Equal(t, time.Second*3, cfg.TransportConfig.ShutdownConfig.Wait)
  184. assert.Equal(t, "TCP", cfg.TransportConfig.Type)
  185. assert.Equal(t, "NIO", cfg.TransportConfig.Server)
  186. assert.Equal(t, true, cfg.TransportConfig.Heartbeat)
  187. assert.Equal(t, "seata", cfg.TransportConfig.Serialization)
  188. assert.Equal(t, "none", cfg.TransportConfig.Compressor)
  189. assert.Equal(t, false, cfg.TransportConfig.EnableTmClientBatchSendRequest)
  190. assert.Equal(t, true, cfg.TransportConfig.EnableRmClientBatchSendRequest)
  191. assert.Equal(t, time.Second*30, cfg.TransportConfig.RPCRmRequestTimeout)
  192. assert.Equal(t, time.Second*30, cfg.TransportConfig.RPCTmRequestTimeout)
  193. assert.NotNil(t, cfg.ServiceConfig)
  194. assert.Equal(t, true, cfg.ServiceConfig.EnableDegrade)
  195. assert.Equal(t, true, cfg.ServiceConfig.DisableGlobalTransaction)
  196. assert.Equal(t, "default_test", cfg.ServiceConfig.VgroupMapping["default_tx_group"])
  197. assert.Equal(t, "127.0.0.1:8092", cfg.ServiceConfig.Grouplist["default"])
  198. // reset flag.CommandLine
  199. flag.CommandLine = flag.NewFlagSet(os.Args[0], flag.ExitOnError)
  200. }