github.com/wallyworld/juju@v0.0.0-20161013125918-6cf1bc9d917a/apiserver/client/filtering_test.go (about)

     1  // Copyright 2014 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package client_test
     5  
     6  import (
     7  	jc "github.com/juju/testing/checkers"
     8  	gc "gopkg.in/check.v1"
     9  
    10  	"github.com/juju/juju/apiserver/client"
    11  	"github.com/juju/juju/network"
    12  )
    13  
    14  type filteringUnitTests struct {
    15  }
    16  
    17  var _ = gc.Suite(&filteringUnitTests{})
    18  
    19  func (f *filteringUnitTests) TestMatchPortRanges(c *gc.C) {
    20  
    21  	match, ok, err := client.MatchPortRanges([]string{"80/tcp"}, network.PortRange{80, 80, "tcp"})
    22  	c.Check(err, jc.ErrorIsNil)
    23  	c.Check(ok, jc.IsTrue)
    24  	c.Check(match, jc.IsTrue)
    25  
    26  	match, ok, err = client.MatchPortRanges([]string{"80-90/tcp"}, network.PortRange{80, 90, "tcp"})
    27  	c.Check(err, jc.ErrorIsNil)
    28  	c.Check(ok, jc.IsTrue)
    29  	c.Check(match, jc.IsTrue)
    30  
    31  	match, ok, err = client.MatchPortRanges([]string{"90/tcp"}, network.PortRange{80, 90, "tcp"})
    32  	c.Check(err, jc.ErrorIsNil)
    33  	c.Check(ok, jc.IsTrue)
    34  	c.Check(match, jc.IsFalse)
    35  }
    36  
    37  func (s *filteringUnitTests) TestMatchSubnet(c *gc.C) {
    38  
    39  	// We do not resolve hostnames.
    40  	match, ok, err := client.MatchSubnet([]string{"localhost"}, "127.0.0.1")
    41  	c.Check(err, jc.ErrorIsNil)
    42  	c.Check(ok, jc.IsFalse)
    43  	c.Check(match, jc.IsFalse)
    44  
    45  	match, ok, err = client.MatchSubnet([]string{"127.0.0.1"}, "127.0.0.1")
    46  	c.Check(err, jc.ErrorIsNil)
    47  	c.Check(ok, jc.IsTrue)
    48  	c.Check(match, jc.IsTrue)
    49  
    50  	match, ok, err = client.MatchSubnet([]string{"localhost"}, "10.0.0.1")
    51  	c.Check(err, jc.ErrorIsNil)
    52  	c.Check(ok, jc.IsFalse)
    53  	c.Check(match, jc.IsFalse)
    54  
    55  	match, ok, err = client.MatchSubnet([]string{"testing.local"}, "testing.local")
    56  	c.Check(err, jc.ErrorIsNil)
    57  	c.Check(ok, jc.IsTrue)
    58  	c.Check(match, jc.IsTrue)
    59  }