spec/service_spec.rb in marilyn-rpc-0.0.2 vs spec/service_spec.rb in marilyn-rpc-0.0.3
- old
+ new
@@ -10,12 +10,63 @@
register "/test/extended"
end
end
it "should have to registered services" do
- MarilynRPC::Service.registry.size.should == 2
- MarilynRPC::Service.registry.should == {
- "/test/extended" => ExtendedTestService,
- "/test" => TestService
- }
+ MarilynRPC::Service.__registry__.size.should >= 2
+ MarilynRPC::Service.__registry__["/test/extended"].should == ExtendedTestService
+ MarilynRPC::Service.__registry__["/test"].should == TestService
+ end
+
+ context "callbacks" do
+ before(:each) do
+ class ExtendedTestService < MarilynRPC::Service
+ attr_reader :value
+ after_connect :connect
+ after_disconnect :disconnect
+
+ def connect
+ @value = :connect
+ end
+
+ def disconnect
+ @value = :disconnect
+ end
+ end
+ @service = ExtendedTestService.new
+ end
+
+ it "should be possible to register a after_connect callback" do
+ expect do
+ @service.__run_callbacks__(:after_connect)
+ end.to(change(@service, :value).from(nil).to(:connect))
+
+ end
+
+ it "should be possible to register a after_disconnect callback" do
+ expect do
+ @service.__run_callbacks__(:after_disconnect)
+ end.to(change(@service, :value).from(nil).to(:disconnect))
+ end
+ end
+
+ context "authentication" do
+ before(:each) do
+ class ExtendedTestService < MarilynRPC::Service
+ authentication_required :secure
+
+ def normal
+ true
+ end
+
+ def secure
+ false
+ end
+ end
+ @service = ExtendedTestService.new
+ end
+
+ it "should be possible to find the secure method in the auth. hash" do
+ @service.class.__methods_with_authentication__[:secure].should be_true
+ end
end
end