1
// Copyright 2012, 2013 Canonical Ltd.
2
// Licensed under the LGPLv3, see LICENCE file for details.
7
jc "github.com/juju/testing/checkers"
9
"gopkg.in/juju/charmstore.v4/csclient"
11
"gopkg.in/juju/charm.v5"
12
"gopkg.in/juju/charm.v5/charmrepo"
13
charmtesting "gopkg.in/juju/charm.v5/testing"
16
var TestCharms = charmtesting.NewRepo("../internal/test-charm-repo", "quantal")
18
type inferRepoSuite struct{}
20
var _ = gc.Suite(&inferRepoSuite{})
22
var inferRepositoryTests = []struct {
27
url: "cs:trusty/django",
29
url: "local:precise/wordpress",
30
err: "path to local repository not specified",
32
url: "local:precise/haproxy-47",
33
localRepoPath: "/tmp/repo-path",
36
func (s *inferRepoSuite) TestInferRepository(c *gc.C) {
37
for i, test := range inferRepositoryTests {
38
c.Logf("test %d: %s", i, test.url)
39
ref := charm.MustParseReference(test.url)
40
repo, err := charmrepo.InferRepository(
41
ref, charmrepo.NewCharmStoreParams{}, test.localRepoPath)
43
c.Assert(err, gc.ErrorMatches, test.err)
44
c.Assert(repo, gc.IsNil)
47
c.Assert(err, jc.ErrorIsNil)
48
switch store := repo.(type) {
49
case *charmrepo.LocalRepository:
50
c.Assert(store.Path, gc.Equals, test.localRepoPath)
51
case *charmrepo.CharmStore:
52
c.Assert(store.URL(), gc.Equals, csclient.ServerURL)
54
c.Fatal("unknown repository type")