|
|
@@ -0,0 +1,115 @@
|
|
|
+package task
|
|
|
+
|
|
|
+import (
|
|
|
+ "dsbqj-admin/model/mongo/version"
|
|
|
+ "testing"
|
|
|
+)
|
|
|
+
|
|
|
+func TestVersionsCheckEnvVersionAndDefault(t *testing.T) {
|
|
|
+ versions := VersionInit()
|
|
|
+ channel := new(ChannelVersions)
|
|
|
+
|
|
|
+ releaseDefault := &version.Version{Channel: "wx", EnvVersion: "release", Version: "1.0.0", Url: "正式服默认地址", Default: true}
|
|
|
+ releaseExact := &version.Version{Channel: "wx", EnvVersion: "release", Version: "1.0.1", Url: "正式服版本地址"}
|
|
|
+ trialDefault := &version.Version{Channel: "wx", EnvVersion: "trial", Version: "1.0.0", Url: "体验服默认地址", Default: true}
|
|
|
+ trialExact := &version.Version{Channel: "wx", EnvVersion: "trial", Version: "1.0.1", Url: "体验服版本地址"}
|
|
|
+
|
|
|
+ for _, v := range []*version.Version{releaseDefault, releaseExact, trialDefault, trialExact} {
|
|
|
+ channel.VList.Push(v)
|
|
|
+ channel.VMap.Set(versionMapKey(v.Version, NormalizeEnvVersion(v.EnvVersion)), v)
|
|
|
+ }
|
|
|
+
|
|
|
+ versions.VChannels.Set("wx", channel)
|
|
|
+
|
|
|
+ if got := versions.Check("1.0.1", "wx", "trial"); got != trialDefault {
|
|
|
+ t.Fatalf("传入体验版环境版本时应优先返回体验版默认地址,实际返回 %#v", got)
|
|
|
+ }
|
|
|
+
|
|
|
+ if got := versions.Check("1.0.1", "wx", "release"); got != releaseDefault {
|
|
|
+ t.Fatalf("传入正式服环境版本时应优先返回正式服默认地址,实际返回 %#v", got)
|
|
|
+ }
|
|
|
+
|
|
|
+ if got := versions.Check("1.0.1", "wx", ""); got != releaseExact {
|
|
|
+ t.Fatalf("未传环境版本应返回正式服地址,实际返回 %#v", got)
|
|
|
+ }
|
|
|
+
|
|
|
+ if got := versions.Check("1.0.1", "wx", ""); got == nil || got.Version != "1.0.1" {
|
|
|
+ t.Fatalf("未传环境版本时应优先按版本号返回任意环境版本,实际返回 %#v", got)
|
|
|
+ }
|
|
|
+
|
|
|
+ if got := versions.Check("9.9.9", "wx", "trial"); got != trialDefault {
|
|
|
+ t.Fatalf("体验版未知版本应返回体验版默认地址,实际返回 %#v", got)
|
|
|
+ }
|
|
|
+
|
|
|
+ if got := versions.Check("9.9.9", "wx", "develop"); got != releaseDefault {
|
|
|
+ t.Fatalf("开发版未知版本应返回正式服默认地址,实际返回 %#v", got)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestVersionsCheckWithoutEnvVersionUsesVersionFirst(t *testing.T) {
|
|
|
+ versions := VersionInit()
|
|
|
+ channel := new(ChannelVersions)
|
|
|
+
|
|
|
+ releaseDefault := &version.Version{Channel: "wx", EnvVersion: "release", Version: "1.0.0", Url: "正式服默认地址", Default: true}
|
|
|
+ trialExact := &version.Version{Channel: "wx", EnvVersion: "trial", Version: "0.2.0", Url: "体验版版本地址"}
|
|
|
+
|
|
|
+ for _, v := range []*version.Version{releaseDefault, trialExact} {
|
|
|
+ channel.VList.Push(v)
|
|
|
+ channel.VMap.Set(versionMapKey(v.Version, NormalizeEnvVersion(v.EnvVersion)), v)
|
|
|
+ }
|
|
|
+ versions.VChannels.Set("wx", channel)
|
|
|
+
|
|
|
+ if got := versions.Check("0.2.0", "wx", ""); got != trialExact {
|
|
|
+ t.Fatalf("未传环境版本时应按版本号命中体验版版本,实际返回 %#v", got)
|
|
|
+ }
|
|
|
+
|
|
|
+ if got := versions.Check("9.9.9", "wx", ""); got != releaseDefault {
|
|
|
+ t.Fatalf("未传环境版本且版本号不存在时应返回正式服默认地址,实际返回 %#v", got)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestVersionsCheckEnvVersionPriority(t *testing.T) {
|
|
|
+ versions := VersionInit()
|
|
|
+ channel := new(ChannelVersions)
|
|
|
+
|
|
|
+ releaseDefault := &version.Version{Channel: "wx", EnvVersion: "release", Version: "1.0.0", Url: "正式服默认地址", Default: true}
|
|
|
+ releaseExact := &version.Version{Channel: "wx", EnvVersion: "release", Version: "1.0.1", Url: "正式服版本地址"}
|
|
|
+ trialDefault := &version.Version{Channel: "wx", EnvVersion: "trial", Version: "2.0.0", Url: "体验版默认地址", Default: true}
|
|
|
+ trialExact := &version.Version{Channel: "wx", EnvVersion: "trial", Version: "1.0.1", Url: "体验版版本地址"}
|
|
|
+
|
|
|
+ for _, v := range []*version.Version{releaseDefault, releaseExact, trialDefault, trialExact} {
|
|
|
+ channel.VList.Push(v)
|
|
|
+ channel.VMap.Set(versionMapKey(v.Version, NormalizeEnvVersion(v.EnvVersion)), v)
|
|
|
+ }
|
|
|
+ versions.VChannels.Set("wx", channel)
|
|
|
+
|
|
|
+ if got := versions.Check("1.0.1", "wx", "release"); got != releaseDefault {
|
|
|
+ t.Fatalf("传入正式服环境版本时应优先返回正式服默认地址,实际返回 %#v", got)
|
|
|
+ }
|
|
|
+
|
|
|
+ if got := versions.Check("1.0.1", "wx", "trial"); got != trialDefault {
|
|
|
+ t.Fatalf("传入体验版环境版本时应优先返回体验版默认地址,实际返回 %#v", got)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestVersionsCheckEnvVersionWithoutDefault(t *testing.T) {
|
|
|
+ versions := VersionInit()
|
|
|
+ channel := new(ChannelVersions)
|
|
|
+
|
|
|
+ releaseExact := &version.Version{Channel: "wx", EnvVersion: "release", Version: "1.0.1", Url: "正式服版本地址"}
|
|
|
+ trialExact := &version.Version{Channel: "wx", EnvVersion: "trial", Version: "1.0.1", Url: "体验版版本地址"}
|
|
|
+
|
|
|
+ for _, v := range []*version.Version{releaseExact, trialExact} {
|
|
|
+ channel.VList.Push(v)
|
|
|
+ channel.VMap.Set(versionMapKey(v.Version, NormalizeEnvVersion(v.EnvVersion)), v)
|
|
|
+ }
|
|
|
+ versions.VChannels.Set("wx", channel)
|
|
|
+
|
|
|
+ if got := versions.Check("1.0.1", "wx", "release"); got != releaseExact {
|
|
|
+ t.Fatalf("正式服没有默认地址时应返回正式服版本地址,实际返回 %#v", got)
|
|
|
+ }
|
|
|
+
|
|
|
+ if got := versions.Check("1.0.1", "wx", "trial"); got != trialExact {
|
|
|
+ t.Fatalf("体验版没有默认地址时应返回体验版版本地址,实际返回 %#v", got)
|
|
|
+ }
|
|
|
+}
|