github.com/benma/gogen@v0.0.0-20160826115606-cf49914b915a/specific/target_type_test.go (about)

     1  package specific
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  var targetTypeTests = []struct {
     8  	src      string
     9  	expected targetType
    10  }{
    11  	{
    12  		src: "string",
    13  		expected: targetType{
    14  			newPkg:    "",
    15  			newType:   "string",
    16  			isPointer: false,
    17  		},
    18  	},
    19  	{
    20  		src: "*string",
    21  		expected: targetType{
    22  			newPkg:    "",
    23  			newType:   "string",
    24  			isPointer: true,
    25  		},
    26  	},
    27  	{
    28  		src: "*os.File",
    29  		expected: targetType{
    30  			newPkg:    "os",
    31  			newType:   "os.File",
    32  			isPointer: true,
    33  		},
    34  	},
    35  	{
    36  		src: "os.File",
    37  		expected: targetType{
    38  			newPkg:    "os",
    39  			newType:   "os.File",
    40  			isPointer: false,
    41  		},
    42  	},
    43  	{
    44  		src: "dummyexample.com/whatever/pkg.Type",
    45  		expected: targetType{
    46  			newPkg:    "dummyexample.com/whatever/pkg",
    47  			newType:   "pkg.Type",
    48  			isPointer: false,
    49  		},
    50  	},
    51  }
    52  
    53  func TestParseTargetType(t *testing.T) {
    54  	errStr := "%s mismatch for %q\n  expected: %q\n  returned: %q"
    55  	for _, test := range targetTypeTests {
    56  		res := parseTargetType(test.src)
    57  		if res.isPointer != test.expected.isPointer {
    58  			t.Errorf(errStr, "isPointer", test.src, test.expected.isPointer, res.isPointer)
    59  		}
    60  		if res.newPkg != test.expected.newPkg {
    61  			t.Errorf(errStr, "newPkg", test.src, test.expected.newPkg, res.newPkg)
    62  		}
    63  		if res.newType != test.expected.newType {
    64  			t.Errorf(errStr, "newType", test.src, test.expected.newType, res.newType)
    65  		}
    66  	}
    67  }