siffer 0.0.5 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +1 -1
- data/README +93 -0
- data/lib/siffer.rb +13 -16
- data/lib/siffer/agent.rb +39 -31
- data/lib/siffer/core_ext/hash.rb +15 -0
- data/lib/siffer/messages.rb +38 -4
- data/lib/siffer/messages/ack.rb +160 -35
- data/lib/siffer/messages/event.rb +20 -0
- data/lib/siffer/messages/message.rb +47 -58
- data/lib/siffer/messages/provide.rb +25 -0
- data/lib/siffer/messages/provision.rb +17 -0
- data/lib/siffer/messages/register.rb +42 -52
- data/lib/siffer/messages/request.rb +138 -0
- data/lib/siffer/messages/response.rb +48 -0
- data/lib/siffer/messages/subscribe.rb +17 -0
- data/lib/siffer/messages/system_control.rb +94 -0
- data/lib/siffer/models.rb +1 -0
- data/lib/siffer/models/address.rb +39 -0
- metadata +25 -146
- data/README.rdoc +0 -65
- data/Rakefile +0 -64
- data/bin/siffer +0 -71
- data/doc/SIF ImplementationSpecification.pdf +0 -0
- data/doc/rdoc/classes/Siffer.html +0 -259
- data/doc/rdoc/classes/Siffer/Agent.html +0 -177
- data/doc/rdoc/classes/Siffer/Container.html +0 -165
- data/doc/rdoc/classes/Siffer/Messages.html +0 -81
- data/doc/rdoc/classes/Siffer/Messages/Ack.html +0 -115
- data/doc/rdoc/classes/Siffer/Messages/Acl.html +0 -83
- data/doc/rdoc/classes/Siffer/Messages/Error.html +0 -157
- data/doc/rdoc/classes/Siffer/Messages/Message.html +0 -235
- data/doc/rdoc/classes/Siffer/Messages/Message/Header.html +0 -107
- data/doc/rdoc/classes/Siffer/Messages/Register.html +0 -154
- data/doc/rdoc/classes/Siffer/Messages/RequestBody.html +0 -185
- data/doc/rdoc/classes/Siffer/Messages/Status.html +0 -156
- data/doc/rdoc/classes/Siffer/Messaging.html +0 -212
- data/doc/rdoc/classes/Siffer/Protocol.html +0 -254
- data/doc/rdoc/classes/Siffer/Protocol/NonPostRequest.html +0 -54
- data/doc/rdoc/classes/Siffer/Protocol/UnknownPath.html +0 -54
- data/doc/rdoc/classes/Siffer/Registration.html +0 -251
- data/doc/rdoc/classes/Siffer/Request.html +0 -103
- data/doc/rdoc/classes/Siffer/RequestLogger.html +0 -109
- data/doc/rdoc/classes/Siffer/Response.html +0 -91
- data/doc/rdoc/classes/Siffer/Server.html +0 -156
- data/doc/rdoc/created.rid +0 -1
- data/doc/rdoc/files/LICENSE.html +0 -76
- data/doc/rdoc/files/README_rdoc.html +0 -131
- data/doc/rdoc/files/lib/siffer/agent_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/container_rb.html +0 -57
- data/doc/rdoc/files/lib/siffer/messages/ack_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/messages/acl_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/messages/error_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/messages/message_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/messages/register_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/messages/request_body_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/messages/status_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/messages_rb.html +0 -63
- data/doc/rdoc/files/lib/siffer/messaging_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/protocol_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/registration_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/request_logger_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/request_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/response_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/server_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer_rb.html +0 -64
- data/doc/rdoc/fr_class_index.html +0 -25
- data/doc/rdoc/fr_file_index.html +0 -39
- data/doc/rdoc/fr_method_index.html +0 -4539
- data/doc/rdoc/index.html +0 -15
- data/doc/rdoc/rdoc-style.css +0 -319
- data/lib/siffer/container.rb +0 -94
- data/lib/siffer/messages/acl.rb +0 -25
- data/lib/siffer/messages/error.rb +0 -174
- data/lib/siffer/messages/request_body.rb +0 -66
- data/lib/siffer/messages/status.rb +0 -55
- data/lib/siffer/messaging.rb +0 -99
- data/lib/siffer/protocol.rb +0 -164
- data/lib/siffer/registration.rb +0 -87
- data/lib/siffer/request.rb +0 -28
- data/lib/siffer/request_logger.rb +0 -32
- data/lib/siffer/response.rb +0 -26
- data/lib/siffer/server.rb +0 -42
- data/spec/agent_spec.rb +0 -48
- data/spec/cli_spec.rb +0 -40
- data/spec/container_spec.rb +0 -103
- data/spec/default_agent +0 -6
- data/spec/default_server +0 -5
- data/spec/message_specs/ack_spec.rb +0 -28
- data/spec/message_specs/error_spec.rb +0 -24
- data/spec/message_specs/header_spec.rb +0 -25
- data/spec/message_specs/message_spec.rb +0 -57
- data/spec/message_specs/register_spec.rb +0 -86
- data/spec/message_specs/request_body_spec.rb +0 -58
- data/spec/message_specs/status_spec.rb +0 -25
- data/spec/messaging_spec.rb +0 -85
- data/spec/protocol_spec.rb +0 -50
- data/spec/registration_spec.rb +0 -33
- data/spec/request_logger_spec.rb +0 -28
- data/spec/request_spec.rb +0 -25
- data/spec/response_spec.rb +0 -24
- data/spec/server_spec.rb +0 -30
- data/spec/spec_helper.rb +0 -35
@@ -1,24 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__),"..","spec_helper")
|
2
|
-
|
3
|
-
describe Siffer::Messages::Error do
|
4
|
-
|
5
|
-
it "should properly match the SIF Spec (random crap test)" do
|
6
|
-
error = Siffer::Messages::Error.new(8,3)
|
7
|
-
error.category.should == "Request and Response"
|
8
|
-
error.code.should == "Invalid object"
|
9
|
-
|
10
|
-
error = Siffer::Messages::Error.new(5,2)
|
11
|
-
error.category.should == "Registration"
|
12
|
-
error.code.should == "The SIF_SourceId is invalid"
|
13
|
-
end
|
14
|
-
|
15
|
-
it "should output xml through read method" do
|
16
|
-
error = Siffer::Messages::Error.new(4,8, "Added Extended")
|
17
|
-
error.read.should match(/SIF_Error/)
|
18
|
-
error.read.should match(/SIF_Category>4<\/SIF_Category/)
|
19
|
-
error.read.should match(/SIF_Code>8<\/SIF_Code/)
|
20
|
-
error.read.should match(/SIF_Desc>#{error.code}<\/SIF_Desc/)
|
21
|
-
error.read.should match(/SIF_ExtendedDesc>Added Extended<\/SIF_Extended/)
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), "..", "spec_helper")
|
2
|
-
|
3
|
-
include Siffer::Messages
|
4
|
-
|
5
|
-
describe Message::Header do
|
6
|
-
|
7
|
-
before(:each) do
|
8
|
-
@header = Message::Header.new "source_name"
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should have a timestamp" do
|
12
|
-
@header.timestamp.should_not be_nil
|
13
|
-
end
|
14
|
-
|
15
|
-
it "should have a GUID/UUID" do
|
16
|
-
@header.msg_id.should_not be_nil
|
17
|
-
end
|
18
|
-
|
19
|
-
it "should have a GUID/UUID that matches SIF textual format" do
|
20
|
-
@header = Message::Header.new "source_name"
|
21
|
-
@header.msg_id.should_not match(/^[a-z\-\s]+$/)
|
22
|
-
@header.msg_id.should match(/^[A-Z0-9]+$/)
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
@@ -1,57 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), "..", "spec_helper")
|
2
|
-
|
3
|
-
include Siffer::Messages
|
4
|
-
|
5
|
-
describe Message do
|
6
|
-
|
7
|
-
before(:each) do
|
8
|
-
@message = Message.new("source_name")
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should have SIF version" do
|
12
|
-
@message.version.should == Siffer.sif_version
|
13
|
-
end
|
14
|
-
|
15
|
-
it "should have SIF xml namespace" do
|
16
|
-
@message.xmlns.should == Siffer.sif_xmlns
|
17
|
-
end
|
18
|
-
|
19
|
-
it "should have a header" do
|
20
|
-
@message.header.should_not be_nil
|
21
|
-
@message.header.source_id.should == "source_name"
|
22
|
-
end
|
23
|
-
|
24
|
-
it "should raise exception for missing source identifier" do
|
25
|
-
lambda{
|
26
|
-
@message = Message.new(nil)
|
27
|
-
}.should raise_error("Source not provided.")
|
28
|
-
end
|
29
|
-
|
30
|
-
it "should render SIF compliant instruct line" do
|
31
|
-
@message.content.should match(/<SIF_Message/)
|
32
|
-
@message.content.should match(/xmlns="#{Siffer.sif_xmlns}"/)
|
33
|
-
@message.content.should match(/version="#{Siffer.sif_version}"/)
|
34
|
-
@message.content.should match(/<\/SIF_Message>/)
|
35
|
-
end
|
36
|
-
|
37
|
-
it "should respond to 'to_str'" do
|
38
|
-
@message.should respond_to("to_str")
|
39
|
-
@message.to_str.should match(/SIF_Message/)
|
40
|
-
end
|
41
|
-
|
42
|
-
it "should respond to 'read'" do
|
43
|
-
@message.should respond_to("read")
|
44
|
-
@message.read.should match(/SIF_Message/)
|
45
|
-
end
|
46
|
-
|
47
|
-
it "should allow xmlns override" do
|
48
|
-
@message = Message.new("source", :xmlns => "bogus")
|
49
|
-
@message.xmlns.should == "bogus"
|
50
|
-
end
|
51
|
-
|
52
|
-
it "should allow version override" do
|
53
|
-
@message = Message.new("source", :version => '9.9')
|
54
|
-
@message.version.should == "9.9"
|
55
|
-
end
|
56
|
-
|
57
|
-
end
|
@@ -1,86 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__),"..","spec_helper")
|
2
|
-
|
3
|
-
include Siffer::Messages
|
4
|
-
|
5
|
-
describe Siffer::Messages::Register do
|
6
|
-
|
7
|
-
it "should reqiure a name of the Registering Agent" do
|
8
|
-
lambda {
|
9
|
-
reg = Register.new("source",nil)
|
10
|
-
}.should raise_error("Agent name required")
|
11
|
-
end
|
12
|
-
|
13
|
-
end
|
14
|
-
|
15
|
-
describe Siffer::Messages::Register, "defaults" do
|
16
|
-
|
17
|
-
before(:each) do
|
18
|
-
@reg = Register.new("source", "agent")
|
19
|
-
end
|
20
|
-
|
21
|
-
it "should default to Siffer.version version" do
|
22
|
-
@reg.version.should == Siffer.sif_version
|
23
|
-
end
|
24
|
-
|
25
|
-
it "should defaut to Pull mode" do
|
26
|
-
@reg.mode.should == 'Pull'
|
27
|
-
end
|
28
|
-
|
29
|
-
it "should default to 1024 max buffer" do
|
30
|
-
@reg.max_buffer.should == 1024
|
31
|
-
end
|
32
|
-
|
33
|
-
it "should default vendor to h3o(software)" do
|
34
|
-
@reg.vendor.should == Siffer.vendor
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|
38
|
-
|
39
|
-
describe Siffer::Messages::Register, "overrides" do
|
40
|
-
it "should allow sif version override" do
|
41
|
-
reg = Register.new("source","agent",:version => '9.9')
|
42
|
-
reg.version.should == '9.9'
|
43
|
-
end
|
44
|
-
|
45
|
-
it "should allow max_buffer override" do
|
46
|
-
reg = Register.new("source", "agent", :max_buffer => 2048)
|
47
|
-
reg.max_buffer.should == 2048
|
48
|
-
end
|
49
|
-
|
50
|
-
it "should allow mode override" do
|
51
|
-
reg = Register.new("source", "agent", :mode => 'Push')
|
52
|
-
reg.mode.should == "Push"
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
describe Siffer::Messages::Register, "content" do
|
57
|
-
|
58
|
-
before(:each) do
|
59
|
-
@reg = Register.new("source", "agent")
|
60
|
-
end
|
61
|
-
|
62
|
-
it "should have max buffer size" do
|
63
|
-
@reg.content.should match(/SIF_MaxBufferSize>1024<\/SIF_MaxBufferSize/)
|
64
|
-
end
|
65
|
-
|
66
|
-
it "should have agent name" do
|
67
|
-
@reg.content.should match(/SIF_Name>agent<\/SIF_Name>/)
|
68
|
-
end
|
69
|
-
|
70
|
-
it "should parse name from body" do
|
71
|
-
Register.parse(@reg.content).name.should == "agent"
|
72
|
-
end
|
73
|
-
|
74
|
-
it "should parse SIF version from body" do
|
75
|
-
Register.parse(@reg.content).version.should == Siffer.sif_version
|
76
|
-
end
|
77
|
-
|
78
|
-
it "should parse max buffer size from body" do
|
79
|
-
Register.parse(@reg.content).max_buffer.should == 1024
|
80
|
-
end
|
81
|
-
|
82
|
-
it "should parse mode from body" do
|
83
|
-
Register.parse(@reg.content).mode.should == "Pull"
|
84
|
-
end
|
85
|
-
|
86
|
-
end
|
@@ -1,58 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__),"..","spec_helper")
|
2
|
-
|
3
|
-
describe Siffer::Messages::RequestBody do
|
4
|
-
|
5
|
-
before(:each) do
|
6
|
-
@xml = Siffer::Messages::Register.new("Clints Agent", "test server name")
|
7
|
-
@msg = Siffer::Messages::RequestBody.parse(@xml)
|
8
|
-
end
|
9
|
-
|
10
|
-
it "should require 'read'able input" do
|
11
|
-
lambda {
|
12
|
-
Siffer::Messages::RequestBody.parse([])
|
13
|
-
}.should raise_error("Unable to read Xml")
|
14
|
-
end
|
15
|
-
|
16
|
-
it "should allow StringIO input" do
|
17
|
-
lambda {
|
18
|
-
Siffer::Messages::RequestBody.parse(StringIO.new(@xml))
|
19
|
-
}.should_not raise_error
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should allow string input" do
|
23
|
-
lambda {
|
24
|
-
Siffer::Messages::RequestBody.parse(@xml)
|
25
|
-
}.should_not raise_error
|
26
|
-
end
|
27
|
-
|
28
|
-
it "should parse message type" do
|
29
|
-
@msg.type.should == "Register"
|
30
|
-
end
|
31
|
-
|
32
|
-
it "should parse message type within SystemControl" do
|
33
|
-
ping = "<SIF_Message><SIF_SystemControl><SIF_Ping /></SIF_SystemControl></SIF_Message>"
|
34
|
-
@msg = Siffer::Messages::RequestBody.parse(ping)
|
35
|
-
@msg.type.should == "Ping"
|
36
|
-
end
|
37
|
-
|
38
|
-
it "should raise error when type not parsible" do
|
39
|
-
lambda {
|
40
|
-
Siffer::Messages::RequestBody.parse("<SIF_Message></SIF_Message>").type
|
41
|
-
}.should
|
42
|
-
raise_error("Failed to parse <SIF_Message></SIF_Message> for SIF Type")
|
43
|
-
end
|
44
|
-
|
45
|
-
it "should parse source id" do
|
46
|
-
@msg.source_id.should == @xml.source_id
|
47
|
-
end
|
48
|
-
|
49
|
-
it "should parse msg id" do
|
50
|
-
@msg.msg_id.should == @xml.msg_id
|
51
|
-
end
|
52
|
-
|
53
|
-
it "should drop SIF_ from element names" do
|
54
|
-
msg = Siffer::Messages::RequestBody.new("test")
|
55
|
-
msg.send("drop_sif","SIF_Test").should == "Test"
|
56
|
-
end
|
57
|
-
|
58
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__),"..","spec_helper")
|
2
|
-
|
3
|
-
describe Siffer::Messages::Status do
|
4
|
-
it "should return message for each status code" do
|
5
|
-
Siffer::Messages::Status::CODES.each do |key,value|
|
6
|
-
msg = Siffer::Messages::Status.send(value.downcase)
|
7
|
-
msg.should_not be_nil
|
8
|
-
msg.code.should == key
|
9
|
-
msg.description.should == value
|
10
|
-
msg.data.should be_nil
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
it "should have a SIF_Status element body" do
|
15
|
-
success = Siffer::Messages::Status.success
|
16
|
-
success.read.should match(/SIF_Status/)
|
17
|
-
success.read.should match(/SIF_Code>0<\/SIF_Code/)
|
18
|
-
success.read.should match(/SIF_Description>Success</)
|
19
|
-
end
|
20
|
-
|
21
|
-
it "should allow data to hold other SIF_Message(s)" do
|
22
|
-
data = Siffer::Messages::Status.success(Siffer::Messages::Message.new("source"))
|
23
|
-
data.read.should match(/SIF_Data><SIF_Message/)
|
24
|
-
end
|
25
|
-
end
|
data/spec/messaging_spec.rb
DELETED
@@ -1,85 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__),"spec_helper")
|
2
|
-
|
3
|
-
# The messaging is best tested doing a full request/response
|
4
|
-
# cycle using both Server and Agent components
|
5
|
-
|
6
|
-
[Siffer::Server, Siffer::Agent].each do |component|
|
7
|
-
|
8
|
-
# Stage the component a little bit:
|
9
|
-
# Agents require Servers
|
10
|
-
# Both require central-admin
|
11
|
-
component = component.new("admin" => 'none', "server" => '')
|
12
|
-
msg = Siffer::Messages::Message.new("source").content{|xml| xml.SIF_Bogus}
|
13
|
-
|
14
|
-
describe component, "Messaging - response" do
|
15
|
-
it "should always return Ack for proper SIF_Messages" do
|
16
|
-
for_every_path(:on => component, :input => msg) do |res|
|
17
|
-
res.body.should match(/SIF_Ack/)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
describe component, "Messaging - content-type" do
|
23
|
-
it "should always respond with application/xml" do
|
24
|
-
for_every_path(:on => component, :input => msg) do |res|
|
25
|
-
res.content_type.should == Siffer::Messaging::MIME_TYPES["appxmlencoded"]
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
it "should only receive application/xml" do
|
30
|
-
for_every_path(:on => component,"CONTENT_TYPE" => "x") do |res|
|
31
|
-
res.should be_client_error
|
32
|
-
res.status.should == 406
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
describe component, "Messaging - validation" do
|
38
|
-
|
39
|
-
it "should return Xml Error code for bad message (xml)" do
|
40
|
-
%w[<Junk>>>> <Junk> </Junk> Junk !@ex].each do |msg|
|
41
|
-
for_every_path(:on => component, :input => msg) do |res|
|
42
|
-
res.body.should match(/SIF_Error/)
|
43
|
-
res.body.should match(/SIF_Category>1<\/SIF_Category/)
|
44
|
-
res.body.should match(/SIF_Code>2<\/SIF_Code>/)
|
45
|
-
res.body.should match(/Message is not well-formed/)
|
46
|
-
# spec says Oringals should be included and empty
|
47
|
-
res.body.should match(/SIF_OriginalSourceId\s*\/>/)
|
48
|
-
res.body.should match(/SIF_OriginalMsgId\s*\/>/)
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
it "should validaate message is SIF_Message" do
|
54
|
-
msg = "<someotherkind><of>XML</of></someotherkind>"
|
55
|
-
for_every_path(:on => component, :input => msg) do |res|
|
56
|
-
res.body.should match(/SIF_Category>12/)
|
57
|
-
res.body.should match(/SIF_Code>2/)
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
it "should validate message xmlns" do
|
62
|
-
msg = Siffer::Messages::Register.new(
|
63
|
-
"bad-xmlns",
|
64
|
-
component.name,
|
65
|
-
:xmlns => 'http://bogus.xmlns')
|
66
|
-
for_every_path(:on => component, :input => msg) do |res|
|
67
|
-
res.body.should match(/SIF_Category>1<\/SIF_Category/)
|
68
|
-
res.body.should match(/SIF_Code>4<\/SIF_Code/)
|
69
|
-
res.body.should match(/SIF_ExtendedDesc>XMLNS not compatible with SIF/)
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
it "should validate SIF version" do
|
74
|
-
msg = Siffer::Messages::Register.new(
|
75
|
-
"bad-version",
|
76
|
-
component.name,
|
77
|
-
:version => '99.99')
|
78
|
-
for_every_path(:on => component, :input => msg) do |res|
|
79
|
-
res.body.should match(/SIF_Category>12<\/SIF_Category/)
|
80
|
-
res.body.should match(/SIF_Code>3<\/SIF_Code>/)
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
end
|
data/spec/protocol_spec.rb
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), "spec_helper")
|
2
|
-
|
3
|
-
[Siffer::Server, Siffer::Agent].each do |component|
|
4
|
-
|
5
|
-
# Stage the component a little bit:
|
6
|
-
# Agents require Servers
|
7
|
-
# Both require central-admin
|
8
|
-
component = component.new("admin" => 'none', "server" => '')
|
9
|
-
|
10
|
-
describe component, "Protocol - /unknown_path" do
|
11
|
-
it "should return 404" do
|
12
|
-
res = Rack::MockRequest.new(component).post("/bad_path")
|
13
|
-
res.should be_not_found
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
describe component, "Protocol - Accepted Paths except Root URL" do
|
18
|
-
it "should only allow POST method" do
|
19
|
-
Siffer::Protocol::ACCEPTABLE_PATHS.each do |name,path|
|
20
|
-
if(path != "/")
|
21
|
-
res = Rack::MockRequest.new(component).get(path)
|
22
|
-
res.should be_client_error
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
describe component, "Protocol - Root URL on GET" do
|
29
|
-
it "should display component info" do
|
30
|
-
res = Rack::MockRequest.new(component).get("/")
|
31
|
-
res.should be_ok
|
32
|
-
res.body.should match(/<h1>Siffer Endpoint<\/h1>/)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
describe component, "Protocol - URI" do
|
37
|
-
|
38
|
-
it "should respond to uri" do
|
39
|
-
component.uri.should == "http://localhost:8300"
|
40
|
-
end
|
41
|
-
|
42
|
-
it "should respond to full url in uri" do
|
43
|
-
component = component.class.new("admin" => "none",
|
44
|
-
"server" => "",
|
45
|
-
"host" => "http://localhost")
|
46
|
-
component.uri.should == "http://localhost:8300"
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
end
|
data/spec/registration_spec.rb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__),"spec_helper")
|
2
|
-
|
3
|
-
# Registration is best tested through the Siffer::Server component
|
4
|
-
|
5
|
-
describe Siffer::Registration do
|
6
|
-
|
7
|
-
before(:each) do
|
8
|
-
@server = Siffer::Server.new("admin" => "none")
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should determine agent registration" do
|
12
|
-
@server.registered?("Default Agent").should be_false
|
13
|
-
@server.agents["Default Agent"] = "http://localhost"
|
14
|
-
@server.registered?("Default Agent").should be_true
|
15
|
-
end
|
16
|
-
|
17
|
-
it "should return not registered message for non-registered agents" do
|
18
|
-
msg = Siffer::Messages::Message.new("Default Agent")
|
19
|
-
msg.content do |xml|
|
20
|
-
xml.SIF_Ping
|
21
|
-
end
|
22
|
-
res = response_to(msg)
|
23
|
-
res.body.should match(/SIF_Category>4/)
|
24
|
-
res.body.should match(/SIF_Code>9/)
|
25
|
-
end
|
26
|
-
|
27
|
-
it "should return ACL for successful registration" do
|
28
|
-
msg = Siffer::Messages::Register.new("Default Agent", "Default Agent")
|
29
|
-
res = response_to(msg)
|
30
|
-
res.body.should match(/SIF_Ack/)
|
31
|
-
res.body.should match(/SIF_Status/)
|
32
|
-
end
|
33
|
-
end
|