launchpad.net/~rogpeppe/juju-core/500-errgo-fix@v0.0.0-20140213181702-000000002356/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 10 stdtesting "testing" 11 12 gc "launchpad.net/gocheck" 13 14 "launchpad.net/juju-core/environs" 15 "launchpad.net/juju-core/provider" 16 "launchpad.net/juju-core/provider/local" 17 "launchpad.net/juju-core/testing/testbase" 18 ) 19 20 func TestLocal(t *stdtesting.T) { 21 gc.TestingT(t) 22 } 23 24 type localSuite struct { 25 testbase.LoggingSuite 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", ":0") 39 c.Assert(err, gc.IsNil) 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, gc.IsNil) 50 }