-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Wrote the app code and tests for the CreateStatus action and the requ…
…ired entity and jack methods.
- Loading branch information
1 parent
5394f27
commit 3ae84fe
Showing
11 changed files
with
162 additions
and
60 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
--colour | ||
--format nested |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
guard 'rspec', :cli => "--color", :spec_paths => ["app/spec"] do | ||
watch(%r{^app/spec/.+_spec\.rb$}) | ||
watch(%r{^app/(.+)\.rb$}) { |m| "app/spec/#{m[1]}_spec.rb" } | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,33 @@ | ||
require 'validation' | ||
|
||
class Status | ||
include Validation | ||
|
||
attr_validator :text, String | ||
attr_validator :user_id, Fixnum | ||
attr_validator :id, Fixnum | ||
|
||
# self.shape is useful for contract validation, especially on list and save methods | ||
def self.shape | ||
{ | ||
:text => String, | ||
:user_id => Fixnum, | ||
:id => Fixnum | ||
} | ||
end | ||
|
||
def populate input | ||
nil | ||
self.text = input[:text] | ||
self.user_id = input[:user_id] | ||
self.id = input[:id] | ||
end | ||
|
||
def to_hash input | ||
nil | ||
def to_hash | ||
{ | ||
:text => text, | ||
:user_id => user_id, | ||
:id => id | ||
} | ||
end | ||
|
||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
require_relative '../../contracts/status_jack_contract' | ||
require_relative '../doubles/status_jack_double' | ||
|
||
describe StatusJackContract do | ||
|
||
describe '.save_contract' do | ||
it 'should save data with valid input' do | ||
input = { :user_id => 1, :text => 'making a sandwich', :id => 1 } | ||
jack = StatusJackDouble.create :default | ||
result = jack.save input | ||
result.should eq :user_id => 1, :text => 'making a sandwich', :id => 1 | ||
end | ||
|
||
it 'should raise an error with invalid input' do | ||
input = { :user_id => nil, :text => nil, :id => nil } | ||
jack = StatusJackDouble.create :default | ||
expect { jack.save input }.to raise_error ContractInputError | ||
end | ||
|
||
it 'should raise an error with invalid output' do | ||
input = { :user_id => 1, :text => 'making a sandwich', :id => 1 } | ||
jack = StatusJackDouble.create :bad_output | ||
expect { jack.save input }.to raise_error ContractOutputError | ||
end | ||
|
||
end | ||
|
||
describe '.get_contract' do | ||
it 'should get data with valid input' | ||
|
||
it 'should raise an error with invalid input' | ||
|
||
it 'should raise an error with invalid output' | ||
|
||
end | ||
|
||
describe '.list_contract' do | ||
it 'should list data with valid input' | ||
|
||
it 'should raise an error with invalid input' | ||
|
||
it 'should raise an error with invalid output' | ||
|
||
end | ||
|
||
describe '.remove_contract' do | ||
it 'should remove data with valid input' | ||
|
||
it 'should raise an error with invalid input' | ||
|
||
it 'should raise an error with invalid output' | ||
|
||
end | ||
|
||
end | ||
|
This file was deleted.
Oops, something went wrong.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
require_relative '../../contracts/status_jack_contract' | ||
|
||
class StatusJackDouble | ||
def self.create behavior | ||
case behavior | ||
when :bad_output | ||
StatusJack_BadOutput.new | ||
when :default | ||
StatusJack_Default.new | ||
end | ||
end | ||
end | ||
|
||
class StatusJack_Default < StatusJackContract | ||
|
||
def save input | ||
{ :user_id => 1, :text => 'making a sandwich', :id => 1 } | ||
end | ||
|
||
end | ||
|
||
class StatusJack_BadOutput < StatusJackContract | ||
|
||
def save input | ||
nil | ||
end | ||
|
||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters