morpheus 0.3.6 → 0.3.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. data/.autotest +12 -0
  2. data/.rspec +1 -0
  3. data/README.md +77 -0
  4. data/Rakefile +16 -0
  5. data/lib/morpheus.rb +2 -2
  6. data/lib/morpheus/base.rb +1 -1
  7. data/lib/morpheus/client/inflections.rb +1 -1
  8. data/lib/morpheus/configuration.rb +41 -43
  9. data/lib/morpheus/errors.rb +1 -1
  10. data/lib/morpheus/mixins/associations.rb +3 -1
  11. data/lib/morpheus/mixins/attributes.rb +66 -67
  12. data/lib/morpheus/mixins/conversion.rb +9 -13
  13. data/lib/morpheus/mixins/filtering.rb +4 -1
  14. data/lib/morpheus/mixins/finders.rb +4 -1
  15. data/lib/morpheus/mixins/introspection.rb +12 -16
  16. data/lib/morpheus/mixins/persistence.rb +25 -26
  17. data/lib/morpheus/mixins/reflections.rb +4 -1
  18. data/lib/morpheus/mixins/request_handling.rb +4 -1
  19. data/lib/morpheus/mixins/response_parsing.rb +12 -12
  20. data/lib/morpheus/mixins/url_support.rb +4 -1
  21. data/lib/morpheus/request.rb +34 -34
  22. data/lib/morpheus/response.rb +2 -2
  23. data/lib/morpheus/response_parser.rb +9 -4
  24. data/lib/morpheus/version.rb +1 -1
  25. data/morpheus.gemspec +4 -4
  26. data/spec/dummy/app/resources/author.rb +0 -1
  27. data/spec/dummy/app/resources/book.rb +0 -1
  28. data/spec/dummy/app/resources/dog.rb +3 -3
  29. data/spec/dummy/app/resources/meeting.rb +1 -2
  30. data/spec/dummy/config/application.rb +7 -36
  31. data/spec/dummy/config/environments/production.rb +1 -1
  32. data/spec/dummy/config/initializers/morpheus.rb +1 -1
  33. data/spec/dummy/config/locales/en.yml +1 -1
  34. data/spec/dummy/config/routes.rb +0 -56
  35. data/spec/morpheus/associations/association_spec.rb +51 -33
  36. data/spec/morpheus/associations/belongs_to_association_spec.rb +14 -2
  37. data/spec/morpheus/associations/has_many_association_spec.rb +31 -11
  38. data/spec/morpheus/associations/has_one_association_spec.rb +14 -2
  39. data/spec/morpheus/base_spec.rb +104 -100
  40. data/spec/morpheus/client/associations_spec.rb +43 -36
  41. data/spec/morpheus/client/log_subscriber_spec.rb +33 -0
  42. data/spec/morpheus/client/railtie_spec.rb +5 -0
  43. data/spec/morpheus/configuration_spec.rb +92 -113
  44. data/spec/morpheus/mixins/associations_spec.rb +90 -108
  45. data/spec/morpheus/mixins/attributes_spec.rb +71 -77
  46. data/spec/morpheus/mixins/conversion_spec.rb +49 -59
  47. data/spec/morpheus/mixins/filtering_spec.rb +13 -0
  48. data/spec/morpheus/mixins/finders_spec.rb +180 -217
  49. data/spec/morpheus/mixins/introspection_spec.rb +81 -124
  50. data/spec/morpheus/mixins/persistence_spec.rb +140 -133
  51. data/spec/morpheus/mixins/{reflection_spec.rb → reflections_spec.rb} +28 -28
  52. data/spec/morpheus/mixins/request_handling_spec.rb +21 -0
  53. data/spec/morpheus/mixins/response_parsing_spec.rb +10 -2
  54. data/spec/morpheus/mixins/url_support_spec.rb +29 -0
  55. data/spec/morpheus/reflection_spec.rb +21 -0
  56. data/spec/morpheus/relation_spec.rb +34 -58
  57. data/spec/morpheus/request_cache_spec.rb +33 -2
  58. data/spec/morpheus/request_queue_spec.rb +37 -0
  59. data/spec/morpheus/request_spec.rb +102 -1
  60. data/spec/morpheus/response_parser_spec.rb +17 -0
  61. data/spec/morpheus/response_spec.rb +55 -51
  62. data/spec/morpheus/type_caster_spec.rb +128 -118
  63. data/spec/morpheus/url_builder_spec.rb +41 -0
  64. data/spec/shared/active_model_lint_test.rb +2 -2
  65. data/spec/spec_helper.rb +7 -14
  66. data/spec/support/configuration.rb +3 -4
  67. metadata +32 -16
  68. data/README.rdoc +0 -44
  69. data/autotest/discover.rb +0 -7
  70. data/lib/morpheus/mock.rb +0 -66
  71. data/spec/morpheus/mock_spec.rb +0 -133
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+
3
+ describe Morpheus::UrlBuilder do
4
+
5
+ describe '.find_one' do
6
+ pending
7
+ end
8
+
9
+ describe '.find_some' do
10
+ pending
11
+ end
12
+
13
+ describe '.find_all' do
14
+ pending
15
+ end
16
+
17
+ describe '.save' do
18
+ pending
19
+ end
20
+
21
+ describe '.belongs_to' do
22
+ pending
23
+ end
24
+
25
+ describe '.has_one' do
26
+ pending
27
+ end
28
+
29
+ describe '.has_many' do
30
+ pending
31
+ end
32
+
33
+ describe '.relation' do
34
+ pending
35
+ end
36
+
37
+ describe '.destroy' do
38
+ pending
39
+ end
40
+
41
+ end
@@ -1,4 +1,4 @@
1
- shared_examples_for "ActiveModel" do
1
+ shared_examples_for 'ActiveModel' do
2
2
  require 'test/unit/assertions'
