github.com/mattyw/juju@v0.0.0-20140610034352-732aecd63861/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 gc "launchpad.net/gocheck" 12 13 "github.com/juju/juju/environs" 14 "github.com/juju/juju/provider" 15 "github.com/juju/juju/provider/local" 16 coretesting "github.com/juju/juju/testing" 17 ) 18 19 func TestLocal(t *stdtesting.T) { 20 gc.TestingT(t) 21 } 22 23 type localSuite struct { 24 coretesting.BaseSuite 25 } 26 27 var _ = gc.Suite(&localSuite{}) 28 29 func (*localSuite) TestProviderRegistered(c *gc.C) { 30 provider, error := environs.Provider(provider.Local) 31 c.Assert(error, gc.IsNil) 32 c.Assert(provider, gc.DeepEquals, local.Provider) 33 } 34 35 func (*localSuite) TestCheckLocalPort(c *gc.C) { 36 // Listen on a random port. 37 ln, err := net.Listen("tcp", "127.0.0.1:0") 38 c.Assert(err, gc.IsNil) 39 defer ln.Close() 40 port := ln.Addr().(*net.TCPAddr).Port 41 42 checkLocalPort := *local.CheckLocalPort 43 err = checkLocalPort(port, "test port") 44 c.Assert(err, gc.ErrorMatches, fmt.Sprintf("cannot use %d as test port, already in use", port)) 45 46 ln.Close() 47 err = checkLocalPort(port, "test port, no longer in use") 48 c.Assert(err, gc.IsNil) 49 }