github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/provider/gce/environ_firewall_test.go (about)

     1  // Copyright 2014 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package gce_test
     5  
     6  import (
     7  	jc "github.com/juju/testing/checkers"
     8  	gc "gopkg.in/check.v1"
     9  
    10  	"github.com/juju/juju/provider/gce"
    11  )
    12  
    13  type environFirewallSuite struct {
    14  	gce.BaseSuite
    15  }
    16  
    17  var _ = gc.Suite(&environFirewallSuite{})
    18  
    19  func (s *environFirewallSuite) TestGlobalFirewallName(c *gc.C) {
    20  	uuid := s.Config.UUID()
    21  	fwname := gce.GlobalFirewallName(s.Env)
    22  
    23  	c.Check(fwname, gc.Equals, "juju-"+uuid)
    24  }
    25  
    26  func (s *environFirewallSuite) TestOpenPortsInvalidCredentialError(c *gc.C) {
    27  	s.FakeConn.Err = gce.InvalidCredentialError
    28  	c.Assert(s.InvalidatedCredentials, jc.IsFalse)
    29  	err := s.Env.OpenPorts(s.CallCtx, s.Rules)
    30  	c.Check(err, gc.NotNil)
    31  	c.Assert(s.InvalidatedCredentials, jc.IsTrue)
    32  }
    33  
    34  func (s *environFirewallSuite) TestOpenPorts(c *gc.C) {
    35  	err := s.Env.OpenPorts(s.CallCtx, s.Rules)
    36  
    37  	c.Check(err, jc.ErrorIsNil)
    38  }
    39  
    40  func (s *environFirewallSuite) TestOpenPortsAPI(c *gc.C) {
    41  	fwname := gce.GlobalFirewallName(s.Env)
    42  	err := s.Env.OpenPorts(s.CallCtx, s.Rules)
    43  	c.Assert(err, jc.ErrorIsNil)
    44  
    45  	c.Check(s.FakeConn.Calls, gc.HasLen, 1)
    46  	c.Check(s.FakeConn.Calls[0].FuncName, gc.Equals, "OpenPorts")
    47  	c.Check(s.FakeConn.Calls[0].FirewallName, gc.Equals, fwname)
    48  	c.Check(s.FakeConn.Calls[0].Rules, jc.DeepEquals, s.Rules)
    49  }
    50  
    51  func (s *environFirewallSuite) TestClosePorts(c *gc.C) {
    52  	err := s.Env.ClosePorts(s.CallCtx, s.Rules)
    53  
    54  	c.Check(err, jc.ErrorIsNil)
    55  }
    56  
    57  func (s *environFirewallSuite) TestClosePortsInvalidCredentialError(c *gc.C) {
    58  	s.FakeConn.Err = gce.InvalidCredentialError
    59  	c.Assert(s.InvalidatedCredentials, jc.IsFalse)
    60  	err := s.Env.ClosePorts(s.CallCtx, s.Rules)
    61  	c.Check(err, gc.NotNil)
    62  	c.Assert(s.InvalidatedCredentials, jc.IsTrue)
    63  }
    64  
    65  func (s *environFirewallSuite) TestClosePortsAPI(c *gc.C) {
    66  	fwname := gce.GlobalFirewallName(s.Env)
    67  	err := s.Env.ClosePorts(s.CallCtx, s.Rules)
    68  	c.Assert(err, jc.ErrorIsNil)
    69  
    70  	c.Check(s.FakeConn.Calls, gc.HasLen, 1)
    71  	c.Check(s.FakeConn.Calls[0].FuncName, gc.Equals, "ClosePorts")
    72  	c.Check(s.FakeConn.Calls[0].FirewallName, gc.Equals, fwname)
    73  	c.Check(s.FakeConn.Calls[0].Rules, jc.DeepEquals, s.Rules)
    74  }
    75  
    76  func (s *environFirewallSuite) TestPorts(c *gc.C) {
    77  	s.FakeConn.Rules = s.Rules
    78  
    79  	ports, err := s.Env.IngressRules(s.CallCtx)
    80  	c.Assert(err, jc.ErrorIsNil)
    81  
    82  	c.Check(ports, jc.DeepEquals, s.Rules)
    83  }
    84  
    85  func (s *environFirewallSuite) TestIngressRulesInvalidCredentialError(c *gc.C) {
    86  	s.FakeConn.Err = gce.InvalidCredentialError
    87  	c.Assert(s.InvalidatedCredentials, jc.IsFalse)
    88  	_, err := s.Env.IngressRules(s.CallCtx)
    89  	c.Check(err, gc.NotNil)
    90  	c.Assert(s.InvalidatedCredentials, jc.IsTrue)
    91  }
    92  
    93  func (s *environFirewallSuite) TestPortsAPI(c *gc.C) {
    94  	fwname := gce.GlobalFirewallName(s.Env)
    95  	_, err := s.Env.IngressRules(s.CallCtx)
    96  	c.Assert(err, jc.ErrorIsNil)
    97  
    98  	c.Check(s.FakeConn.Calls, gc.HasLen, 1)
    99  	c.Check(s.FakeConn.Calls[0].FuncName, gc.Equals, "Ports")
   100  	c.Check(s.FakeConn.Calls[0].FirewallName, gc.Equals, fwname)
   101  }