3
3
  require 'active_model/lint'
4
4
  include Test::Unit::Assertions
@@ -11,4 +11,4 @@ shared_examples_for "ActiveModel" do
11
11
  ActiveModel::Lint::Tests.public_instance_methods.map { |method| method.to_s }.grep(/^test/).each do |method|
12
12
  example(method.gsub('_', ' ')) { send method }
13
13
  end
14
- end
14
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,31 +1,24 @@
1
- # Configure Rails Envinronment
2
- ENV["RAILS_ENV"] = "test"
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ ENV['RAILS_ENV'] = 'test'
3
3
 
4
- require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
- require "rails/test_help"
6
- require "rspec/rails"
4
+ require File.expand_path('../dummy/config/environment.rb', __FILE__)
5
+ require 'rails/test_help'
6
+ require 'rspec/rails'
7
7
 
8
8
  ActionMailer::Base.delivery_method = :test
9
9
  ActionMailer::Base.perform_deliveries = true
10
- ActionMailer::Base.default_url_options[:host] = "test.com"
10
+ ActionMailer::Base.default_url_options[:host] = 'test.com'
11
11
 
12
12
  Rails.backtrace_cleaner.remove_silencers!
13
13
 
14
- # Run any available migration
15
- ActiveRecord::Migrator.migrate File.expand_path("../dummy/db/migrate/", __FILE__)
14
+ ActiveRecord::Migrator.migrate File.expand_path('../dummy/db/migrate/', __FILE__)
16
15
 
17
- # Load support files
18
16
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
19
17
  Dir["#{File.dirname(__FILE__)}/shared/**/*.rb"].each { |f| require f }
20
18
 
21
19
  RSpec.configure do |config|
22
- # Remove this line if you don't want RSpec's should and should_not
23
- # methods or matchers
24
20
  require 'rspec/expectations'
25
21
  config.include RSpec::Matchers
26
-
27
- # == Mock Framework
28
22
  config.mock_with :rspec
29
-
30
23
  config.color_enabled = true
31
24
  end
@@ -3,21 +3,20 @@ Morpheus::Configuration.hydra = Typhoeus::Hydra.new
3
3
  Morpheus::Configuration.allow_net_connect = false
4
4
 
5
5
  module MorpheusHelper
6
-
6
+
7
7
  def build_morpheus_response(status, content, errors = nil)
8
8
  body = {
9
9
  :status => status,
10
10
  :content => content
11
11
  }
12
12
  body.merge!(errors) if errors
13
- Morpheus::Response.new(:code => status, :headers => "", :body => body.to_json, :time => 0.3)
13
+ Morpheus::Response.new(:code => status, :headers => '', :body => body.to_json, :time => 0.3)
14
14
  end
