From 4e002fff8abe263128b85c8e0acc25798b70c0b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Hock=20Isaza?= Date: Wed, 16 Jan 2013 12:20:01 -0500 Subject: [PATCH] [#2] Adding a Waiting Instances class --- lib/deustorb/reservation.rb | 2 ++ .../reservations/waiting_instances.rb | 13 ++++++++ .../reservations/waiting_instances_spec.rb | 33 +++++++++++++++++++ spec/deustorb/reservations/waiting_spec.rb | 2 +- 4 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 lib/deustorb/reservations/waiting_instances.rb create mode 100644 spec/deustorb/reservations/waiting_instances_spec.rb diff --git a/lib/deustorb/reservation.rb b/lib/deustorb/reservation.rb index 43fdf73..5071e01 100644 --- a/lib/deustorb/reservation.rb +++ b/lib/deustorb/reservation.rb @@ -1,9 +1,11 @@ require 'deustorb/reservations/waiting' +require 'deustorb/reservations/waiting_instances' require 'deustorb/reservations/waiting_confirmation' module Deustorb module Reservation WAITING = 'waiting' + WAITING_INSTANCES = 'waiting_instances' WAITING_CONFIRMATION = 'waiting_confirmation' end end \ No newline at end of file diff --git a/lib/deustorb/reservations/waiting_instances.rb b/lib/deustorb/reservations/waiting_instances.rb new file mode 100644 index 0000000..aad52a6 --- /dev/null +++ b/lib/deustorb/reservations/waiting_instances.rb @@ -0,0 +1,13 @@ +module Deustorb + module Reservation + class WaitingInstances + attr_accessor :id, :status, :position + + def initialize(options = {}) + @id = options.fetch(:id) + @position = options.fetch(:position) + @status = Reservation::WAITING_INSTANCES + end + end + end +end \ No newline at end of file diff --git a/spec/deustorb/reservations/waiting_instances_spec.rb b/spec/deustorb/reservations/waiting_instances_spec.rb new file mode 100644 index 0000000..76a4fb1 --- /dev/null +++ b/spec/deustorb/reservations/waiting_instances_spec.rb @@ -0,0 +1,33 @@ +require 'spec_helper' + +module Deustorb + module Reservation + describe WaitingInstances do + let(:reservation) do + Deustorb::Reservation::WaitingInstances.new(id: 'some-id', position: 3) + end + + it "has a waiting status" do + expect(reservation.status).to eql(Reservation::WAITING_INSTANCES) + 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{ WaitingInstances.new(position: 3) }.to raise_error(KeyError) + end + + it "requires a position key" do + expect{ WaitingInstances.new(id: 'some-id') }.to raise_error(KeyError) + end + 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 index ace6f63..1e089a1 100644 --- a/spec/deustorb/reservations/waiting_spec.rb +++ b/spec/deustorb/reservations/waiting_spec.rb @@ -3,7 +3,7 @@ module Deustorb module Reservation describe Waiting do - def reservation + let(:reservation) do Deustorb::Reservation::Waiting.new(id: 'some-id', position: 3) end