summaryrefslogtreecommitdiff
path: root/vendor/github.com/golang/mock/mockgen/parse_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/golang/mock/mockgen/parse_test.go')
-rw-r--r--vendor/github.com/golang/mock/mockgen/parse_test.go108
1 files changed, 108 insertions, 0 deletions
diff --git a/vendor/github.com/golang/mock/mockgen/parse_test.go b/vendor/github.com/golang/mock/mockgen/parse_test.go
new file mode 100644
index 0000000..47e4d79
--- /dev/null
+++ b/vendor/github.com/golang/mock/mockgen/parse_test.go
@@ -0,0 +1,108 @@
+package main
+
+import (
+ "go/ast"
+ "go/parser"
+ "go/token"
+ "testing"
+)
+
+func TestFileParser_ParseFile(t *testing.T) {
+ fs := token.NewFileSet()
+ file, err := parser.ParseFile(fs, "tests/custom_package_name/greeter/greeter.go", nil, 0)
+ if err != nil {
+ t.Fatalf("Unexpected error: %v", err)
+ }
+
+ p := fileParser{
+ fileSet: fs,
+ imports: make(map[string]string),
+ importedInterfaces: make(map[string]map[string]*ast.InterfaceType),
+ }
+
+ pkg, err := p.parseFile("", file)
+ if err != nil {
+ t.Fatalf("Unexpected error: %v", err)
+ }
+
+ checkGreeterImports(t, p.imports)
+
+ expectedName := "greeter"
+ if pkg.Name != expectedName {
+ t.Fatalf("Expected name to be %v but got %v", expectedName, pkg.Name)
+ }
+
+ expectedInterfaceName := "InputMaker"
+ if pkg.Interfaces[0].Name != expectedInterfaceName {
+ t.Fatalf("Expected interface name to be %v but got %v", expectedInterfaceName, pkg.Interfaces[0].Name)
+ }
+}
+
+func TestFileParser_ParsePackage(t *testing.T) {
+ fs := token.NewFileSet()
+ _, err := parser.ParseFile(fs, "tests/custom_package_name/greeter/greeter.go", nil, 0)
+ if err != nil {
+ t.Fatalf("Unexpected error: %v", err)
+ }
+
+ p := fileParser{
+ fileSet: fs,
+ imports: make(map[string]string),
+ importedInterfaces: make(map[string]map[string]*ast.InterfaceType),
+ }
+
+ err = p.parsePackage("github.com/golang/mock/mockgen/tests/custom_package_name/greeter")
+ if err != nil {
+ t.Fatalf("Unexpected error: %v", err)
+ }
+
+ checkGreeterImports(t, p.imports)
+}
+
+func TestImportsOfFile(t *testing.T) {
+ fs := token.NewFileSet()
+ file, err := parser.ParseFile(fs, "tests/custom_package_name/greeter/greeter.go", nil, 0)
+ if err != nil {
+ t.Fatalf("Unexpected error: %v", err)
+ }
+
+ imports := importsOfFile(file)
+ checkGreeterImports(t, imports)
+}
+
+func checkGreeterImports(t *testing.T, imports map[string]string) {
+ // check that imports have stdlib package "fmt"
+ if fmtPackage, ok := imports["fmt"]; !ok {
+ t.Errorf("Expected imports to have key \"fmt\"")
+ } else {
+ expectedFmtPackage := "fmt"
+ if fmtPackage != expectedFmtPackage {
+ t.Errorf("Expected fmt key to have value %s but got %s", expectedFmtPackage, fmtPackage)
+ }
+ }
+
+ // check that imports have package named "validator"
+ if validatorPackage, ok := imports["validator"]; !ok {
+ t.Errorf("Expected imports to have key \"fmt\"")
+ } else {
+ expectedValidatorPackage := "github.com/golang/mock/mockgen/tests/custom_package_name/validator"
+ if validatorPackage != expectedValidatorPackage {
+ t.Errorf("Expected validator key to have value %s but got %s", expectedValidatorPackage, validatorPackage)
+ }
+ }
+
+ // check that imports have package named "client"
+ if clientPackage, ok := imports["client"]; !ok {
+ t.Errorf("Expected imports to have key \"client\"")
+ } else {
+ expectedClientPackage := "github.com/golang/mock/mockgen/tests/custom_package_name/client/v1"
+ if clientPackage != expectedClientPackage {
+ t.Errorf("Expected client key to have value %s but got %s", expectedClientPackage, clientPackage)
+ }
+ }
+
+ // check that imports don't have package named "v1"
+ if _, ok := imports["v1"]; ok {
+ t.Errorf("Expected import not to have key \"v1\"")
+ }
+}