Created
July 4, 2013 14:55
-
-
Save jmeirow/5928455 to your computer and use it in GitHub Desktop.
persistence tests
This file contains hidden or 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
require 'rspec' | |
require_relative '../person' | |
require_relative '../command_create_person.rb' | |
require_relative '../documents_repository.rb' | |
require_relative '../aggregate_lookup.rb' | |
require_relative '../command_person_correct_ssn.rb' | |
describe Person do | |
it 'should return false when verify_data called on new instance with no required fields' do | |
person = Person.new | |
person.valid?.should be_false | |
end | |
it 'should return false when verify_data called on instance with some, but not all required fields are populated' do | |
person = Person.new | |
person.first_name = "Joseph" | |
person.valid?.should be_false | |
end | |
it 'should return true when verify_data called on instance when required fields are present' do | |
person = Person.new | |
person.first_name = "Joseph" | |
person.last_name = "Meirow" | |
person.government_id = GovernmentId.new("SSN", "333558888") | |
person.valid?.should be_true | |
end | |
it 'should return true when verify_data called on instance when required state is present and optional field(s) is/are present as well' do | |
person = Person.new | |
person.first_name = "Joseph" | |
person.last_name = "Meirow" | |
person.government_id = GovernmentId.new("SSN", "333558888") | |
person.nick_name = "Joe" | |
person.valid?.should be_true | |
end | |
it 'should return true when verify_data called on instance when required state is present and optional field(s) is/are present as well' do | |
person = Person.new | |
person.first_name = "Joseph" | |
person.last_name = "Meirow" | |
person.government_id = GovernmentId.new("SSN", "333558888") | |
person.nick_name = "Joe" | |
person.valid?.should be_true | |
end | |
it 'should return false when verify_data called on instance and a data element is not the correct type' do | |
person = Person.new | |
person.first_name = "Joseph" | |
person.last_name = Time.now | |
person.government_id = GovernmentId.new("SSN", "999999999") | |
person.valid?.should be_false | |
end | |
end | |
describe AggregateLookup do | |
it '' do | |
AggregateLookup.exists? 'person', '024B2E66-060C-4BE2-8104-455E2007575E' | |
end | |
end | |
describe CommandPersonCreate do | |
person = Person.new | |
it 'should fail if no param passed to init ' do | |
lambda {cmd = CommandPersonCreate.new }.should raise_error( ArgumentError ) | |
end | |
it 'should fail if param passed but is not Person ' do | |
lambda {cmd = CommandPersonCreate.new '' }.should raise_error( ArgumentError ) | |
end | |
it 'should require a Person as an argument upon creation ' do | |
lambda {cmd = CommandPersonCreate.new person }.should_not raise_error( ArgumentError ) | |
end | |
it 'should fail is >1 arg passed ' do | |
lambda {cmd = CommandPersonCreate.new person, person }.should raise_error( ArgumentError ) | |
end | |
it 'should know how to create a Person object' do | |
person = Person.new | |
person.first_name = "Joseph" | |
person.last_name = "Meirow" | |
person.government_id = GovernmentId.new("SSN", "333558888") | |
cmd = CommandPersonCreate.new person | |
cmd.execute | |
end | |
it 'should know how to create a Person object' do | |
aggregate_id = AggregateLookup.get_aggregate_id 'person' , "333558888" | |
puts "AGGREGATE ID = : #{aggregate_id}" | |
government_id = GovernmentId.new("SSN", "999999999") | |
cmd = CommandPersonCorrectSSN.new aggregate_id, government_id | |
cmd.execute | |
end | |
end | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment