orangutan 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/spec/spec_chantek.rb CHANGED
@@ -1,61 +1,61 @@
1
- require 'orangutan'
2
-
3
- describe Orangutan::Chantek, 'creating ruby stubs' do
4
- before do
5
- @o = Orangutan::Chantek.new
6
- @foo = @o.stub :foo
7
- end
8
-
9
- it 'should record method calls and their parameters on a stub' do
10
- @foo.method1(1,2,3)
11
- @o.calls[0].should == Orangutan::Call.new(:foo, :method1, [1,2,3])
12
- end
13
-
14
- it 'should record all ordinary object methods calls (except __send__ and __id__)' do
15
- methods = Object.new.methods
16
- methods.each { |m| @foo.__send__(m.to_sym) unless m =~ /^__/ }
17
- @o.calls.length.should == (methods.length-2)
18
- end
19
-
20
- it 'should allow method return values to be stubbed' do
21
- @o.when(:foo).receives(:bar).return('baz')
22
- @foo.bar.should == 'baz'
23
- end
24
-
25
- it 'should allow method return values to be stubbed for method invocations with specific arguments' do
26
- @o.when(:foo).receives(:bar).with(7).return('baz')
27
- @foo.bar(7).should == 'baz'
28
- end
29
-
30
- it 'should allow stubbed methods to yield' do
31
- @o.when(:foo).receives(:bar).with(7).yield('baz')
32
- a = nil
33
- @foo.bar(7) {|s| a = s}
34
- a.should == 'baz'
35
- end
36
-
37
- it 'should allow stubbed methods to yield nils' do
38
- @o.when(:foo).receives(:bar).yield(nil)
39
- called = false
40
- @foo.bar {|s| called = true}
41
- called.should == true
42
- end
43
-
44
- it 'should allow stubbed methods to raise error from string' do
45
- @o.when(:foo).receives(:bar).raise("you can't be serious")
46
- begin
47
- @foo.bar
48
- rescue RuntimeError => e
49
- e.message.should == "you can't be serious"
50
- end
51
- end
52
-
53
- it 'should allow stubbed methods to raise error from string' do
54
- @o.when(:foo).receives(:bar).raise(RuntimeError, "you can't be serious")
55
- begin
56
- @foo.bar
57
- rescue RuntimeError => e
58
- e.message.should == "you can't be serious"
59
- end
60
- end
1
+ require 'orangutan'
2
+
3
+ describe Orangutan::Chantek, 'creating ruby stubs' do
4
+ before do
5
+ @o = Orangutan::Chantek.new
6
+ @foo = @o.stub :foo
7
+ end
8
+
9
+ it 'should record method calls and their parameters on a stub' do
10
+ @foo.method1(1,2,3)
11
+ @o.calls[0].should == Orangutan::Call.new(:foo, :method1, [1,2,3])
12
+ end
13
+
14
+ it 'should record all ordinary object methods calls (except __send__ and __id__)' do
15
+ methods = Object.new.methods
16
+ methods.each { |m| @foo.__send__(m.to_sym) unless m =~ /^__/ }
17
+ @o.calls.length.should == (methods.length-2)
18
+ end
19
+
20
+ it 'should allow method return values to be stubbed' do
21
+ @o.when(:foo).receives(:bar).return('baz')
22
+ @foo.bar.should == 'baz'
23
+ end
24
+
25
+ it 'should allow method return values to be stubbed for method invocations with specific arguments' do
26
+ @o.when(:foo).receives(:bar).with(7).return('baz')
27
+ @foo.bar(7).should == 'baz'
28
+ end
29
+
30
+ it 'should allow stubbed methods to yield' do
31
+ @o.when(:foo).receives(:bar).with(7).yield('baz')
32
+ a = nil
33
+ @foo.bar(7) {|s| a = s}
34
+ a.should == 'baz'
35
+ end
36
+
37
+ it 'should allow stubbed methods to yield nils' do
38
+ @o.when(:foo).receives(:bar).yield(nil)
39
+ called = false
40
+ @foo.bar {|s| called = true}
41
+ called.should == true
42
+ end
43
+
44
+ it 'should allow stubbed methods to raise error from string' do
45
+ @o.when(:foo).receives(:bar).raise("you can't be serious")
46
+ begin
47
+ @foo.bar
48
+ rescue RuntimeError => e
49
+ e.message.should == "you can't be serious"
50
+ end
51
+ end
52
+
53
+ it 'should allow stubbed methods to raise error from string' do
54
+ @o.when(:foo).receives(:bar).raise(RuntimeError, "you can't be serious")
55
+ begin
56
+ @foo.bar
57
+ rescue RuntimeError => e
58
+ e.message.should == "you can't be serious"
59
+ end
60
+ end
61
61
  end
