api_fixtures 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/lib/api_fixtures.rb CHANGED
@@ -1,10 +1,9 @@
1
+ require 'api_fixtures/version'
1
2
  require 'api_fixtures/fixtures'
2
3
  require 'api_fixtures/middleware'
3
4
  require 'api_fixtures/dsl'
4
5
 
5
6
  module ApiFixtures
6
- VERSION = '0.1.0'
7
-
8
7
  def self.folder=(folder)
9
8
  Fixtures.folder = folder
10
9
  end
@@ -1,4 +1,5 @@
1
1
  require 'api_fixtures/fixtures'
2
+ require 'active_support/core_ext/class/attribute'
2
3
 
3
4
  module ApiFixtures
4
5
  module DSL
@@ -1,4 +1,5 @@
1
1
  require 'pathname'
2
+ require 'active_support/json'
2
3
 
3
4
  module ApiFixtures
4
5
  class Fixtures
@@ -0,0 +1,3 @@
1
+ module ApiFixtures
2
+ VERSION = '0.1.1'
3
+ end
@@ -0,0 +1,4 @@
1
+ {
2
+ "id": 1,
3
+ "name": "My Account"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "id": 1,
3
+ "name": "Mick Staugaard"
4
+ }
@@ -0,0 +1,61 @@
1
+ require 'test_helper'
2
+
3
+ require 'minitest/autorun'
4
+
5
+ class MiniTestSpecTest < MiniTest::Spec
6
+ extend ApiFixtures::DSL
7
+
8
+ describe 'instance level integration' do
9
+ it 'should give access to the api' do
10
+ api.must_equal ApiFixtures::Fixtures
11
+ end
12
+
13
+ it 'should clear the fixtures before running tests' do
14
+ api.fixture('GET', '/foo', {})
15
+
16
+ ApiFixtures::Fixtures::FIXTURES[:get].wont_be_empty
17
+
18
+ run_setup_hooks
19
+
20
+ ApiFixtures::Fixtures::FIXTURES[:get].must_be_empty
21
+ end
22
+
23
+ describe 'expectations' do
24
+ before do
25
+ @flunk_calls = 0
26
+ end
27
+
28
+ def flunk(message)
29
+ @flunk_calls += 1
30
+ end
31
+
32
+ it 'should check that api expectations are met' do
33
+ @flunk_calls.must_equal 0
34
+
35
+ api.expect('GET', '/foo')
36
+
37
+ run_teardown_hooks
38
+
39
+ @flunk_calls.must_equal 1
40
+ end
41
+ end
42
+
43
+ end
44
+
45
+ describe 'class level integration' do
46
+ api_fixtures '/user'
47
+
48
+ it 'should give access to the api_fixtures method' do
49
+ ApiFixtures::Fixtures::FIXTURES[:get].keys.must_equal ['/user']
50
+ end
51
+
52
+ describe 'in nested blocks' do
53
+ api_fixtures '/account'
54
+
55
+ it 'should inherit the fixtures from the parent block' do
56
+ ApiFixtures::Fixtures::FIXTURES[:get].keys.sort.must_equal ['/account', '/user']
57
+ end
58
+ end
59
+ end
60
+
61
+ end
@@ -0,0 +1,3 @@
1
+ require 'api_fixtures'
2
+
3
+ ApiFixtures.folder = File.expand_path('api_fixtures', File.dirname(__FILE__))
metadata CHANGED
@@ -1,108 +1,104 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: api_fixtures
3
- version: !ruby/object:Gem::Version
4
- hash: 27
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 0
10
- version: 0.1.0
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Mick Staugaard
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-11-09 00:00:00 -08:00
12
+ date: 2011-12-01 00:00:00.000000000 -08:00
19
13
  default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rake
17
+ requirement: &70210723943360 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: *70210723943360
26
+ - !ruby/object:Gem::Dependency
22
27
  name: bundler
28
+ requirement: &70210723942880 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
23
35
  prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
36
+ version_requirements: *70210723942880
37
+ - !ruby/object:Gem::Dependency
38
+ name: minitest
39
+ requirement: &70210723942460 !ruby/object:Gem::Requirement
25
40
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
33
45
  type: :development
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: activesupport
37
46
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
47
+ version_requirements: *70210723942460
48
+ - !ruby/object:Gem::Dependency
49
+ name: activesupport
50
+ requirement: &70210723941940 !ruby/object:Gem::Requirement
39
51
  none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 17
44
- segments:
45
- - 2
46
- - 3
47
- - 9
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
48
55
  version: 2.3.9
49
- - - <
50
- - !ruby/object:Gem::Version
51
- hash: 1
52
- segments:
53
- - 3
54
- - 1
55
- - 1
56
- version: 3.1.1
57
56
  type: :runtime
58
- version_requirements: *id002
57
+ prerelease: false
58
+ version_requirements: *70210723941940
59
59
  description:
60
- email:
60
+ email:
61
61
  - mick@staugaard.com
62
62
  executables: []
63
-
64
63
  extensions: []
65
-
66
64
  extra_rdoc_files: []
67
-
68
- files:
65
+ files:
69
66
  - lib/api_fixtures/dsl.rb
70
67
  - lib/api_fixtures/fixtures.rb
71
68
  - lib/api_fixtures/middleware.rb
69
+ - lib/api_fixtures/version.rb
72
70
  - lib/api_fixtures.rb
71
+ - test/api_fixtures/account.json
72
+ - test/api_fixtures/user.json
73
+ - test/mini_test_spec_test.rb
74
+ - test/test_helper.rb
73
75
  has_rdoc: true
74
- homepage: ""
76
+ homepage: ''
75
77
  licenses: []
76
-
77
78
  post_install_message:
78
79
  rdoc_options: []
79
-
80
- require_paths:
80
+ require_paths:
81
81
  - lib
82
- required_ruby_version: !ruby/object:Gem::Requirement
82
+ required_ruby_version: !ruby/object:Gem::Requirement
83
83
  none: false
84
- requirements:
85
- - - ">="
86
- - !ruby/object:Gem::Version
87
- hash: 3
88
- segments:
89
- - 0
90
- version: "0"
91
- required_rubygems_version: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ required_rubygems_version: !ruby/object:Gem::Requirement
92
89
  none: false
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- hash: 3
97
- segments:
98
- - 0
99
- version: "0"
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
100
94
  requirements: []
101
-
102
95
  rubyforge_project:
103
96
  rubygems_version: 1.6.2
104
97
  signing_key:
105
98
  specification_version: 3
106
99
  summary: An easy way to setup JSON API fixtures for your integration tests
107
- test_files: []
108
-
100
+ test_files:
101
+ - test/api_fixtures/account.json
102
+ - test/api_fixtures/user.json
103
+ - test/mini_test_spec_test.rb
104
+ - test/test_helper.rb