diff --git a/pkg/moq/moq_test.go b/pkg/moq/moq_test.go index 18c33d6..2fb49ea 100644 --- a/pkg/moq/moq_test.go +++ b/pkg/moq/moq_test.go @@ -271,3 +271,20 @@ func TestGoGenerateVendoredPackages(t *testing.T) { t.Error("contains vendor directory in import path") } } + +func TestImportedPackageWithSameName(t *testing.T) { + m, err := New("testpackages/samenameimport", "") + if err != nil { + t.Fatalf("moq.New: %s", err) + } + var buf bytes.Buffer + err = m.Mock(&buf, "Example") + if err != nil { + t.Errorf("mock error: %s", err) + } + s := buf.String() + if !strings.Contains(s, `"samenameimport.A"`) { + t.Error("missing samenameimport.A to address the struct A from the external package samenameimport") + } + t.Logf("\n\n%s\n\n", s) +} diff --git a/pkg/moq/testpackages/samenameimport/samename.go b/pkg/moq/testpackages/samenameimport/samename.go new file mode 100644 index 0000000..e6bf454 --- /dev/null +++ b/pkg/moq/testpackages/samenameimport/samename.go @@ -0,0 +1,8 @@ +package samename + +import samename "github.com/matryer/moq/pkg/moq/testpackages/samenameimport/samenameimport" + +// Example is used to test issues with packages, which import another package with the same name +type Example interface { + Do(a samename.A) error +} diff --git a/pkg/moq/testpackages/samenameimport/samenameimport/samename.go b/pkg/moq/testpackages/samenameimport/samenameimport/samename.go new file mode 100644 index 0000000..19b3ba5 --- /dev/null +++ b/pkg/moq/testpackages/samenameimport/samenameimport/samename.go @@ -0,0 +1,4 @@ +package samename + +// The A is used in the parent package as a dependency +type A struct{}