stamm/dep_radar

View on GitHub
providers/bitbucketprivate/goimport_test.go

Summary

Maintainability
B
4 hrs
Test Coverage
package bitbucketprivate

import (
    "context"
    "errors"
    "testing"

    "github.com/stamm/dep_radar"
    "github.com/stamm/dep_radar/mocks"
    "github.com/stretchr/testify/mock"
    "github.com/stretchr/testify/require"
)

func TestGoImport_GetProject(t *testing.T) {
    t.Parallel()
    require := require.New(t)

    client := &mocks.IWebClient{}
    client.On("Get", mock.Anything, "https://godep.example.com/app?go-get=1").Return([]byte(`<html>
<head>
<meta name="go-import" content="godep.example.com/app git ssh://git@bitbucket.example.com/go_project/app.git"/></head>
<body>

</body>
</html>`), nil)

    project, err := GetProject(context.Background(), client, dep_radar.Pkg("godep.example.com/app"), "bitbucket.example.com")
    require.NoError(err)
    require.Equal("go_project", project)
}

func TestGoImport_GetProjectWithError(t *testing.T) {
    t.Parallel()
    require := require.New(t)

    client := &mocks.IWebClient{}
    client.On("Get", mock.Anything, "https://godep.example.com/app?go-get=1").Return(nil, errors.New("err"))

    project, err := GetProject(context.Background(), client, dep_radar.Pkg("godep.example.com/app"), "bitbucket.example.com")
    require.EqualError(err, "err")
    require.Equal("", project)
}

func TestGoImport_GetProjectWithBadPrefix(t *testing.T) {
    t.Parallel()
    require := require.New(t)

    client := &mocks.IWebClient{}
    client.On("Get", mock.Anything, "https://godep.example.com/app?go-get=1").Return([]byte(`<html>
<head>
<meta name="go-import" content="godep.example.com/app git ssh://git@bitbu_cket.example.com/go_project/app.git"/></head>
<body>

</body>
</html>`), nil)

    project, err := GetProject(context.Background(), client, dep_radar.Pkg("godep.example.com/app"), "bitbucket.example.com")
    require.EqualError(err, "Can't find project in repo urls ssh://git@bitbu_cket.example.com/go_project/app.git")
    require.Equal("", project)
}

func TestGoImport_GetProjectFromSecond(t *testing.T) {
    t.Parallel()
    require := require.New(t)

    client := &mocks.IWebClient{}
    client.On("Get", mock.Anything, "https://godep.example.com/app?go-get=1").Return([]byte(`<html>
<head>
<meta name="go-import" content="godep.example.com/app git ssh://git@bit_bucket.example.com/go_project/app.git"/>
<meta name="go-import" content="godep.example.com/app git ssh://git@bitbucket.example.com/go_project/app.git"/>
</head>
<body>

</body>
</html>`), nil)

    project, err := GetProject(context.Background(), client, dep_radar.Pkg("godep.example.com/app"), "bitbucket.example.com")
    require.NoError(err)
    require.Equal("go_project", project)
}

func TestGoImport_GetProjectWrongPackage(t *testing.T) {
    t.Parallel()
    require := require.New(t)

    client := &mocks.IWebClient{}
    client.On("Get", mock.Anything, "https://godep.example.com/app?go-get=1").Return([]byte(`<html>
<head>
<meta name="go-import" content="godep.example.com/app2 git ssh://git@bitbucket.example.com/go_project/app.git"/>
</head>
<body>

</body>
</html>`), nil)

    project, err := GetProject(context.Background(), client, dep_radar.Pkg("godep.example.com/app"), "bitbucket.example.com")
    require.EqualError(err, "Can't find project in repo urls ")
    require.Equal("", project)
}