...

Source file src/github.com/ory/x/stringsx/switch_case_test.go

Documentation: github.com/ory/x/stringsx

     1  package stringsx
     2  
     3  import (
     4  	"errors"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func TestRegisteredCases(t *testing.T) {
    11  	t.Run("case=adds values", func(t *testing.T) {
    12  		v1, v2 := "value 1", "value 2"
    13  
    14  		cs := RegisteredCases{}
    15  		cs.AddCase(v1)
    16  		cs.AddCase(v2)
    17  
    18  		assert.Equal(t, RegisteredCases{v1, v2}, cs)
    19  	})
    20  
    21  	t.Run("case=returns value on add", func(t *testing.T) {
    22  		v1, v2 := "value 1", "value 2"
    23  
    24  		cs := RegisteredCases{}
    25  		assert.Equal(t, v1, cs.AddCase(v1))
    26  		assert.Equal(t, v2, cs.AddCase(v2))
    27  	})
    28  
    29  	t.Run("case=converts to correct error", func(t *testing.T) {
    30  		c1, c2, actual := "case 1", "case 2", "actual"
    31  
    32  		cs := RegisteredCases{}
    33  		cs.AddCase(c1)
    34  		cs.AddCase(c2)
    35  
    36  		err := cs.ToUnknownCaseErr(actual)
    37  
    38  		assert.True(t, errors.Is(err, ErrUnknownCase))
    39  		assert.Equal(t, errUnknownCase{
    40  			cases:  cs,
    41  			actual: actual,
    42  		}, err)
    43  	})
    44  
    45  	t.Run("case=switch integration", func(t *testing.T) {
    46  		cases := RegisteredCases{}
    47  		var err error
    48  
    49  		switch f := "foo"; f {
    50  		case cases.AddCase("bar"):
    51  		case cases.AddCase("baz"):
    52  		default:
    53  			err = cases.ToUnknownCaseErr(f)
    54  		}
    55  
    56  		assert.Equal(t, RegisteredCases{"bar", "baz"}, cases)
    57  		assert.Equal(t, errUnknownCase{
    58  			cases:  cases,
    59  			actual: "foo",
    60  		}, err)
    61  	})
    62  }
    63  

View as plain text