github.com/go-board/x-go@v0.1.2-0.20220610024734-db1323f6cb15/xos/env_test.go (about)

     1  package xos_test
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/require"
     8  
     9  	"github.com/go-board/x-go/xos"
    10  )
    11  
    12  func init() {
    13  	os.Setenv("FALSE_KEY", "0")
    14  	os.Setenv("TRUE_KEY", "1")
    15  
    16  	os.Setenv("INT_KEY", "12345678")
    17  	os.Setenv("INTS_KEY", "1,2,3,4,5")
    18  	os.Setenv("BAD_INT_KEY", "asf")
    19  
    20  	os.Setenv("STRING_KEY", "HELLO")
    21  	os.Setenv("STRINGS_KEY", "Hello,world")
    22  }
    23  
    24  func TestEnvBool(t *testing.T) {
    25  	ok, err := xos.EnvBool("FALSE_KEY")
    26  	if err != nil {
    27  		t.Error(err)
    28  	}
    29  	if ok {
    30  		t.Error("expect false, got true")
    31  	}
    32  
    33  	ok, err = xos.EnvBool("TRUE_KEY")
    34  	if err != nil {
    35  		t.Error(err)
    36  	}
    37  	if !ok {
    38  		t.Error("expect true, got false")
    39  	}
    40  
    41  }
    42  
    43  func TestEnvInt64(t *testing.T) {
    44  	t.Run("int", func(t *testing.T) {
    45  		i, err := xos.EnvInt64("INT_KEY")
    46  		require.Nil(t, err, "err must be nil")
    47  		require.Equal(t, int64(12345678), i, "int value is 12345678")
    48  	})
    49  	t.Run("ints", func(t *testing.T) {
    50  		is, err := xos.EnvInt64s("INTS_KEY")
    51  		require.Nil(t, err, "err must be nil")
    52  		require.Equal(t, 5, len(is), "slice length is 5")
    53  	})
    54  	t.Run("bad int", func(t *testing.T) {
    55  		_, err := xos.EnvInt64("BAD_INT_KEY")
    56  		require.NotNil(t, err, "err must be not nil")
    57  	})
    58  }
    59  
    60  func TestEnvString(t *testing.T) {
    61  }