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  }