1
// Copyright 2014 Canonical Ltd.
2
// Licensed under the AGPLv3, see LICENCE file for details.
7
jc "github.com/juju/testing/checkers"
10
"github.com/juju/juju/apiserver/client"
11
"github.com/juju/juju/network"
14
type filteringUnitTests struct {
17
var _ = gc.Suite(&filteringUnitTests{})
19
func (f *filteringUnitTests) TestMatchPortRanges(c *gc.C) {
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)
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)
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)
37
func (s *filteringUnitTests) TestMatchSubnet(c *gc.C) {
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)
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)
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)
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)