15
-
15
+
16
16
  end
17
17
 
18
18
  RSpec.configure do |config|
19
19
  config.include(MorpheusHelper)
20
-
21
20
  config.before(:each) do
22
21
  Morpheus::Configuration.hydra.clear_stubs
23
22
  Morpheus::RequestQueue.queue.clear
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: morpheus
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 29
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 6
10
- version: 0.3.6
9
+ - 7
10
+ version: 0.3.7
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ryan Moran
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-12-08 00:00:00 Z
18
+ date: 2012-01-17 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: yajl-ruby
@@ -55,7 +55,7 @@ dependencies:
55
55
  requirement: &id003 !ruby/object:Gem::Requirement
56
56
  none: false
57
57
  requirements:
58
- - - ~>
58
+ - - ">"
59
59
  - !ruby/object:Gem::Version
60
60
  hash: 7
61
61
  segments:
@@ -71,7 +71,7 @@ dependencies:
71
71
  requirement: &id004 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
- - - ~>
74
+ - - ">"
75
75
  - !ruby/object:Gem::Version
76
76
  hash: 7
77
77
  segments:
@@ -87,7 +87,7 @@ dependencies:
87
87
  requirement: &id005 !ruby/object:Gem::Requirement
88
88
  none: false
89
89
  requirements:
90
- - - ~>
90
+ - - ">"
91
91
  - !ruby/object:Gem::Version
92
92
  hash: 11
93
93
  segments:
@@ -103,7 +103,7 @@ dependencies:
103
103
  requirement: &id006 !ruby/object:Gem::Requirement
104
104
  none: false
105
105
  requirements:
106
- - - ~>
106
+ - - ">"
107
107
  - !ruby/object:Gem::Version
108
108
  hash: 7
109
109
  segments:
@@ -187,13 +187,14 @@ extensions: []
187
187
  extra_rdoc_files: []
188
188
 
189
189
  files:
190
+ - .autotest
190
191
  - .gitignore
192
+ - .rspec
191
193
  - .rvmrc
192
194
  - Gemfile
193
195
  - LICENSE.txt
194
- - README.rdoc
196
+ - README.md
195
197
  - Rakefile
196
- - autotest/discover.rb
197
198
  - lib/ext/typhoeus.rb
198
199
  - lib/morpheus.rb
199
200
  - lib/morpheus/associations/association.rb
@@ -219,7 +220,6 @@ files:
219
220
  - lib/morpheus/mixins/request_handling.rb
220
221
  - lib/morpheus/mixins/response_parsing.rb
221
222
  - lib/morpheus/mixins/url_support.rb
222
- - lib/morpheus/mock.rb
223
223
  - lib/morpheus/reflection.rb
224
224
  - lib/morpheus/relation.rb
225
225
  - lib/morpheus/request.rb
@@ -276,21 +276,29 @@ files:
276
276
  - spec/morpheus/associations/has_one_association_spec.rb
277
277
  - spec/morpheus/base_spec.rb
278
278
  - spec/morpheus/client/associations_spec.rb
279
+ - spec/morpheus/client/log_subscriber_spec.rb
280
+ - spec/morpheus/client/railtie_spec.rb
279
281
  - spec/morpheus/configuration_spec.rb
280
282
  - spec/morpheus/mixins/associations_spec.rb
281
283
  - spec/morpheus/mixins/attributes_spec.rb
282
284
  - spec/morpheus/mixins/conversion_spec.rb
285
+ - spec/morpheus/mixins/filtering_spec.rb
283
286
  - spec/morpheus/mixins/finders_spec.rb
284
287
  - spec/morpheus/mixins/introspection_spec.rb
285
288
  - spec/morpheus/mixins/persistence_spec.rb
286
- - spec/morpheus/mixins/reflection_spec.rb
289
+ - spec/morpheus/mixins/reflections_spec.rb
290
+ - spec/morpheus/mixins/request_handling_spec.rb
287
291
  - spec/morpheus/mixins/response_parsing_spec.rb
288
- - spec/morpheus/mock_spec.rb
292
+ - spec/morpheus/mixins/url_support_spec.rb
293
+ - spec/morpheus/reflection_spec.rb
289
294
  - spec/morpheus/relation_spec.rb
