require 'test/unit' require 'Customer' require 'Movie' require 'Rental' class CustomerTest < Test::Unit::TestCase def testCustomer c = Customer.new("David") assert_not_nil(c) end def testAddRental customer2 = Customer.new("Sallie"); movie1 = Movie.new("Gone with the Wind", Movie::REGULAR) rental1 = Rental.new(movie1, 3) # 3 day rental customer2.addRental(rental1) end def testGetName c = Customer.new("David") assert_equal("David", c.getName()) end def testStatementForRegularMovie customer2 = Customer.new("Sallie") movie1 = Movie.new("Gone with the Wind", Movie::REGULAR) rental1 = Rental.new(movie1, 3) # 3 day rental customer2.addRental(rental1) expected = "Rental Record for Sallie\n" + "\tGone with the Wind\t3.5\n" + "Amount owed is 3.5\n" + "You earned 1 frequent renter points" statement = customer2.statement assert_equal(expected, statement) end def testStatementForNewReleaseMovie customer2 = Customer.new("Sallie") movie1 = Movie.new("Star Wars", Movie::NEW_RELEASE) rental1 = Rental.new(movie1, 3) # 3 day rental customer2.addRental(rental1) expected = "Rental Record for Sallie\n" + "\tStar Wars\t9\n" + "Amount owed is 9\n" + "You earned 2 frequent renter points" statement = customer2.statement assert_equal(expected, statement) end def testStatementForChildrensMovie customer2 = Customer.new("Sallie") movie1 = Movie.new("Madagascar", Movie::CHILDRENS) rental1 = Rental.new(movie1, 3) # 3 day rental customer2.addRental(rental1) expected = "Rental Record for Sallie\n" + "\tMadagascar\t1.5\n" + "Amount owed is 1.5\n" + "You earned 1 frequent renter points" statement = customer2.statement assert_equal(expected, statement) end def testStatementForManyMovies customer1 = Customer.new("David") movie1 = Movie.new("Madagascar", Movie::CHILDRENS) rental1 = Rental.new(movie1, 6); # 6 day rental movie2 = Movie.new("Star Wars", Movie::NEW_RELEASE) rental2 = Rental.new(movie2, 2) # 2 day rental movie3 = Movie.new("Gone with the Wind", Movie::REGULAR) rental3 = Rental.new(movie3, 8); # 8 day rental customer1.addRental(rental1) customer1.addRental(rental2) customer1.addRental(rental3) expected = "Rental Record for David\n" + "\tMadagascar\t6.0\n" + "\tStar Wars\t6.0\n" + "\tGone with the Wind\t11.0\n" + "Amount owed is 23.0\n" + "You earned 4 frequent renter points" statement = customer1.statement assert_equal(expected, statement) end end