summaryrefslogtreecommitdiffstats
path: root/spec/unit/network/server.rb
diff options
context:
space:
mode:
authorRick Bradley <rick@rickbradley.com>2007-10-15 14:47:25 -0500
committerRick Bradley <rick@rickbradley.com>2007-10-15 14:47:25 -0500
commitc34efbccf1eec9957253d4fcdcb4ea9c79837ad8 (patch)
treeae04acf64b2b2a772c9d7d113fccf994fc6c71a3 /spec/unit/network/server.rb
parent9a179ec3a9df62c6179e7151831c4f07197cfbce (diff)
downloadpuppet-c34efbccf1eec9957253d4fcdcb4ea9c79837ad8.tar.gz
puppet-c34efbccf1eec9957253d4fcdcb4ea9c79837ad8.tar.xz
puppet-c34efbccf1eec9957253d4fcdcb4ea9c79837ad8.zip
Hooking up address/port support for the various servers w/ specs. Still need to start up a webrick server w/ address + port (this is far too incestuous with Puppet lib & Puppet.start at the moment).
Diffstat (limited to 'spec/unit/network/server.rb')
-rw-r--r--spec/unit/network/server.rb70
1 files changed, 58 insertions, 12 deletions
diff --git a/spec/unit/network/server.rb b/spec/unit/network/server.rb
index f5d5e25d5..6802c6aaa 100644
--- a/spec/unit/network/server.rb
+++ b/spec/unit/network/server.rb
@@ -10,33 +10,71 @@ describe Puppet::Network::Server, "when initializing" do
before do
@mock_http_server_class = mock('http server class')
Puppet::Network::HTTP.stubs(:server_class_by_type).returns(@mock_http_server_class)
+ Puppet.stubs(:[]).with(:servertype).returns(:suparserver)
+ end
+
+ it "should allow specifying a listening address" do
+ Puppet.stubs(:[]).with(:masterport).returns('')
+ @server = Puppet::Network::Server.new(:address => "127.0.0.1")
+ @server.address.should == "127.0.0.1"
+ end
+
+ it "should allow specifying a listening port" do
+ Puppet.stubs(:[]).with(:bindaddress).returns('')
+ @server = Puppet::Network::Server.new(:port => 31337)
+ @server.port.should == 31337
+ end
+
+ it "should use the Puppet configurator to find a default listening address" do
+ Puppet.stubs(:[]).with(:masterport).returns('')
+ Puppet.expects(:[]).with(:bindaddress).returns("10.0.0.1")
+ @server = Puppet::Network::Server.new
+ @server.address.should == "10.0.0.1"
+ end
+
+ it "should use the Puppet configurator to find a default listening port" do
+ Puppet.stubs(:[]).with(:bindaddress).returns('')
+ Puppet.expects(:[]).with(:masterport).returns(6667)
+ @server = Puppet::Network::Server.new
+ @server.port.should == 6667
+ end
+
+ it "should fail to initialize if no listening address can be found" do
+ Puppet.stubs(:[]).with(:masterport).returns(6667)
+ Puppet.stubs(:[]).with(:bindaddress).returns(nil)
+ Proc.new { Puppet::Network::Server.new }.should raise_error(ArgumentError)
end
+ it "should fail to initialize if no listening port can be found" do
+ Puppet.stubs(:[]).with(:bindaddress).returns("127.0.0.1")
+ Puppet.stubs(:[]).with(:masterport).returns(nil)
+ Proc.new { Puppet::Network::Server.new }.should raise_error(ArgumentError)
+ end
+
it "should use the Puppet configurator to determine which HTTP server will be used to provide access to clients" do
Puppet.expects(:[]).with(:servertype).returns(:suparserver)
- @server = Puppet::Network::Server.new
+ @server = Puppet::Network::Server.new(:address => "127.0.0.1", :port => 31337)
@server.server_type.should == :suparserver
end
it "should fail to initialize if there is no HTTP server known to the Puppet configurator" do
Puppet.expects(:[]).with(:servertype).returns(nil)
- Proc.new { Puppet::Network::Server.new }.should raise_error
+ Proc.new { Puppet::Network::Server.new(:address => "127.0.0.1", :port => 31337) }.should raise_error
end
it "should ask the Puppet::Network::HTTP class to fetch the proper HTTP server class" do
- Puppet.stubs(:[]).with(:servertype).returns(:suparserver)
mock_http_server_class = mock('http server class')
Puppet::Network::HTTP.expects(:server_class_by_type).with(:suparserver).returns(mock_http_server_class)
- @server = Puppet::Network::Server.new
+ @server = Puppet::Network::Server.new(:address => "127.0.0.1", :port => 31337)
end
it "should allow registering indirections" do
- @server = Puppet::Network::Server.new(:handlers => [ :foo, :bar, :baz])
+ @server = Puppet::Network::Server.new(:address => "127.0.0.1", :port => 31337, :handlers => [ :foo, :bar, :baz])
Proc.new { @server.unregister(:foo, :bar, :baz) }.should_not raise_error
end
it "should not be listening after initialization" do
- Puppet::Network::Server.new.should_not be_listening
+ Puppet::Network::Server.new(:address => "127.0.0.1", :port => 31337).should_not be_listening
end
end
@@ -45,7 +83,7 @@ describe Puppet::Network::Server, "in general" do
@mock_http_server_class = mock('http server class')
Puppet::Network::HTTP.stubs(:server_class_by_type).returns(@mock_http_server_class)
Puppet.stubs(:[]).with(:servertype).returns(:suparserver)
- @server = Puppet::Network::Server.new
+ @server = Puppet::Network::Server.new(:address => "127.0.0.1", :port => 31337)
end
it "should allow registering an indirection for client access by specifying its indirection name" do
@@ -110,7 +148,7 @@ describe Puppet::Network::Server, "in general" do
end
it "should allow for multiple configurations, each handling different indirections" do
- @server2 = Puppet::Network::Server.new
+ @server2 = Puppet::Network::Server.new(:address => "127.0.0.1", :port => 31337)
@server.register(:foo, :bar)
@server2.register(:foo, :xyzzy)
@server.unregister(:foo, :bar)
@@ -122,6 +160,14 @@ describe Puppet::Network::Server, "in general" do
it "should provide a means of determining which style of service is being offered to clients" do
@server.protocols.should == []
end
+
+ it "should provide a means of determining the listening address" do
+ @server.address.should == "127.0.0.1"
+ end
+
+ it "should provide a means of determining the listening port" do
+ @server.port.should == 31337
+ end
end
describe Puppet::Network::Server, "when listening is off" do
@@ -129,7 +175,7 @@ describe Puppet::Network::Server, "when listening is off" do
@mock_http_server_class = mock('http server class')
Puppet::Network::HTTP.stubs(:server_class_by_type).returns(@mock_http_server_class)
Puppet.stubs(:[]).with(:servertype).returns(:suparserver)
- @server = Puppet::Network::Server.new
+ @server = Puppet::Network::Server.new(:address => "127.0.0.1", :port => 31337)
@mock_http_server = mock('http server')
@mock_http_server.stubs(:listen)
@server.stubs(:http_server).returns(@mock_http_server)
@@ -154,7 +200,7 @@ describe Puppet::Network::Server, "when listening is on" do
@mock_http_server_class = mock('http server class')
Puppet::Network::HTTP.stubs(:server_class_by_type).returns(@mock_http_server_class)
Puppet.stubs(:[]).with(:servertype).returns(:suparserver)
- @server = Puppet::Network::Server.new
+ @server = Puppet::Network::Server.new(:address => "127.0.0.1", :port => 31337)
@mock_http_server = mock('http server')
@mock_http_server.stubs(:listen)
@mock_http_server.stubs(:unlisten)
@@ -180,7 +226,7 @@ describe Puppet::Network::Server, "when listening is being turned on" do
@mock_http_server_class = mock('http server class')
Puppet::Network::HTTP.stubs(:server_class_by_type).returns(@mock_http_server_class)
Puppet.stubs(:[]).with(:servertype).returns(:suparserver)
- @server = Puppet::Network::Server.new
+ @server = Puppet::Network::Server.new(:address => "127.0.0.1", :port => 31337)
@mock_http_server = mock('http server')
@mock_http_server.stubs(:listen)
end
@@ -204,7 +250,7 @@ describe Puppet::Network::Server, "when listening is being turned off" do
@mock_http_server_class = mock('http server class')
Puppet::Network::HTTP.stubs(:server_class_by_type).returns(@mock_http_server_class)
Puppet.stubs(:[]).with(:servertype).returns(:suparserver)
- @server = Puppet::Network::Server.new
+ @server = Puppet::Network::Server.new(:address => "127.0.0.1", :port => 31337)
@mock_http_server = mock('http server')
@mock_http_server.stubs(:listen)
@server.stubs(:http_server).returns(@mock_http_server)