290
295
  - spec/morpheus/request_cache_spec.rb
296
+ - spec/morpheus/request_queue_spec.rb
291
297
  - spec/morpheus/request_spec.rb
298
+ - spec/morpheus/response_parser_spec.rb
292
299
  - spec/morpheus/response_spec.rb
293
300
  - spec/morpheus/type_caster_spec.rb
301
+ - spec/morpheus/url_builder_spec.rb
294
302
  - spec/shared/active_model_lint_test.rb
295
303
  - spec/spec_helper.rb
296
304
  - spec/support/configuration.rb
@@ -323,7 +331,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
323
331
  requirements: []
324
332
 
325
333
  rubyforge_project:
326
- rubygems_version: 1.8.11
334
+ rubygems_version: 1.8.13
327
335
  signing_key:
328
336
  specification_version: 3
329
337
  summary: RESTful API Client
@@ -373,21 +381,29 @@ test_files:
373
381
  - spec/morpheus/associations/has_one_association_spec.rb
374
382
  - spec/morpheus/base_spec.rb
375
383
  - spec/morpheus/client/associations_spec.rb
384
+ - spec/morpheus/client/log_subscriber_spec.rb
385
+ - spec/morpheus/client/railtie_spec.rb
376
386
  - spec/morpheus/configuration_spec.rb
377
387
  - spec/morpheus/mixins/associations_spec.rb
378
388
  - spec/morpheus/mixins/attributes_spec.rb
379
389
  - spec/morpheus/mixins/conversion_spec.rb
390
+ - spec/morpheus/mixins/filtering_spec.rb
380
391
  - spec/morpheus/mixins/finders_spec.rb
381
392
  - spec/morpheus/mixins/introspection_spec.rb
382
393
  - spec/morpheus/mixins/persistence_spec.rb
383
- - spec/morpheus/mixins/reflection_spec.rb
394
+ - spec/morpheus/mixins/reflections_spec.rb
395
+ - spec/morpheus/mixins/request_handling_spec.rb
384
396
  - spec/morpheus/mixins/response_parsing_spec.rb
385
- - spec/morpheus/mock_spec.rb
397
+ - spec/morpheus/mixins/url_support_spec.rb
398
+ - spec/morpheus/reflection_spec.rb
386
399
  - spec/morpheus/relation_spec.rb
387
400
  - spec/morpheus/request_cache_spec.rb
401
+ - spec/morpheus/request_queue_spec.rb
388
402
  - spec/morpheus/request_spec.rb
403
+ - spec/morpheus/response_parser_spec.rb
389
404
  - spec/morpheus/response_spec.rb
390
405
  - spec/morpheus/type_caster_spec.rb
406
+ - spec/morpheus/url_builder_spec.rb
391
407
  - spec/shared/active_model_lint_test.rb
392
408
  - spec/spec_helper.rb
393
409
  - spec/support/configuration.rb
