Updated to latest rspec
[gitorious:georgyos-clone.git] / vendor / plugins / rspec / spec / spec / example / example_group / warning_messages_spec.rb
1 require File.dirname(__FILE__) + "/../../../spec_helper"
2
3 module Spec
4   module Example
5     module AModuleAutomaticallyIncluded
6       def call_method
7         @method_called = true
8         return "a string"
9       end
10       
11       def method_called?
12         @method_called ? true : false
13       end
14     end
15     
16     describe "Including modules in an example group" do
17       describe AModuleAutomaticallyIncluded do
18         before :each do
19           Kernel.stub!(:warn)
20         end
21         
22         it "should return the correct values" do
23           self.method_called?.should be_false
24           self.call_method.should eql("a string")
25           self.method_called?.should be_true
26         end
27         
28         it "should respond_to? the methods from the module" do
29           self.should respond_to(:method_called?)
30           self.should respond_to(:call_method)
31         end
32         
33         it "should not respond_to? methods which do not come from the module (or are in Spec::ExampleGroup)" do
34           self.should_not respond_to(:adsfadfadadf_a_method_which_does_not_exist)
35         end
36         
37         it "should respond_to? a method in Spec::ExampleGroup" do
38           self.should respond_to(:describe)
39         end
40         
41         it "should issue a warning with Kernel.warn" do
42           Kernel.should_receive(:warn)
43           self.call_method
44         end
45         
46         it "should issue a warning when the example calls the method which is automatically included" do
47           Kernel.should_receive(:warn).with("Modules will no longer be automatically included in RSpec version 1.1.4.  Called from #{__FILE__}:#{__LINE__+1}")
48           self.method_called?
49         end
50         
51         it "should issue a warning with the correct file and line numbers" do
52           Kernel.should_receive(:warn).with("Modules will no longer be automatically included in RSpec version 1.1.4.  Called from #{__FILE__}:#{__LINE__+1}")
53           self.method_called?
54         end
55       end
56       
57       describe AModuleAutomaticallyIncluded, "which is also manually included" do
58         include AModuleAutomaticallyIncluded
59         
60         before :each do
61           Kernel.stub!(:warn)
62         end
63         
64         it "should respond to the methods since it is included" do
65           self.should respond_to(:method_called?)
66           self.should respond_to(:call_method)
67         end
68         
69         it "should not issue a warning, since the module is manually included" do
70           Kernel.should_not_receive(:warn)
71           self.method_called?
72         end
73       end
74     end
75   end
76 end