github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/internal/acceptance/clients/testing/conditions_test.go (about) 1 //go:build acceptance 2 3 package testing 4 5 import ( 6 "fmt" 7 "os" 8 "testing" 9 10 "github.com/vnpaycloud-console/gophercloud/v2/internal/acceptance/clients" 11 ) 12 13 func TestIsCurrentAbove(t *testing.T) { 14 cases := []struct { 15 Current string 16 Release string 17 Result bool 18 }{ 19 {Current: "master", Release: "zed", Result: true}, 20 {Current: "master", Release: "2023.1", Result: true}, 21 {Current: "master", Release: "master", Result: false}, 22 {Current: "zed", Release: "master", Result: false}, 23 {Current: "zed", Release: "yoga", Result: true}, 24 {Current: "zed", Release: "2023.1", Result: false}, 25 {Current: "2023.1", Release: "2023.1", Result: false}, 26 {Current: "2023.2", Release: "stable/2023.1", Result: true}, 27 } 28 29 for _, tt := range cases { 30 t.Run(fmt.Sprintf("%s above %s", tt.Current, tt.Release), func(t *testing.T) { 31 os.Setenv("OS_BRANCH", tt.Current) 32 got := clients.IsCurrentAbove(t, tt.Release) 33 if got != tt.Result { 34 t.Errorf("got %v want %v", got, tt.Result) 35 } 36 }) 37 38 } 39 } 40 41 func TestIsCurrentBelow(t *testing.T) { 42 cases := []struct { 43 Current string 44 Release string 45 Result bool 46 }{ 47 {Current: "master", Release: "zed", Result: false}, 48 {Current: "master", Release: "2023.1", Result: false}, 49 {Current: "master", Release: "master", Result: false}, 50 {Current: "zed", Release: "master", Result: true}, 51 {Current: "zed", Release: "yoga", Result: false}, 52 {Current: "zed", Release: "2023.1", Result: true}, 53 {Current: "2023.1", Release: "2023.1", Result: false}, 54 {Current: "2023.2", Release: "stable/2023.1", Result: false}, 55 } 56 57 for _, tt := range cases { 58 t.Run(fmt.Sprintf("%s below %s", tt.Current, tt.Release), func(t *testing.T) { 59 os.Setenv("OS_BRANCH", tt.Current) 60 got := clients.IsCurrentBelow(t, tt.Release) 61 if got != tt.Result { 62 t.Errorf("got %v want %v", got, tt.Result) 63 } 64 }) 65 66 } 67 }