github.com/altoros/juju-vmware@v0.0.0-20150312064031-f19ae857ccca/provider/local/local_test.go (about) 1 // Copyright 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package local_test 5 6 import ( 7 "fmt" 8 "net" 9 stdtesting "testing" 10 11 jc "github.com/juju/testing/checkers" 12 gc "gopkg.in/check.v1" 13 14 "github.com/juju/juju/environs" 15 "github.com/juju/juju/provider" 16 "github.com/juju/juju/provider/local" 17 coretesting "github.com/juju/juju/testing" 18 ) 19 20 func TestLocal(t *stdtesting.T) { 21 gc.TestingT(t) 22 } 23 24 type localSuite struct { 25 coretesting.BaseSuite 26 } 27 28 var _ = gc.Suite(&localSuite{}) 29 30 func (*localSuite) TestProviderRegistered(c *gc.C) { 31 provider, error := environs.Provider(provider.Local) 32 c.Assert(error, gc.IsNil) 33 c.Assert(provider, gc.DeepEquals, local.Provider) 34 } 35 36 func (*localSuite) TestCheckLocalPort(c *gc.C) { 37 // Listen on a random port. 38 ln, err := net.Listen("tcp", "127.0.0.1:0") 39 c.Assert(err, jc.ErrorIsNil) 40 defer ln.Close() 41 port := ln.Addr().(*net.TCPAddr).Port 42 43 checkLocalPort := *local.CheckLocalPort 44 err = checkLocalPort(port, "test port") 45 c.Assert(err, gc.ErrorMatches, fmt.Sprintf("cannot use %d as test port, already in use", port)) 46 47 ln.Close() 48 err = checkLocalPort(port, "test port, no longer in use") 49 c.Assert(err, jc.ErrorIsNil) 50 }