diff --git a/lib/vessel.rb b/lib/vessel.rb index 6849edf..f625510 100644 --- a/lib/vessel.rb +++ b/lib/vessel.rb @@ -1,9 +1,18 @@ class Vessel - attr_reader :volume + attr_reader :volume, :name, :empty - def initialize(name, volume) + def initialize(name = "FAKE", volume = 100) @name = name @volume = volume + @empty = true + end + + def empty? + @empty + end + + def fill + @empty = false end end diff --git a/lib/water_reservoir.rb b/lib/water_reservoir.rb index b314707..cf27a8b 100644 --- a/lib/water_reservoir.rb +++ b/lib/water_reservoir.rb @@ -17,7 +17,9 @@ def fill end def drain(volume) - self.current_water_volume -= volume + if current_water_volume > 0 + self.current_water_volume -= volume + end end end diff --git a/spec/item_spec.rb b/spec/item_spec.rb index caeefe4..1360b8b 100644 --- a/spec/item_spec.rb +++ b/spec/item_spec.rb @@ -1,5 +1,18 @@ require_relative '../lib/item' describe 'An item of food or a beverage' do + item = Item.new("Fake", 100) + + it 'exists' do + Item.new("Fake", 100) + end + + it 'has a name' do + expect(item).to respond_to(:name) + end + + it 'has a volume' do + expect(item).to respond_to(:volume) + end end diff --git a/spec/vessel_spec.rb b/spec/vessel_spec.rb index 3a6c301..f956f42 100644 --- a/spec/vessel_spec.rb +++ b/spec/vessel_spec.rb @@ -9,13 +9,11 @@ end it 'is initially empty' do - skip vessel = Vessel.new('FAKE', 100) expect(vessel).to be_empty end it 'is no longer empty when we fill it' do - skip vessel = Vessel.new('FAKE', 100) vessel.fill expect(vessel).to_not be_empty diff --git a/spec/water_dispenser_spec.rb b/spec/water_dispenser_spec.rb index 526e3d9..0aadb7d 100644 --- a/spec/water_dispenser_spec.rb +++ b/spec/water_dispenser_spec.rb @@ -1,5 +1,14 @@ require_relative '../lib/water_dispenser' describe 'A water dispenser' do + water_dispenser = WaterDispenser.new("FAKE") + + it 'exists' do + WaterDispenser.new("FAKE") + end + + it 'has a reservoir' do + expect(water_dispenser).to respond_to(:reservoir) + end end diff --git a/spec/water_reservoir_spec.rb b/spec/water_reservoir_spec.rb index 059a885..c8bc2d1 100644 --- a/spec/water_reservoir_spec.rb +++ b/spec/water_reservoir_spec.rb @@ -1,5 +1,25 @@ require_relative '../lib/water_reservoir' describe 'A water reservoir' do + water_reservoir = WaterReservoir.new + it 'exists' do + WaterReservoir.new + end + + it 'has a capacity' do + expect(water_reservoir).to respond_to(:capacity) + end + + it 'has a current_water_volume' do + expect(water_reservoir).to respond_to(:current_water_volume) + end + + it 'expects current_water_volume to be initialized to empty' do + expect(water_reservoir).to be_empty + end + + it 'expects fill to return the capacity' do + expect(water_reservoir.fill).to eq(10) + end end