From 77b3bddcd814f09a933aa3514b1ea81a4f65aefc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Hock=20Isaza?= Date: Wed, 16 Jan 2013 12:02:48 -0500 Subject: [PATCH] Adding a Waiting Reservation class I'm still not 100% comfortable with this approach but for now I think we can get something working and then think about something else. Otherwise nothing will be accomplished. Related to #2 --- lib/deustorb/reservation.rb | 7 +++-- lib/deustorb/reservations/waiting.rb | 13 +++++++++ spec/deustorb/reservations/waiting_spec.rb | 32 ++++++++++++++++++++++ 3 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 lib/deustorb/reservations/waiting.rb create mode 100644 spec/deustorb/reservations/waiting_spec.rb diff --git a/lib/deustorb/reservation.rb b/lib/deustorb/reservation.rb index 90e69a2..41ee9b1 100644 --- a/lib/deustorb/reservation.rb +++ b/lib/deustorb/reservation.rb @@ -1,4 +1,7 @@ +require 'deustorb/reservations/waiting' + module Deustorb - class Reservation + module Reservation + WAITING = 'waiting' end -end +end \ No newline at end of file diff --git a/lib/deustorb/reservations/waiting.rb b/lib/deustorb/reservations/waiting.rb new file mode 100644 index 0000000..0e4a2ef --- /dev/null +++ b/lib/deustorb/reservations/waiting.rb @@ -0,0 +1,13 @@ +module Deustorb + module Reservation + class Waiting + attr_reader :id, :status, :position + + def initialize(options) + @id = options.fetch(:id) + @position = options.fetch(:position) + @status = Reservation::WAITING + end + end + end +end \ No newline at end of file diff --git a/spec/deustorb/reservations/waiting_spec.rb b/spec/deustorb/reservations/waiting_spec.rb new file mode 100644 index 0000000..da7bd27 --- /dev/null +++ b/spec/deustorb/reservations/waiting_spec.rb @@ -0,0 +1,32 @@ +require 'spec_helper' +module Deustorb + module Reservation + describe Waiting do + def reservation + Deustorb::Reservation::Waiting.new(id: 'some-id', position: 3) + end + + it "has a waiting status" do + expect(reservation.status).to eql(Reservation::WAITING) + end + + it "has an id" do + expect(reservation.id).to eql('some-id') + end + + it "has a position" do + expect(reservation.position).to eql(3) + end + + describe "#initialize options" do + it "requires an id key" do + expect{ Waiting.new(position: 3) }.to raise_error(KeyError) + end + + it "requires a position key" do + expect{ Waiting.new(id: 'some-id') }.to raise_error(KeyError) + end + end + end + end +end \ No newline at end of file