OLD | NEW |
1 // launchpad.net/juju/go/state | 1 // launchpad.net/juju/go/state |
2 // | 2 // |
3 // Copyright (c) 2011-2012 Canonical Ltd. | 3 // Copyright (c) 2011-2012 Canonical Ltd. |
4 | |
5 package state | 4 package state |
6 | 5 |
7 import ( | 6 import ( |
8 "fmt" | |
9 . "launchpad.net/gocheck" | 7 . "launchpad.net/gocheck" |
10 "launchpad.net/goyaml" | 8 "launchpad.net/goyaml" |
11 "launchpad.net/gozk/zookeeper" | 9 "launchpad.net/gozk/zookeeper" |
12 "testing" | |
13 ) | 10 ) |
14 | 11 |
15 // TestPackage integrates the tests into gotest. | |
16 func TestPackage(t *testing.T) { | |
17 TestingT(t) | |
18 } | |
19 | |
20 type TopologySuite struct { | 12 type TopologySuite struct { |
21 zkServer *zookeeper.Server | 13 zkServer *zookeeper.Server |
22 zkTestRoot string | 14 zkTestRoot string |
23 zkTestPort int | 15 zkTestPort int |
24 zkAddr string | 16 zkAddr string |
25 zkConn *zookeeper.Conn | 17 zkConn *zookeeper.Conn |
26 t *topology | 18 t *topology |
27 } | 19 } |
28 | 20 |
29 var _ = Suite(&TopologySuite{}) | 21 var _ = Suite(&TopologySuite{}) |
30 | 22 |
31 func (s *TopologySuite) SetUpSuite(c *C) { | |
32 var err error | |
33 s.zkTestRoot = c.MkDir() + "/zookeeper" | |
34 s.zkTestPort = 21812 | |
35 s.zkAddr = fmt.Sprint("localhost:", s.zkTestPort) | |
36 | |
37 s.zkServer, err = zookeeper.CreateServer(s.zkTestPort, s.zkTestRoot, "") | |
38 if err != nil { | |
39 c.Fatal("Cannot set up ZooKeeper server environment: ", err) | |
40 } | |
41 err = s.zkServer.Start() | |
42 if err != nil { | |
43 c.Fatal("Cannot start ZooKeeper server: ", err) | |
44 } | |
45 } | |
46 | |
47 func (s *TopologySuite) TearDownSuite(c *C) { | |
48 if s.zkServer != nil { | |
49 s.zkServer.Destroy() | |
50 } | |
51 } | |
52 | |
53 func (s *TopologySuite) SetUpTest(c *C) { | 23 func (s *TopologySuite) SetUpTest(c *C) { |
54 // Connect the server. | 24 // Connect the server. |
55 » _, s.zkConn = OpenAddr(c, s.zkAddr) | 25 » st, err := Open(&Info{ |
| 26 » » Addrs: []string{ZkAddr}, |
| 27 » }) |
| 28 » c.Assert(err, IsNil) |
| 29 » s.zkConn = ZkConn(st) |
56 // Read the toplogy. | 30 // Read the toplogy. |
57 var err error | |
58 s.t, err = readTopology(s.zkConn) | 31 s.t, err = readTopology(s.zkConn) |
59 c.Assert(err, IsNil) | 32 c.Assert(err, IsNil) |
60 } | 33 } |
61 | 34 |
62 func (s *TopologySuite) TearDownTest(c *C) { | 35 func (s *TopologySuite) TearDownTest(c *C) { |
63 // Delete possible nodes, ignore errors. | 36 // Delete possible nodes, ignore errors. |
64 zkRemoveTree(s.zkConn, "/topology") | 37 zkRemoveTree(s.zkConn, "/topology") |
65 s.zkConn.Close() | 38 s.zkConn.Close() |
66 } | 39 } |
67 | 40 |
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
475 zkTestRoot string | 448 zkTestRoot string |
476 zkTestPort int | 449 zkTestPort int |
477 zkAddr string | 450 zkAddr string |
478 zkConn *zookeeper.Conn | 451 zkConn *zookeeper.Conn |
479 path string | 452 path string |
480 } | 453 } |
481 | 454 |
482 var _ = Suite(&ConfigNodeSuite{}) | 455 var _ = Suite(&ConfigNodeSuite{}) |
483 | 456 |
484 func (s *ConfigNodeSuite) SetUpSuite(c *C) { | 457 func (s *ConfigNodeSuite) SetUpSuite(c *C) { |
485 var err error | |
486 s.zkTestRoot = c.MkDir() + "/zookeeper" | |
487 s.zkTestPort = 21812 | |
488 s.zkAddr = fmt.Sprint("localhost:", s.zkTestPort) | |
489 s.path = "/config" | 458 s.path = "/config" |
490 | |
491 s.zkServer, err = zookeeper.CreateServer(s.zkTestPort, s.zkTestRoot, "") | |
492 if err != nil { | |
493 c.Fatal("Cannot set up ZooKeeper server environment: ", err) | |
494 } | |
495 err = s.zkServer.Start() | |
496 if err != nil { | |
497 c.Fatal("Cannot start ZooKeeper server: ", err) | |
498 } | |
499 } | |
500 | |
501 func (s *ConfigNodeSuite) TearDownSuite(c *C) { | |
502 if s.zkServer != nil { | |
503 s.zkServer.Destroy() | |
504 } | |
505 } | 459 } |
506 | 460 |
507 func (s *ConfigNodeSuite) SetUpTest(c *C) { | 461 func (s *ConfigNodeSuite) SetUpTest(c *C) { |
508 » _, s.zkConn = OpenAddr(c, s.zkAddr) | 462 » // Connect the server. |
| 463 » st, err := Open(&Info{ |
| 464 » » Addrs: []string{ZkAddr}, |
| 465 » }) |
| 466 » c.Assert(err, IsNil) |
| 467 » s.zkConn = ZkConn(st) |
509 } | 468 } |
510 | 469 |
511 func (s *ConfigNodeSuite) TearDownTest(c *C) { | 470 func (s *ConfigNodeSuite) TearDownTest(c *C) { |
512 // Delete possible nodes, ignore errors. | 471 // Delete possible nodes, ignore errors. |
513 zkRemoveTree(s.zkConn, s.path) | 472 zkRemoveTree(s.zkConn, s.path) |
514 s.zkConn.Close() | 473 s.zkConn.Close() |
515 } | 474 } |
516 | 475 |
517 func (s ConfigNodeSuite) TestCreateEmptyConfigNode(c *C) { | 476 func (s ConfigNodeSuite) TestCreateEmptyConfigNode(c *C) { |
518 // Check that creating an empty node works correctly. | 477 // Check that creating an empty node works correctly. |
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
812 // Shouldn't write again. Changes were already | 771 // Shouldn't write again. Changes were already |
813 // flushed and acted upon by other parties. | 772 // flushed and acted upon by other parties. |
814 changes, err = nodeOne.Write() | 773 changes, err = nodeOne.Write() |
815 c.Assert(err, IsNil) | 774 c.Assert(err, IsNil) |
816 c.Assert(changes, Equals, []ItemChange{}) | 775 c.Assert(changes, Equals, []ItemChange{}) |
817 | 776 |
818 err = nodeOne.Read() | 777 err = nodeOne.Read() |
819 c.Assert(err, IsNil) | 778 c.Assert(err, IsNil) |
820 c.Assert(nodeOne, Equals, nodeTwo) | 779 c.Assert(nodeOne, Equals, nodeTwo) |
821 } | 780 } |
| 781 |
| 782 type QuoteSuite struct{} |
| 783 |
| 784 var _ = Suite(&QuoteSuite{}) |
| 785 |
| 786 func (s QuoteSuite) TestUnmodified(c *C) { |
| 787 // Check that a string containig only valid |
| 788 // chars stays unmodified. |
| 789 in := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-" |
| 790 out := Quote(in) |
| 791 c.Assert(out, Equals, in) |
| 792 } |
| 793 |
| 794 func (s QuoteSuite) TestQuote(c *C) { |
| 795 // Check that invalid chars are translated correctly. |
| 796 in := "hello_there/how'are~you-today.sir" |
| 797 out := Quote(in) |
| 798 c.Assert(out, Equals, "hello_5f_there_2f_how_27_are_7e_you-today.sir") |
| 799 } |
OLD | NEW |