stirlitz 0.0.0.1 → 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
+ Gemfile.lock
2
+ .rvmrc
3
+ .DS_Store
4
+ cscope.*
5
+ tags
data/.rdebugrc ADDED
@@ -0,0 +1,3 @@
1
+ set autolist
2
+ set autoeval
3
+ set autoreload
data/Gemfile ADDED
@@ -0,0 +1,7 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
4
+
5
+ gem "ruby-debug", :platforms => :ruby_18
6
+ gem "ruby-debug19", "~> 0.11.6", :platforms => :ruby_19
7
+
data/README.rdoc ADDED
@@ -0,0 +1,30 @@
1
+ = Stirlitz 0.0.1
2
+
3
+ A Test Spy extension to rspec-mocks.
4
+
5
+ == Installing
6
+
7
+ gem install stirlitz
8
+
9
+ or add following in your Gemfile
10
+
11
+ gem 'stirlitz', :group => :test
12
+
13
+ == Examples
14
+
15
+ With Stirlitz installed you can verify your mocks post calls
16
+
17
+ it "lets me know if a call had been made" do
18
+ a_spy = spy(:spy)
19
+ a_spy.a_method
20
+ a_spy.should have_received(:a_method)
21
+ a_spy.should_not have_received(:no_method)
22
+ end
23
+
24
+ It is also possible to verify the arguments passed while method invocation
25
+
26
+ it "lets me know if certain arguments were used" do
27
+ a_spy = spy(:spy)
28
+ a_spy.a_method(10, 20)
29
+ a_spy.should have_received(:a_method).with(10, 20)
30
+ end
data/Rakefile ADDED
@@ -0,0 +1,25 @@
1
+ require 'bundler'
2
+
3
+ Bundler::GemHelper.install_tasks
4
+
5
+ require 'rake'
6
+
7
+ require 'rspec/core'
8
+ require 'rspec/core/rake_task'
9
+ RSpec::Core::RakeTask.new(:spec) do |t|
10
+ t.pattern = "spec/**/*_spec.rb"
11
+ end
12
+
13
+ task :default => :spec
14
+
15
+ require 'rake/rdoctask'
16
+ Rake::RDocTask.new do |rdoc|
17
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
18
+
19
+ rdoc.rdoc_dir = 'rdoc'
20
+ rdoc.title = "something-new #{version}"
21
+ rdoc.rdoc_files.include('README*')
22
+ rdoc.rdoc_files.include('lib/**/*.rb')
23
+ end
24
+
25
+
@@ -0,0 +1,52 @@
1
+ module Stirlitz
2
+ module Matchers
3
+ # :call-seq:
4
+ # should have_received(expected_method)
5
+ # should have_received(expected_method).with(args)
6
+ # should_not have_received(expected)
7
+ #
8
+ # Passes if actual had expected invoked on it. You can also
9
+ # pass args to verify that they were called with them
10
+ #
11
+ # == Examples
12
+ #
13
+ # mock_object.should have_received(:save)
14
+ # mock_object.should have_received(:update_attributes).with({:name => 'new name'})
15
+ # mock_object.should_not have_received(:destroy)
16
+ def have_received(expected)
17
+ HaveReceived.new(expected)
18
+ end
19
+
20
+ class HaveReceived
21
+ def initialize(expected)
22
+ @expected = expected
23
+ end
24
+
25
+ def matches?(actual)
26
+ @actual = actual
27
+ if @args
28
+ actual.received_message?(@expected, *@args)
29
+ else
30
+ actual.received_message?(@expected)
31
+ end
32
+ end
33
+
34
+ def with(*args)
35
+ @args = args
36
+ self
37
+ end
38
+
39
+ def failure_message_for_should
40
+ "#{@actual} should have been called on #{@expected.inspect}"
41
+ end
42
+
43
+ def failure_message_for_should_not
44
+ "#{@actual} should not have been called on #{@expected.inspect}"
45
+ end
46
+ end
47
+ end
48
+ end
49
+
50
+ RSpec.configure do |config|
51
+ config.include Stirlitz::Matchers
52
+ end
@@ -0,0 +1,16 @@
1
+ module Stirlitz
2
+ module Spy
3
+ def spy(name = nil, stubs_and_options = {})
4
+ mock(name, stubs_and_options).as_null_object
5
+ end
6
+ end
7
+ end
8
+
9
+ module RSpec
10
+ module Mocks
11
+ module ExampleMethods
12
+ include Stirlitz::Spy
13
+ end
14
+ end
15
+ end
16
+
@@ -0,0 +1,5 @@
1
+ module Stirlitz # :nodoc:
2
+ module Version # :nodoc:
3
+ STRING = "0.0.1"
4
+ end
5
+ end
data/lib/stirlitz.rb ADDED
@@ -0,0 +1,13 @@
1
+ require 'rubygems'
2
+ require 'rspec'
3
+ require 'rspec/mocks'
4
+
5
+ module Stirlitz
6
+ end
7
+
8
+ ['/stirlitz/**/*.rb'].each do |directory|
9
+ Dir["#{File.expand_path(File.dirname(__FILE__) + directory)}"].each do |file|
10
+ require file
11
+ end
12
+ end
13
+
@@ -0,0 +1,4 @@
1
+ require 'stirlitz'
2
+
3
+ Bundler.require(:test)
4
+
@@ -0,0 +1,20 @@
1
+ require "spec_helper"
2
+
3
+ module Stirlitz
4
+ describe Matchers do
5
+ it "lets me know if a call had been made" do
6
+ a_spy = spy(:spy)
7
+ a_spy.a_method
8
+ a_spy.should have_received(:a_method)
9
+ lambda do
10
+ a_spy.should_not have_received(:a_method)
11
+ end.should raise_error
12
+ end
13
+
14
+ it "lets me know if certain arguments were used" do
15
+ a_spy = spy(:spy)
16
+ a_spy.a_method(10, 20)
17
+ a_spy.should have_received(:a_method).with(10, 20)
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,18 @@
1
+ require "spec_helper"
2
+
3
+ module Stirlitz
4
+ describe Spy do
5
+ it "extends rspec mock" do
6
+ a_spy = spy("something", :method_1 => 1, :method_two => 'two')
7
+ a_spy.method_1.should == 1
8
+ a_spy.method_two.should == 'two'
9
+ end
10
+
11
+ it "doesn't complain about undeclared methods" do
12
+ a_spy = spy("something", :method_1 => 1, :method_two => 'two')
13
+ lambda do
14
+ a_spy.a_method_no_one_knows_about.should
15
+ end.should_not raise_error
16
+ end
17
+ end
18
+ end
data/stirlitz.gemspec ADDED
@@ -0,0 +1,28 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
3
+ require "stirlitz/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "stirlitz"
7
+ s.version = Stirlitz::Version::STRING
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Srushti Ambekallu", "Niranjan Paranjape"]
10
+ s.email = "srushti@c42.in"
11
+ s.homepage = "http://github.com/srushti/stirlitz"
12
+ s.summary = "stirlitz-#{Stirlitz::Version::STRING}"
13
+ s.description = "Test spy extension to rspec-mocks"
14
+
15
+ s.rubygems_version = "1.3.7"
16
+ s.rubyforge_project = "stirlitz"
17
+
18
+ s.files = `git ls-files`.split("\n")
19
+ s.test_files = `git ls-files -- {spec,features}/*`.split("\n")
20
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
21
+ s.extra_rdoc_files = [ "README.rdoc" ]
22
+ s.rdoc_options = ["--charset=UTF-8"]
23
+ s.require_path = "lib"
24
+
25
+ s.add_runtime_dependency "rspec", ["~> 2.5.0"]
26
+ s.add_runtime_dependency "rspec-mocks", ["~> 2.5.0"]
27
+ end
28
+
metadata CHANGED
@@ -2,28 +2,62 @@
2
2
  name: stirlitz
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.0.1
5
+ version: 0.0.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Srushti Ambekallu
9
+ - Niranjan Paranjape
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
13
 
