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