main
 1require "spec_helper"
 2
 3class CarWash
 4  def initialize(name = "Unknown Name", address = "Unknown Address")
 5    @name = name
 6    @address = address    
 7  end
 8  def description
 9    "#{@name} is located at #{@address}"
10  end
11  
12  def self.wash(car)
13    @carr = car
14    @@car = car
15    "Your #{@@car} is clean."
16  end
17  
18  def self.last_car_washed
19    @carr  
20  end
21  
22  def last_car_scrubbed
23    CarWash.instance_variable_get("@carr")
24  end
25end
26
27class Drink
28  attr_reader :name
29  attr_accessor :color
30  attr_accessor :rating
31  
32  def initialize(name)
33    @name = name
34    # @color = color()
35    # @rating = rating()
36  end
37end
38
39describe 'pop quiz 1' do
40  context :instance_methods do
41    it "can define an instance method" do
42      car_wash = CarWash.new("Petro-Canada", "123 Street NW")
43      car_wash.description.should == "Petro-Canada is located at 123 Street NW"
44    end
45  end
46
47  context :class_methods do
48    it "can define a class method" do
49      car = "Honda"
50      washed_car = CarWash.wash(car)
51      washed_car.should == "Your #{car} is clean."
52    end
53    
54    it "can access a class variable" do
55      car = "Toyota"
56      CarWash.wash(car)
57      CarWash.last_car_washed.should == car
58    end
59    
60    it "should return the last car washed at a specific car wash" do
61      car = "Jeep"
62      CarWash.wash(car)
63      CarWash.new.last_car_scrubbed.should == car
64    end
65  end
66
67  context :attr_ do
68    it "can define a getter" do
69      drink = Drink.new("water")
70      drink.name.should == "water"
71    end
72
73    it "can define a setter" do
74      drink = Drink.new("kool-aid")
75      drink.color="pink"
76      drink.instance_variable_get("@color").should == "pink"
77    end
78
79    it "can define something that is a getter and setter" do
80      drink = Drink.new("chocolate milk")
81      drink.rating=5
82      drink.rating.should == 5
83    end
84    
85    it "should have a default colour" do
86      drink = Drink.new("tea")
87      drink.color.should == nil
88    end
89  end
90end
91