github.com/aavshr/aws-sdk-go@v1.41.3/internal/ini/trim_spaces_test.go (about)

     1  package ini
     2  
     3  import (
     4  	"reflect"
     5  	"testing"
     6  )
     7  
     8  func TestTrimSpaces(t *testing.T) {
     9  	cases := []struct {
    10  		name         string
    11  		node         AST
    12  		expectedNode AST
    13  	}{
    14  		{
    15  			name: "simple case",
    16  			node: AST{
    17  				Root: Token{
    18  					raw: []rune("foo"),
    19  				},
    20  			},
    21  			expectedNode: AST{
    22  				Root: Token{
    23  					raw: []rune("foo"),
    24  				},
    25  			},
    26  		},
    27  		{
    28  			name: "LHS case",
    29  			node: AST{
    30  				Root: Token{
    31  					raw: []rune("         foo"),
    32  				},
    33  			},
    34  			expectedNode: AST{
    35  				Root: Token{
    36  					raw: []rune("foo"),
    37  				},
    38  			},
    39  		},
    40  		{
    41  			name: "RHS case",
    42  			node: AST{
    43  				Root: Token{
    44  					raw: []rune("foo     "),
    45  				},
    46  			},
    47  			expectedNode: AST{
    48  				Root: Token{
    49  					raw: []rune("foo"),
    50  				},
    51  			},
    52  		},
    53  		{
    54  			name: "both sides case",
    55  			node: AST{
    56  				Root: Token{
    57  					raw: []rune(" foo "),
    58  				},
    59  			},
    60  			expectedNode: AST{
    61  				Root: Token{
    62  					raw: []rune("foo"),
    63  				},
    64  			},
    65  		},
    66  	}
    67  
    68  	for _, c := range cases {
    69  		node := trimSpaces(c.node)
    70  
    71  		if e, a := c.expectedNode, node; !reflect.DeepEqual(e, a) {
    72  			t.Errorf("%s: expected %v, but received %v", c.name, e, a)
    73  		}
    74  	}
    75  }