13
14
  date: 2011-03-23 00:00:00 +05:30
14
15
  default_executable:
15
- dependencies: []
16
-
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
18
+ name: rspec
19
+ prerelease: false
20
+ requirement: &id001 !ruby/object:Gem::Requirement
21
+ none: false
22
+ requirements:
23
+ - - ~>
24
+ - !ruby/object:Gem::Version
25
+ version: 2.5.0
26
+ type: :runtime
27
+ version_requirements: *id001
28
+ - !ruby/object:Gem::Dependency
29
+ name: rspec-mocks
30
+ prerelease: false
31
+ requirement: &id002 !ruby/object:Gem::Requirement
32
+ none: false
33
+ requirements:
34
+ - - ~>
35
+ - !ruby/object:Gem::Version
36
+ version: 2.5.0
37
+ type: :runtime
38
+ version_requirements: *id002
17
39
  description: Test spy extension to rspec-mocks
18
40
  email: srushti@c42.in
19
41
  executables: []
20
42
 
21
43
  extensions: []
22
44
 
23
- extra_rdoc_files: []
24
-
25
- files: []
26
-
45
+ extra_rdoc_files:
46
+ - README.rdoc
47
+ files:
48
+ - .gitignore
49
+ - .rdebugrc
50
+ - Gemfile
51
+ - README.rdoc
52
+ - Rakefile
53
+ - lib/stirlitz.rb
54
+ - lib/stirlitz/matchers.rb
55
+ - lib/stirlitz/spy.rb
56
+ - lib/stirlitz/version.rb
57
+ - spec/spec_helper.rb
58
+ - spec/stirlitz/matchers_spec.rb
59
+ - spec/stirlitz/spy_spec.rb
60
+ - stirlitz.gemspec
27
61
  has_rdoc: true
28
62
  homepage: http://github.com/srushti/stirlitz
29
63
  licenses: []
@@ -51,6 +85,8 @@ rubyforge_project: stirlitz
51
85
  rubygems_version: 1.6.2
52
86
  signing_key:
53
87
  specification_version: 3
54
- summary: stirlitz-0.0.0.1
55
- test_files: []
56
-
88
+ summary: stirlitz-0.0.1
89
+ test_files:
90
+ - spec/spec_helper.rb
91
+ - spec/stirlitz/matchers_spec.rb
92
+ - spec/stirlitz/spy_spec.rb