developwithpassion_fakes-rspec 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ blah.rb
2
+ *.gem
3
+ .bundle
4
+ Gemfile.lock
5
+ pkg/*
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm 1.9.3@developwithpassion_fakes-rspec --create
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
data/Guardfile ADDED
@@ -0,0 +1,5 @@
1
+ guard 'rspec' do
2
+ watch(%r{^spec/.+_spec\.rb$})
3
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
4
+ watch('spec/spec_helper.rb') { "spec" }
5
+ end
data/README.md ADDED
@@ -0,0 +1,28 @@
1
+ #developwithpassion_fakes-rspec
2
+
3
+ This is a library to aid in the usage of [developwithpassion_fakes](http://github.com/developwithpassion/developwithpassion_fakes) when using [RSpec](https://github.com/rspec/rspec). It basically just adds the convienience matcher: have_received which you would use as follows:
4
+
5
+ ```ruby
6
+ it "should be able to determine if a call was made on a fake" do
7
+ the_fake = fake
8
+ fake.hello("World")
9
+
10
+ fake.should have_received(:hello) #true
11
+ fake.should have_received(:hello,"World") #true
12
+ fake.should have_received(:hello,"Other") #false
13
+ end
14
+ ```
15
+ Or conversely:
16
+
17
+ ```ruby
18
+ it "should be able to determine if a call was never made on a fake" do
19
+ the_fake = fake
20
+ fake.hello("World")
21
+
22
+ fake.should_not have_received(:goodbye) #true
23
+ fake.should_not have_received(:hello,"Earth") #true
24
+ fake.should_not have_received(:hello) #false
25
+ end
26
+ ```
27
+
28
+ [Develop With Passion®](http://www.developwithpassion.com)
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,27 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib",__FILE__)
3
+ require "core/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "developwithpassion_fakes-rspec"
7
+ s.version = DevelopWithPassion::Fakes::RSpec::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Develop With Passion®"]
10
+ s.email = ["open_source@developwithpassion.com"]
11
+ s.homepage = "http://www.developwithpassion.com"
12
+ s.summary = %q{Utility functions for develowithpassion_fakes when working with rSpec}
13
+ s.description = %q{Faking library that allows inspection of received calls after they have been made. Also supports tracking calls with multiple argument sets.}
14
+ s.rubyforge_project = "developwithpassion_fakes-rspec"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ # specify any dependencies here; for example:
22
+ s.add_development_dependency "rake"
23
+ s.add_development_dependency "guard"
24
+ s.add_development_dependency "guard-rspec"
25
+ s.add_runtime_dependency "developwithpassion_fakes"
26
+ s.add_runtime_dependency "rspec"
27
+ end
@@ -0,0 +1,16 @@
1
+ module DevelopWithPassion
2
+ module Fakes
3
+ module RSpec
4
+ class ReceivedCriteria
5
+ def initialize(the_call)
6
+ @the_call = the_call
7
+ end
8
+
9
+ def is_satified_by(*args)
10
+ return false if @the_call == nil
11
+ return args.count == 0 ? true : @the_call.called_with(*args) != nil
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,7 @@
1
+ module RSpec
2
+ Matchers.define :have_received do|symbol,*args|
3
+ match do|the_fake|
4
+ DevelopWithPassion::Fakes::RSpec::ReceivedCriteria.new(the_fake.received(symbol)).is_satified_by(*args)
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module DevelopWithPassion
2
+ module Fakes
3
+ module RSpec
4
+ VERSION = "0.0.1"
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,4 @@
1
+ require 'developwithpassion_fakes'
2
+
3
+ require 'core/received_criteria'
4
+ require 'core/rspec_utils'
@@ -0,0 +1,10 @@
1
+ require 'developwithpassion_fakes'
2
+ require 'rspec'
3
+
4
+ Dir.chdir(File.join(File.dirname(__FILE__),"..,lib".split(','))) do
5
+ Dir.glob("**/*.rb").each do |file|
6
+ full_path = File.expand_path(file)
7
+ $:.unshift File.expand_path(File.dirname(full_path))
8
+ require full_path
9
+ end
10
+ end
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+
3
+ module DevelopWithPassion
4
+ module Fakes
5
+ module RSpec
6
+ describe ReceivedCriteria do
7
+ context "when matching a call made without arguments" do
8
+ it "should match if the call was made" do
9
+ item = fake
10
+ item.hello
11
+
12
+ sut = ReceivedCriteria.new(item.received(:hello))
13
+
14
+ sut.is_satified_by.should be_true
15
+ end
16
+ end
17
+ context "when matching a call made with arguments" do
18
+ let(:item){fake}
19
+ before (:each) do
20
+ item.hello("world")
21
+ @sut = ReceivedCriteria.new(item.received(:hello))
22
+ end
23
+ context "and we care about the arguments it was called with" do
24
+ it "should match if it received the correct call" do
25
+ @sut.is_satified_by("world").should be_true
26
+ end
27
+ it "should not match if the arguments provided are not in the call history" do
28
+ @sut.is_satified_by("yo").should be_false
29
+ end
30
+
31
+ end
32
+ context "and we don't care about the arguments it was called with" do
33
+ it "should match if it received a call to the method" do
34
+ @sut.is_satified_by.should be_true
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe "using the rspec extensions" do
4
+ it "should be able to determine if a call has not been made" do
5
+ item = fake
6
+ item.hello
7
+ item.last("other")
8
+
9
+ item.should_not have_received(:hello,"world")
10
+ item.should have_received(:hello)
11
+ item.should_not have_received(:once_more)
12
+ item.should_not have_received(:last,"hello")
13
+ item.should have_received(:last,"other")
14
+ end
15
+ end
16
+
metadata ADDED
@@ -0,0 +1,118 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: developwithpassion_fakes-rspec
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Develop With Passion®
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-03-22 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ requirement: &70132420731960 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *70132420731960
25
+ - !ruby/object:Gem::Dependency
26
+ name: guard
27
+ requirement: &70132420731420 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70132420731420
36
+ - !ruby/object:Gem::Dependency
37
+ name: guard-rspec
38
+ requirement: &70132420730960 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70132420730960
47
+ - !ruby/object:Gem::Dependency
48
+ name: developwithpassion_fakes
49
+ requirement: &70132420730420 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *70132420730420
58
+ - !ruby/object:Gem::Dependency
59
+ name: rspec
60
+ requirement: &70132420730000 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: *70132420730000
69
+ description: Faking library that allows inspection of received calls after they have
70
+ been made. Also supports tracking calls with multiple argument sets.
71
+ email:
72
+ - open_source@developwithpassion.com
73
+ executables: []
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - .gitignore
78
+ - .rvmrc
79
+ - Gemfile
80
+ - Guardfile
81
+ - README.md
82
+ - Rakefile
83
+ - developwithpassion_fakes-rspec.gemspec
84
+ - lib/core/received_criteria.rb
85
+ - lib/core/rspec_utils.rb
86
+ - lib/core/version.rb
87
+ - lib/developwithpassion_fakes-rspec.rb
88
+ - spec/spec_helper.rb
89
+ - spec/specs/received_criteria_spec.rb
90
+ - spec/specs/usage_spec.rb
91
+ homepage: http://www.developwithpassion.com
92
+ licenses: []
93
+ post_install_message:
94
+ rdoc_options: []
95
+ require_paths:
96
+ - lib
97
+ required_ruby_version: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ required_rubygems_version: !ruby/object:Gem::Requirement
104
+ none: false
105
+ requirements:
106
+ - - ! '>='
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ requirements: []
110
+ rubyforge_project: developwithpassion_fakes-rspec
111
+ rubygems_version: 1.8.17
112
+ signing_key:
113
+ specification_version: 3
114
+ summary: Utility functions for develowithpassion_fakes when working with rSpec
115
+ test_files:
116
+ - spec/spec_helper.rb
117
+ - spec/specs/received_criteria_spec.rb
118
+ - spec/specs/usage_spec.rb