data/README.rdoc DELETED
@@ -1,44 +0,0 @@
1
- = RESTful API Client
2
- Working toward a DSL that is very ActiveResource/ActiveRecord-like with some features stolen from other great libraries like DataMapper.
3
-
4
- For Example:
5
-
6
- class Dummy < PolarisResource::Base
7
- property :name
8
- property :created_at
9
- property :has_smarts
10
-
11
- belongs_to :thingy
12
- has_many :thingamabobs
13
- has_one :doohickey
14
- end
15
-
16
- @dummy = Dummy.new(
17
- :name => "Dumb",
18
- :has_smarts => false,
19
- :thingy_id => 2) # => #<Dummy:0x1016858d8>
20
- @dummy.new_record? # => true
21
- @dummy.save # => POST http://localhost/dummies
22
-
23
- @dummy = Dummy.find(1) # => GET http:localhost/dummies/1
24
- @dummy.new_record? # => false
25
- @dummy.name # => "Dumb"
26
- @dummy.name = "Dumber" # => "Dumber"
27
- @dummy.save # => PUT http://localhost/dummies/1
28
- @dummy.update_attributes(:has_smarts => true) # => PUT http://localhost/dummies/1
29
-
30
- @dummy.thingy # => GET http://localhost/thingies/2
31
- @dummy.thingamabobs # => GET http://localhost/dummies/1/thingamabobs
32
- @dummy.doohickey # => GET http://localhost/dummies/1/doohickey
33
-
34
- Dummy.all # => GET http://localhost/dummies
35
- Dummy.find(1,2,3) # => GET http://localhost/dummies?ids=1,2,3
36
- Dummy.find([1,2,3]) # => GET http://localhost/dummies?ids=1,2,3
37
-
38
- Dummy.where(:name => "Dumb") # => GET http://localhost/dummies?name=Dumb
39
- Dummy.where(:name => "Dumb", :has_smarts => false) # => GET http://localhost/dummies?name=Dumb&has_smarts=false
40
- Dummy.limit(1) # => GET http://localhost/dummies?limit=1
41
- Dummy.result_per_page = 25 # => 25
42
- Dummy.page(3) # => GET http://localhost/dummies?limit=25&offset=50
43
-
44
- Design informed by Service-Oriented Design with Ruby and Rails by Paul Dix, @Amazon[http://www.amazon.com/Service-Oriented-Design-Rails-Addison-Wesley-Professional/dp/0321659368]
data/autotest/discover.rb DELETED
@@ -1,7 +0,0 @@
1
- Autotest.add_discovery do
2
- 'rspec2'
3
- end
4
-
5
- Autotest.add_hook :initialize do |autotest|
6
- ['.git', 'spec/dummy/log'].each { |exception| autotest.add_exception(exception) }
7
- end
data/lib/morpheus/mock.rb DELETED
@@ -1,66 +0,0 @@
1
- # The Mock class is used to mock out single instances of a remote resource.
2
- # It will stub any requests to /:class_name/:id.
3
- module Morpheus
4
- class Mock
5
-
6
- def initialize(mock_class, id, attributes = {}, options = {})
7
- @mock_class = mock_class.to_s
8
- @attributes = HashWithIndifferentAccess.new(attributes).merge({ 'id' => id })
9
- @options = options
10
-
11
- @attributes.keys.each do |attribute|
12
- (class << self; self; end).class_eval do
13
- define_method attribute do
14
- @attributes[attribute]
15
- end
16
-
17
- define_method "#{attribute}=" do |value|
18
- @attributes[attribute] = value
19
- end
20
- end
21
- end
22
-
23
- stub_finder_methods!
24
- end
25
-
26
- def id
27
- @attributes[:id]
28
- end
29
-
30
- def status
31
- @options[:status] || 200
32
- end
33
-
34
- def ==(other_object)
35
- HashWithIndifferentAccess.new(other_object.attributes) == @attributes && other_object.class.to_s == @mock_class
36
- end
37
-
38
- def self.mock(mock_class, id, attributes = {}, options = {})
39
- new(mock_class, id, attributes, options)
40
- end
41
-
42
- def self.clear!
43
- Configuration.hydra.clear_stubs
44
- end
45
-
46
- private
47
-
48
- def stub_finder_methods!
49
- stub_find_one!
50
- end
51
-
52
- def stub_find_one!
53
- response = Morpheus::Response.new(:code => status, :headers => "", :body => stub_find_one_body, :time => 0.3)
54
- Configuration.hydra.stub(:get, find_one_uri).and_return(response)
55
- end
56
-
57
- def stub_find_one_body
58
- { :status => status, :content => @attributes.merge({ :id => 1 }) }.to_json
59
- end
60
-
61
- def find_one_uri
62
- "#{Configuration.host}/#{@mock_class.underscore.pluralize}/#{id}"
63
- end
64
-
65
- end
66
- end
@@ -1,133 +0,0 @@
1
- require 'spec_helper'
2
-
3
- class Fake
4
- def self.attributes
5
- {
6
- :string => "Test",
7
- :boolean => true,
8
- :datetime => 'May 14, 2011, 5:00PM',
9
- :time => 'May 14, 2011, 5:00PM',
10
- :date => 'May 14, 2011',
11
- :array => [1,2,3],
12
- :hash => { :one => 1, :two => "two" }
13
- }
14
- end
15
- end
16
-
17
- describe Morpheus::Mock, ".initialize" do
18
-
19
- before(:each) do
20
- @mock = Morpheus::Mock.new(Fake, 1, Fake.attributes)
21
- end
22
-
23
- it "sets the @mock_class variable to the class passed in as a string" do
24
- @mock.instance_variable_get('@mock_class').should eql("Fake")
25
- end
26
-
27
- it "creates a new instance of this mock class with the given id" do
28
- @mock.id.should eql(1)
29
- end
30
-
31
- it "sets the @attributes variable using the attributes and id passed in" do
32
- @mock.instance_variable_get('@attributes').should eql(HashWithIndifferentAccess.new(Fake.attributes.merge({ :id => 1 })))
33
- end
34
-
35
- it "creates attr_accessors for each attribute" do
36
- @mock.instance_variable_get('@attributes').keys.each do |key|
37
- @mock.should respond_to(key)
38
- @mock.should respond_to("#{key}=")
39
- end
40
- end
41
-
42
- it "stubs the find method by stubbing the find url at '/:mock_class/:id'" do
43
- body = {
44
- :status => 200,
45
- :content => Fake.attributes.merge({ :id => 1 })
46
- }.to_json
47
- response = Typhoeus::Response.new(:code => 200, :headers => "", :body => body, :time => 0.3)
48
- @test_stub = Typhoeus::HydraMock.new("#{Morpheus::Configuration.host}/fakes/1", :get)
49
- @test_stub.and_return(response)
50
- @stub = Morpheus::Configuration.hydra.stubs.find do |stub|
51
- stub.url == @test_stub.url
52
- end
53
- @stub.should be_matches(Typhoeus::Request.new("#{Morpheus::Configuration.host}/fakes/1", :method => :get))
54
- Yajl::Parser.parse(@stub.response.body).should eql(Yajl::Parser.parse(@test_stub.response.body))
55
- end
56
-
57
- context "when given a specific status code" do
58
-
59
- before(:each) do
60
- Morpheus::Mock.clear!
61
- Morpheus::Mock.new(Fake, 1, Fake.attributes, :status => 500)
62
- end
63
-
64
- it "returns a response with the given status code" do
65
- Morpheus::Configuration.hydra.should eql(Typhoeus::Hydra.hydra)
66
- response = Typhoeus::Request.get("#{Morpheus::Configuration.host}/fakes/1")
67
- response.code.should eql(500)
68
- end
69
-
70
- end
71
-
72
- end
73
-
74
- describe Morpheus::Mock, ".id" do
75
-
76
- before(:each) do
77
- @mock = Morpheus::Mock.new(Fake, 1, Fake.attributes)
78
- end
79
-
80
- it "returns the id attribute" do
81
- @mock.id.should eql(1)
82
- end
83
-
84
- end
85
-
86
- describe Morpheus::Mock, ".status" do
87
-
88
- context "when a status code has not been set" do
89
-
90
- before(:each) do
91
- @mock = Morpheus::Mock.new(Fake, 1, Fake.attributes)
92
- end
93
-
94
- it "returns 200" do
95
- @mock.status.should eql(200)
96
- end
97
-
98
- end
99
-
100
- context "when a status code has been set to 500" do
101
-
102
- before(:each) do
103
- @mock = Morpheus::Mock.new(Fake, 1, Fake.attributes, :status => 500)
104
- end
105
-
106
- it "returns 500" do
107
- @mock.status.should eql(500)
108
- end
109
-
110
- end
111
-
112
- end
113
-
114
- describe Morpheus::Mock, "#mock" do
115
-
116
- it "returns a new instance of Mock" do
117
- Morpheus::Mock.mock(Fake, 1).should be_a(Morpheus::Mock)
118
- end
119
-
120
- end
121
-
122
- describe Morpheus::Mock, "#clear!" do
123
-
124
- it "clears all mock requests from Typhoeus" do
125
- Morpheus::Mock.new(Fake, 1, Fake.attributes)
126
- Morpheus::Mock.new(Fake, 2, Fake.attributes)
127
- Morpheus::Mock.new(Fake, 3, Fake.attributes)
128
- Morpheus::Configuration.hydra.stubs.should have(3).stubs
129
- Morpheus::Mock.clear!
130
- Morpheus::Configuration.hydra.stubs.should be_empty
131
- end
132
-
133
- end