]> git.openstreetmap.org Git - rails.git/blob - vendor/gems/rspec-1.1.2/examples/pure/stack_spec.rb
added RSpec and RSpec on Rails
[rails.git] / vendor / gems / rspec-1.1.2 / examples / pure / stack_spec.rb
1 require File.dirname(__FILE__) + '/spec_helper'
2 require File.dirname(__FILE__) + "/stack"
3 require File.dirname(__FILE__) + '/shared_stack_examples'
4
5 describe Stack, " (empty)" do
6   before(:each) do
7     @stack = Stack.new
8   end
9   
10   # NOTE that this one auto-generates the description "should be empty"
11   it { @stack.should be_empty }
12   
13   it_should_behave_like "non-full Stack"
14   
15   it "should complain when sent #peek" do
16     lambda { @stack.peek }.should raise_error(StackUnderflowError)
17   end
18   
19   it "should complain when sent #pop" do
20     lambda { @stack.pop }.should raise_error(StackUnderflowError)
21   end
22 end
23
24 describe Stack, " (with one item)" do
25   before(:each) do
26     @stack = Stack.new
27     @stack.push 3
28     @last_item_added = 3
29   end
30
31   it_should_behave_like "non-empty Stack"
32   it_should_behave_like "non-full Stack"
33
34 end
35
36 describe Stack, " (with one item less than capacity)" do
37   before(:each) do
38     @stack = Stack.new
39     (1..9).each { |i| @stack.push i }
40     @last_item_added = 9
41   end
42   
43   it_should_behave_like "non-empty Stack"
44   it_should_behave_like "non-full Stack"
45 end
46
47 describe Stack, " (full)" do
48   before(:each) do
49     @stack = Stack.new
50     (1..10).each { |i| @stack.push i }
51     @last_item_added = 10
52   end
53
54   # NOTE that this one auto-generates the description "should be full"
55   it { @stack.should be_full }  
56
57   it_should_behave_like "non-empty Stack"
58
59   it "should complain on #push" do
60     lambda { @stack.push Object.new }.should raise_error(StackOverflowError)
61   end
62   
63 end