@@ -1,12 +1,12 @@
1
- require 'orangutan'
2
- require 'ClassLibrary.dll'
3
-
4
- describe Orangutan::Chantek, 'creating clr stubs' do
5
- it 'should create stub implementations of a clr interface with a method' do
6
- o = Orangutan::Chantek.new
7
- s = o.stub :foo, :clr_interface => ClassLibrary::IHaveAMethod
8
- c = ClassLibrary::Consumer.new
9
- c.call_method(s)
10
- o.calls[0].should == Orangutan::Call.new(:foo, :my_method, ['thing'])
11
- end
1
+ require 'orangutan'
2
+ require 'ClassLibrary.dll'
3
+
4
+ describe Orangutan::Chantek, 'creating clr stubs' do
5
+ it 'should create stub implementations of a clr interface with a method' do
6
+ o = Orangutan::Chantek.new
7
+ s = o.stub :foo, :clr_interface => ClassLibrary::IHaveAMethod
8
+ c = ClassLibrary::Consumer.new
9
+ c.call_method(s)
10
+ o.calls[0].should == Orangutan::Call.new(:foo, :my_method, ['thing'])
11
+ end
12
12
  end
@@ -0,0 +1,24 @@
1
+ module Orangutan
2
+ describe Chantek, 'creating recursive ruby stubs' do
3
+ before do
4
+ @o = Chantek.new
5
+ @foo = @o.stub :foo, :recursive => true
6
+ end
7
+
8
+ it "should return the same object when generating a stub for the same name" do
9
+ @foo.__id__.should. == @o.stub(:foo).__id__
10
+ end
11
+
12
+ it "should return nil instead of new stub when instructed to" do
13
+ @o.when(:foo).receives(:bar).return(nil)
14
+ @foo.bar.should == nil
15
+ end
16
+
17
+ it "should return new stubs from each method call" do
18
+ bar = @foo.bar
19
+ baz = bar.baz
20
+ @o.calls[0].should == Call.new(:foo, :bar,[])
21
+ @o.calls[1].should == Call.new(:"foo/bar", :baz,[])
22
+ end
23
+ end
24
+ end
@@ -1,51 +1,49 @@
1
- require 'orangutan'
2
-
3
- describe Orangutan::Expectation do
4
- before do
5
- @e = Orangutan::Expectation.new.receives(:foo)
6
- end
7
-
8
- it 'should not match when method is different' do
9
- @e.matches?(:bar).should == false
10
- end
11
-
12
- it 'should match when method matches and args are unspecified' do
13
- @e.matches?(:foo).should == true
14
- end
15
-
16
- it 'should match when method matches and args match' do
17
- @e.with(7).matches?(:foo, 7).should == true
18
- end
19
-
20
- it 'should not match when method matches but args do not match' do
21
- @e.with(7).matches?(:foo, 8).should == false
22
- end
23
-
24
- it 'should not yield by default' do
25
- @e.yield_container.should == nil
26
- end
27
-
28
- it 'should yield when given a value to yield' do
29
- @e.yield(1).yield_container.should.not == nil
30
- end
31
-
32
- it 'should yield when given a nil value to yield' do
33
- @e.yield(nil).yield_container.should.not == nil
34
- end
35
-
36
- it 'should store yield_value' do
37
- @e.yield(1).yield_container.value.should == 1
38
- end
39
-
40
- it 'should store return value' do
41
- @e.return(1).return_value.should == 1
42
- end
43
-
44
- it 'should not raise by default' do
45
- @e.raiser.should == nil
46
- end
47
-
48
- it 'should store raiser' do
49
- @e.raise('description').raiser.should.not == nil
50
- end
1
+ require 'orangutan'
2
+
3
+ module Orangutan
4
+ describe Expectation do
5
+ before do
6
+ @e = Expectation.new.receives(:foo)
7
+ end
8
+
9
+ it 'should not match when method is different' do
10
+ @e.matches?(:bar).should == false
11
+ end
12
+
13
+ it 'should match when method matches and args are unspecified' do
14
+ @e.matches?(:foo).should == true
15
+ end
16
+
17
+ it 'should match when method matches and args match' do
18
+ @e.with(7).matches?(:foo, 7).should == true
19
+ end
20
+
21
+ it 'should not match when method matches but args do not match' do
22
+ @e.with(7).matches?(:foo, 8).should == false
23
+ end
24
+
25
+ it 'should not yield by default' do
26
+ @e.yield_container.should == nil
27
+ end
28
+
29
+ it 'should store yield_value' do
30
+ @e.yield(1).yield_container.should == Container.new(1)
31
+ end
32
+
33
+ it 'should not return by default' do
34
+ @e.return_container.should == nil
35
+ end
36
+
37
+ it 'should store return value' do
38
+ @e.return(1).return_container.should == Container.new(1)
39
+ end
40
+
41
+ it 'should not raise by default' do
42
+ @e.raiser.should == nil
43
+ end
44
+
45
+ it 'should store raiser' do
46
+ @e.raise('description').raiser.should.not == nil
47
+ end
48
+ end
51
49
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: orangutan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Ryall
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-05-09 00:00:00 +10:00
12
+ date: 2009-05-10 00:00:00 +10:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -24,7 +24,7 @@ extra_rdoc_files:
24
24
  files:
25
25
  - README
26
26
  - Rakefile
27
- - VERSION
27
+ - VERSION.yml
28
28
  - lib/orangutan.rb
29
29
  - lib/orangutan/call.rb
30
30
  - lib/orangutan/chantek.rb
@@ -32,23 +32,23 @@ files:
32
32
  - lib/orangutan/container.rb
33
33
  - lib/orangutan/expectation.rb
34
34
  - lib/orangutan/raiser.rb
35
+ - lib/orangutan/stub_base.rb
35
36
  - orangutan.gemspec
36
37
  - prepare.cmd
37
- - spec/ClassWithANonVirtualMethod.cs
38
- - spec/ClassWithANonVirtualProperty.cs
39
- - spec/ClassWithAVirtualMethod.cs
40
- - spec/ClassWithAVirtualProperty.cs
41
- - spec/Consumer.cs
42
- - spec/IHaveAMethod.cs
43
- - spec/IHaveAProperty.cs
44
- - spec/IHaveAnEvent.cs
38
+ - spec/clr/ClassWithANonVirtualMethod.cs
39
+ - spec/clr/ClassWithANonVirtualProperty.cs
40
+ - spec/clr/ClassWithAVirtualMethod.cs
41
+ - spec/clr/ClassWithAVirtualProperty.cs
42
+ - spec/clr/Consumer.cs
43
+ - spec/clr/IHaveAMethod.cs
44
+ - spec/clr/IHaveAProperty.cs
45
+ - spec/clr/IHaveAnEvent.cs
45
46
  - spec/spec_chantek.rb
46
47
  - spec/spec_chantek_clr.rb
48
+ - spec/spec_chantek_recurse.rb
47
49
  - spec/spec_expectation.rb
48
50
  has_rdoc: true
49
51
  homepage: http://github.com/markryall/orangutan
50
- licenses: []
51
-
52
52
  post_install_message:
53
53
  rdoc_options:
54
54
  - --charset=UTF-8
@@ -69,11 +69,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
69
69
  requirements: []
70
70
 
71
71
  rubyforge_project: orangutan
72
- rubygems_version: 1.3.3
72
+ rubygems_version: 1.3.1
73
73
  signing_key:
74
74
  specification_version: 2
75
75
  summary: A mock objects library
76
76
  test_files:
77
77
  - spec/spec_chantek.rb
78
78
  - spec/spec_chantek_clr.rb
79
+ - spec/spec_chantek_recurse.rb
79
80
  - spec/spec_expectation.rb
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.0.1