Skip to content

Instantly share code, notes, and snippets.

@jmeirow
Created July 4, 2013 14:55
Show Gist options
  • Save jmeirow/5928455 to your computer and use it in GitHub Desktop.
Save jmeirow/5928455 to your computer and use it in GitHub Desktop.
persistence tests
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