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