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  }