Exemple #1
0
class TestRoom(unittest.TestCase):
    def setUp(self):

        self.room1 = Room("Stars Hollow", 10)

        self.guest1 = Guest("Sally Owens")

        self.song1 = Song("Folsom Prison Blues", "Johnny Cash",
                          "Rock and roll")

    def test_room_has_name(self):
        self.assertEqual("Stars Hollow", self.room1.name)

    def test_room_has_capacity(self):
        self.assertEqual(10, self.room1.capacity)

    def test_number_of_guests(self):
        self.assertEqual(0, self.room1.number_of_guests())

    def test_guest_checked_in(self):
        self.room1.check_in_guests(self.guest1)
        self.assertEqual(1, self.room1.number_of_guests())

    def test_guest_checked_out(self):
        self.room1.check_out_guests(self.guest1)
        self.assertEqual(0, self.room1.number_of_guests())

    def test_song_added(self):
        self.room1.add_song(self.song1)
        self.assertEqual(1, self.room1.number_of_songs())
Exemple #2
0
class TestRoom(unittest.TestCase):
    def setUp(self):
        #rooms
        self.room_1 = Room(1, 4)
        self.room_2 = Room(2, 4)
        self.room_3 = Room(3, 2)

        #guests
        self.guest_1 = Guest('Rick Sanchez', 70, 9999)
        self.guest_2 = Guest('Morty Smith', 14, 0)
        self.guest_3 = Guest('Gintoki Sakata', 29, 20)
        self.guest_4 = Guest('Briareos Hecaton', 42, 800)
        self.guest_5 = Guest('Deunan Knute', 33, 500)
        self.guest_6 = Guest('Cheryl Tunt', 27, 20)
        self.guest_7 = Guest('Lana Kane', 32, 300)
        self.guest_8 = Guest('Sterling Archer', 36, 850)
        #unwanted guest
        self.guest_9 = Guest('Jerry Smith', 40, 20)

        #songs
        self.song_1 = Song('Wicked Games', 'Chris Isaak')
        self.song_2 = Song('Fire Starter', 'The Prodigy')
        self.song_3 = Song('Big Poppa', 'The Notorious B.I.G')
        self.song_4 = Song('Still D.R.E', 'Dr. Dre ft. Snoop Dogg')

#6

    def test_guest_is_old_enough__returns_true(self):
        self.assertEqual(True, self.room_1.guest_is_old_enough(self.guest_1))
#7

    def test_customer_is_old_enough__returns_false(self):
        self.assertEqual(False, self.room_1.guest_is_old_enough(self.guest_2))
#8

    def test_add_song_to_room(self):
        self.room_1.add_song(self.song_1)
        self.room_1.add_song(self.song_3)
        self.assertEqual(2, self.room_1.song_count())
#9

    def test_checks_guests_in(self):
        self.room_1.add_guest(self.guest_1)
        self.room_1.add_guest(self.guest_2)
        self.room_1.add_guest(self.guest_3)
        self.assertEqual(2, self.room_1.guest_count())
#10
#@unittest.skip("delete this line to run the test")

    def test_checks_guests_out(self):
        self.room_1.remove_guest(self.guest_1)
        self.assertEqual(0, self.room_1.guest_count())

#11
#unittest.skip("delete this line to run the test")

    def test_remove_song_from_room(self):
        self.room_1.remove_song(self.song_1)
        self.assertEqual(0, self.room_1.song_count())
Exemple #3
0
class TestRoom(unittest.TestCase):

    def setUp(self):
        self.room_1 = Room("electronic")
        self.room_2 = Room("art rock")

        self.guest_1 = Guest("Steve")
        self.guest_2 = Guest("Bill")
        self.guest_3 = Guest("Vint")
        self.guest_4 = Guest("Tim")
        self.guest_5 = Guest("Ada")
        self.guest_6 = Guest("Grace")

        self.song_1 = Song("Pocket Calculator", "Kraftwerk", "electronic")
        self.song_2 = Song("Paranoid Android", "Radiohead", "art rock")
        self.song_3 = Song("Saviour Machine", "David Bowie", "rock")
        self.song_4 = Song("Daisy", "HAL9000", "electronic")
        self.song_5 = Song("Satellite of Love", "Lou Reed", "art rock")
        self.song_6 = Song("Cannonball", "The Breeders", "rock")

        #Create lists to use for PDA requirements
         
        self.list_of_guests = [self.guest_1, self.guest_2, self.guest_3, self.guest_4, self.guest_5, self.guest_6]

        self.list_of_songs = [self.song_1, self.song_2, self.song_3, self.song_4, self.song_5, self.song_6]
         
    #Second Tests

    def test_add_guests_from_list(self):
        self.room_2.check_in_guests_from_list(self.list_of_guests[])
        self.assertEqual(1, self.room_2.guest_counter())
    
    #First Tests Below
    
    def test_room_has_name(self):
        self.assertEqual("electronic", self.room_1.name)

    
    def test_check_in_guest_to_room(self):
        self.room_1.check_in_guest(self.guest_1)
        self.assertEqual(1, self.room_1.guest_counter())


    def test_check_out_guest_from_room(self):
        self.room_1.check_in_guest(self.guest_1)
        self.room_1.check_in_guest(self.guest_2)
        self.room_1.check_in_guest(self.guest_3)
        self.room_1.check_out_guest(self.guest_1)
        self.assertEqual(2, self.room_1.guest_counter())


    def test_add_song_to_room(self):
        self.room_1.add_song(self.song_1)
        self.assertEqual(1, self.room_1.song_counter())
Exemple #4
0
class TestRoom(unittest.TestCase):
    def setUp(self):
        self.room1 = Room("G23", 2)
        self.guest = Guest("Johnny Bravo")
        self.guest2 = Guest("Paul Cann")
        self.guest3 = Guest("Matt Barn")
        self.song1 = Song("water under the bridge")

    def test_room_has_a_name(self):
        self.assertEqual("G23", self.room1.name)

    def test_room_has_capacity_to_admit_guest(self):
        expected_answer = "Welcome"
        actual_answer = self.room1.check_in(self.guest)
        self.assertEqual(expected_answer, actual_answer)

    def test_guests_can_check_into_the_room(self):
        expected_answer = "Johnny Bravo"  # Arrange -> the things I need for my test
        self.room1.check_in(
            self.guest)  # Act -> call the method/function under test
        actual_answer = self.room1.guest_list[
            0]  # Act -> what you get back from calling your method/function
        self.assertEqual(
            expected_answer,
            actual_answer)  # Assert -> check that expected and actual match

    def test_guests_can_check_out_of_the_room(self):
        self.room1.check_in(self.guest)
        self.room1.check_out(self.guest)
        self.assertEqual(0, len(self.room1.guest_list))
        # self.assertNotIn(self.room1.guest_list, self.guest.name)

    def test_no_song_in_the_room(self):
        self.assertEqual(0, len(self.room1.playlist))

    def test_song_can_be_added_to_room(self):
        self.room1.add_song(self.song1)
        self.assertIn(self.song1.title, self.room1.playlist)

    def test_when_there_is_no_capacity_for_another_guest(self):
        expected_answer = "try again later"
        self.room1.check_in(self.guest)
        self.room1.check_in(self.guest2)
        actual_answer = self.room1.check_in(self.guest3)
        self.assertEqual(expected_answer, actual_answer)
Exemple #5
0
class RoomTest(unittest.TestCase):

    def setUp(self):
        self.room = Room("podA", 100.00)
        self.song = Song("oasis", "wonderwall")
        self.guest = Guest ("Amy", 100.00)
        
    def test_check_song_list(self):
        self.assertEqual(0, len(self.room.song))

    def test_room_has_name(self):
        self.assertEqual("podA",self.room.room)

    def test_till_total(self):
        self.assertEqual(100.00, self.room.till)

    def test_add_song_to_song(self):
        song1 = Song ("coldplay", "fix_you")
        song2 = Song ("fleetwood_mac", "dreams")
        song3 = Song ("cream", "sunshine_of_your_love")
        self.room.add_song(song3)
        self.room.add_song(song1)
        self.room.add_song(song2)
        self.assertEqual(3, len(self.room.song))
    
    def test_check_song_list(self):
        self.assertEqual(0, len(self.room.song))

    # def test_add_room_name(self):
    #     room1 = Room("podA", 100.00)
    #     room2 = Room("podB", 100.00)
    #     room3 = Room("podC", 100.00)
    #     self.room.add_room_name(room1)
    #     self.room.add_room_name(room2)
    #     self.room.add_room_name(room3)
    #     self.assertEqual(3, len(self.room.room))

     
    def test_add_guest_to_room(self):
        guest1 = Guest("sam", 100,00)
        guest2 = Guest("pat", 50.00)
        guest3 = Guest("dan", 20.00)
        self.room.add_guest(self.guest1)
        self.room.add_guest(guest2)
        self.room.add_guest(guest3, self.guest)
        self.assertEqual(1, self.room.guest)

    # def test_check_in_guest(self):
    #     self.guest.check_in_guest(self.guest)
    #     self.assertEqual('Amy', self.guest.guest)
    #     self.assertEqual(1,len(self.room.room))
    #     #added this and append on room.py it stayed at 7 tests as if this does nothing...

    # def check_out_guest(self):
    #     self.guest.check_out_guest(self.guest)
    #     self.assertEqual("Amy", self.guest.guest)
    #     self.assertEqual(0, len(self.room.room))
    #     #added and no change, still 7 tests run, 0 error/fail.

    # def remove_guest_from_room(self):
    #     self.assertEqual()
class TestRoom(unittest.TestCase):
    def setUp(self):
        self.room = Room(1, 7.00)
        self.guest = Guest("Kakashi Hetaki", 27, 22.50,
                           "Communications Breakdown")
        self.guest_2 = Guest("Asuma Sarutobi", 28, 17.00, "Lotta Years")
        self.guest_3 = Guest("Jiraiya", 51, 47.00, "Brown Eyed Girl")
        self.guest_4 = Guest("Shikamaru Nara", 18, 5.00, "Emerald")
        self.song = Song("Aesop Rock", "Lotta Years", 50)
        self.song_2 = Song("Jon Hopkins", "Emerald", 0)
        self.song_3 = Song("Led Zeppelin", "Communications Breakdown", 100)
        self.song_4 = Song("Aesop Rock", "None Shall Pass", 150)

    def test_room_can_add_songs(self):
        self.room.add_song(self.song)
        self.room.add_song(self.song_2)
        list_len = self.room.get_song_list_len()
        self.assertEqual(2, list_len)

    def test_room_can_add_guest(self):
        self.room.add_guest(self.guest)
        self.assertEqual(1, self.room.get_current_guest_list_len())

    def test_if_room_is_full(self):
        self.room.add_guest(self.guest)
        self.room.add_guest(self.guest_2)
        self.room.add_guest(self.guest_3)
        is_true = self.room.check_if_room_full()
        self.assertTrue(is_true)

    def test_if_room_is_not_full(self):
        self.room.add_guest(self.guest)
        is_false = self.room.check_if_room_full()
        self.assertFalse(is_false)

    def test_guest_can_pay_bill(self):
        self.assertTrue(self.guest.can_pay_bill(self.room))

    def test_guest_can_not_pay_bill(self):
        self.assertFalse(self.guest_4.can_pay_bill(self.room))

    def test_guest_can_check_in(self):
        self.room.guest_check_in(self.guest)
        self.assertEqual(1, self.room.get_current_guest_list_len())

    def test_room_is_full(self):
        self.room.guest_check_in(self.guest)
        self.room.guest_check_in(self.guest_2)
        self.room.guest_check_in(self.guest_3)
        output = self.room.guest_check_in(self.guest_4)
        self.assertEqual(
            "I'm sorry, this room is currently full, please try another.",
            output)

    def test_not_enough_funds(self):
        output = self.room.guest_check_in(self.guest_4)
        self.assertEqual("You require more funds.", output)

    def test_get_songs_by_title(self):
        self.room.add_song(self.song)
        self.room.add_song(self.song_2)
        self.room.add_song(self.song_3)
        songs = self.room.get_songs_by_title("Emerald")
        self.assertEqual(1, len(songs))

    def test_no_songs_found_by_title(self):
        self.room.add_song(self.song_3)
        output = self.room.get_songs_by_title("Emerald")
        self.assertEqual("Sorry, we do not have that song", output)

    def test_get_songs_by_artist(self):
        self.room.add_song(self.song_2)
        self.room.add_song(self.song)
        self.room.add_song(self.song_4)
        songs = self.room.get_songs_by_artist("Aesop Rock")
        self.assertEqual(2, len(songs))

    def test_no_songs_by_artist(self):
        self.room.add_song(self.song)
        self.room.add_song(self.song_2)
        output = self.room.get_songs_by_artist("Barry White")
        self.assertEqual("Sorry, we don't have anything by that artist",
                         output)

    def test_look_for_fav_song(self):
        self.room.add_song(self.song)
        output = self.guest_2.look_for_fav_song(self.room)
        self.assertEqual("DIS MY JAM!", output)

    def test_room_till_increase_at_check_in(self):
        self.room.guest_check_in(self.guest)
        self.assertEqual(7, self.room.till)

    def test_find_guest_by_name(self):
        self.room.add_guest(self.guest)
        self.room.add_guest(self.guest_2)
        self.room.add_guest(self.guest_3)
        self.room.add_guest(self.guest_4)
        guest = self.room.find_guest_by_name("Jiraiya")
        self.assertEqual("Brown Eyed Girl", guest.favourite_song)

    def test_empty_room(self):
        self.room.add_guest(self.guest)
        self.room.add_guest(self.guest_2)
        self.room.empty_room()
        self.assertEqual(0, len(self.room.current_guests))
class TestRoom(unittest.TestCase):
    def setUp(self):
        self.room_tropical = Room("Tropical Room", 5)
        self.room_magma = Room("Magma", 4)
        self.test_guest = Guest("Party Bob", 38, 2000.00, "Song 2", 100.00)
        self.test_song = Song("Song 2", "Blur")

    def test_room_exists(self):
        self.assertEqual("Tropical Room", self.room_tropical.name)
        self.assertEqual(0, len(self.room_tropical.guest_list))
        self.assertEqual(0, len(self.room_tropical.song_list))

    def test_check_in_guest_to_room(self):
        self.room_tropical.check_in_guest(self.test_guest)
        self.assertEqual(1, len(self.room_tropical.guest_list))

    def test_check_out_guest_from_room(self):
        self.room_tropical.guest_list = [self.test_guest]
        self.room_tropical.check_out_guest(self.test_guest)
        self.assertEqual(0, len(self.room_tropical.guest_list))

    def test_check_out_guest_from_room_multiple_guests(self):
        test_guest2 = Guest("Musical Bob", 54, 700.00, "Another One Bites The Dust", 5.00)
        test_guest3 = Guest("Tone Deaf Bob", 76, 500.00, "Three Blind Mice", 50.00)
        self.room_tropical.guest_list = [self.test_guest, test_guest2, test_guest3]
        self.room_tropical.check_out_guest(test_guest2)
        self.assertEqual("Party Bob", self.room_tropical.guest_list[0].name)
        self.assertEqual("Tone Deaf Bob", self.room_tropical.guest_list[1].name)
        self.assertEqual(2, len(self.room_tropical.guest_list))

    def test_add_song_to_room(self):
        self.room_tropical.add_song(self.test_song)
        self.assertEqual(1, len(self.room_tropical.song_list))

    def test_reset_room(self):
        test_bar = Bar("Music and Spirits", 100.00)
        self.room_tropical.cash_take = 100.00
        self.room_tropical.add_song(self.test_song)
        self.room_tropical.check_in_guest(self.test_guest)
        self.room_tropical.reset_room(test_bar)
        self.assertEqual(0, len(self.room_tropical.guest_list))
        self.assertEqual(0, len(self.room_tropical.song_list))
        self.assertEqual(200.00, test_bar.till)

    def test_room_capacity_allowed(self):
        self.room_magma.guest_list = [self.test_guest, self.test_guest, self.test_guest]
        self.assertEqual(True, self.room_magma.capacity_check())

    def test_room_capacity_exceeded(self):
        self.room_magma.guest_list = [self.test_guest, self.test_guest, self.test_guest, self.test_guest]
        self.assertEqual(False, self.room_magma.capacity_check())

    def test_pay_entry_fee(self):
        self.room_tropical.pay_entry_fee(self.test_guest)
        self.assertEqual(15.00, self.room_tropical.cash_take)

    def test_entry_fee_low_funds(self):
        poor_guest = Guest("Poor Bob", 13, 10.00, "Money for Nothing", 2.00)
        self.room_tropical.pay_entry_fee(poor_guest)
        self.assertEqual(0, self.room_tropical.cash_take)

    def test_guest_reacts_to_favourite_song(self):
        self.room_tropical.add_song(self.test_song)
        self.assertEqual("Song 2 is Party Bob's tune!!!", self.room_tropical.guest_reacts_to_favourite_song(self.test_guest))

    def test_guest_reacts_to_fav_song_new_song_added(self):
        self.room_tropical.check_in_guest(self.test_guest)
        self.assertEqual("Song 2 is Party Bob's tune!!!",         self.room_tropical.add_song(self.test_song))

    def test_guest_reacts_to_fav_song_new_guest_added(self):
        self.room_tropical.add_song(self.test_song)
        self.assertEqual("Song 2 is Party Bob's tune!!!", self.room_tropical.check_in_guest(self.test_guest))

    def test_sell_drink(self):
        test_guest = Guest("Drunken Bob", 53, 200.00, "Song 2",20.00)
        test_beer = Drink("Tennents", 4.00, 2.00)
        test_bar = Bar("Music and Spirits", 100.00)
        test_bar.add_drink(test_beer)
        self.room_tropical.sell_drink(test_beer, test_guest, test_bar)
        self.assertEqual(4.00, self.room_tropical.cash_take)
        self.assertEqual(196, test_guest.wallet)
        self.assertEqual(0, test_bar.stock_count())

    def test_refuse_drunk(self):
        test_guest = Guest("Really Drunken Bob", 50, 23.00, "Another One Bites The Dust",25.00)
        test_cocktail = Drink("Depth Charge",8.50, 3.00)
        test_bar = Bar("Music and Spirits", 100.00)
        test_bar.add_drink(test_cocktail)
        self.assertEqual("Beat it drunken scamp!", self.room_tropical.sell_drink(test_cocktail, test_guest, test_bar))

    def test_age_check(self):
        test_guest = Guest("Young Bob", 13, 1.50, "Three Blind Mice",0.00)
        test_cocktail = Drink("Depth Charge",8.50, 3.00)
        test_bar = Bar("Music and Spirits", 100.00)
        test_bar.add_drink(test_cocktail)
        self.assertEqual("Beat it young scamp!", self.room_tropical.sell_drink(test_cocktail, test_guest, test_bar))
Exemple #8
0
class TestRoom (unittest.TestCase):
    def setUp(self):
        self.room1 = Room(8)
        self.room2 = Room(6)
        self.room3 = Room(4)
        self.room4 = Room(3)

        self.rooms = [self.room1, self.room2, self.room3, self.room4]

        self.song1 = Song("Wannabe", "The Spice Girls", 1996)
        self.song2 = Song("Song 2", "Blur", 1997)
        self.song3 = Song("Three Times a Lady", "Commodores", 1978)
        self.song4 = Song("For Free", "Joni Mitchell", 1970)
        self.song5 = Song("Spice Up Your Life", "The Spice Girls", 1997)

        self.songlist = [self.song1, self.song2, self.song3]

        self.guest1 = Guest("Bob", 10.00, "Wannabe")
        self.guest2 = Guest("Tina", 15.00, None)
        self.guest3 = Guest("Linda", 8.00, None)
        self.guest4 = Guest("Louise", 5.00, None)
        self.guest5 = Guest("Ted", 2.00, None)

    def test_room_has_songs_attribute(self):
        self.assertEqual([], self.room1.songs)

    def test_room_has_guests_attribute(self):
        self.assertEqual([], self.room1.guests)

    def test_room_has_capacity(self):
        self.assertEqual(8, self.room1.capacity)

    def test_add_guest_to_room(self):
        self.room1.add_guest(self.guest1)
        self.assertEqual(1, len(self.room1.guests))

    def test_remove_guest_from_room(self):
        self.room1.add_guest(self.guest1)
        self.room1.remove_guest(self.guest1)
        self.assertEqual(0, len(self.room1.guests))

    def test_clear_room_of_guests(self):
        self.room1.add_guest(self.guest1)
        self.room1.add_guest(self.guest2)
        self.room1.add_guest(self.guest3)
        self.room1.clear()
        self.assertEqual(0, len(self.room1.guests))

    def test_add_song_to_room(self):
        self.room1.add_song(self.song1)
        self.assertEqual(1, len(self.room1.songs))

    def test_remove_song_from_room(self):
        self.room1.add_song(self.song1)
        self.room1.remove_song(self.song1)
        self.assertEqual(0, len(self.room1.songs))

    def test_add_list_of_songs(self):
        self.room1.add_songlist(self.songlist)
        self.assertEqual(3, len(self.room1.songs))

    def test_songs_can_be_added_individually_and_from_list(self):
        self.room1.add_songlist(self.songlist)
        self.room1.add_song(self.song4)
        self.assertEqual(4, len(self.room1.songs))

    def test_clear_songlist(self):
        self.room1.add_songlist(self.songlist)
        self.room1.clear_songlist()
        self.assertEqual(0, len(self.room1.songs))

    def test_find_song_by_name(self):
        self.room1.add_songlist(self.songlist)
        song = self.room1.find_song_by_name("Wannabe")
        self.assertEqual("Wannabe", song.name)

    def test_room_has_guest_add_limit(self):
        self.room4.add_guest(self.guest1)
        self.room4.add_guest(self.guest2)
        self.room4.add_guest(self.guest3)
        self.room4.add_guest(self.guest4)
        self.assertEqual(3, len(self.room4.guests))

    def test_room_has_tab(self):
        self.assertEqual(0, self.room1.tab)

    def test_guest_entry_fee(self):
        self.room1.add_guest(self.guest1)
        self.room1.add_guest(self.guest2)
        self.assertEqual(10.00, self.room1.tab)
        self.assertEqual(5.00, self.guest1.wallet)
        self.assertEqual(10.00, self.guest2.wallet)
    
    def test_rejects_guests_who_cannot_afford_fee(self):
        self.room1.add_guest(self.guest5)
        self.assertEqual(0, len(self.room1.guests))

    def test_find_songs_by_artist(self):
        self.room1.add_song(self.song1)
        self.room1.add_song(self.song2)
        self.room1.add_song(self.song5)
        songs = self.room1.find_songs_by_artist("The Spice Girls")
        self.assertEqual(2, len(songs))
        self.assertEqual("Spice Up Your Life", songs[1].name)

    def test_find_songs_by_year_released(self):
        self.room1.add_song(self.song1)
        songs = self.room1.find_songs_by_year_released(1996)
        self.assertEqual("Wannabe", songs[0].name)
    
    def test_favourite_song_response(self):
        self.room1.add_guest(self.guest1)
        self.assertEqual("Woo!", self.room1.add_song(self.song1))
Exemple #9
0
class TestRoom(unittest.TestCase):
    def setUp(self):
        self.person_1 = Guest("Singy McSingface", 36, 50,
                              "Never Gonna Give You Up", "Beer")
        self.person_2 = Guest("Dancy McDanceface", 30, 60, "Sandstorm", "Wine")
        self.song_1 = Song("Never Gonna Give You Up", "Rick Astley", "Pop")
        self.song_2 = Song("Sandstorm", "Darude", "Dance")
        self.room = Room("Room 1", 5, 10)
        drinks = {"Beer": 4, "Wine": 8, "Whiskey": 5, "Vodka": 2}
        self.bar = Bar("Karaoke Bar", 100, drinks)

    def test_room_capacity(self):
        self.assertEqual(5, self.room.capacity)

    def test_room_name(self):
        self.assertEqual("Room 1", self.room.room_name)

    def test_check_in_guest(self):
        self.room.check_in_guest(self.person_1)
        self.assertEqual("Singy McSingface", self.room.guests[0].name)

    def test_check_out_guest(self):
        self.room.check_in_guest(self.person_1)
        self.room.check_out_guest(self.person_1)
        self.assertEqual([], self.room.guests)

    def test_add_song(self):
        self.room.add_song(self.song_1)
        self.assertEqual("Never Gonna Give You Up", self.room.songs[0].name)

    def test_check_in_guest__reached_capacity(self):
        self.room.check_in_guest(self.person_1)
        self.room.check_in_guest(self.person_1)
        self.room.check_in_guest(self.person_1)
        self.room.check_in_guest(self.person_1)
        self.room.check_in_guest(self.person_1)
        self.room.check_in_guest(self.person_1)
        self.assertEqual(5, len(self.room.guests))

    def test_check_in_guest__returns_string(self):
        self.room.check_in_guest(self.person_1)
        self.room.check_in_guest(self.person_1)
        self.room.check_in_guest(self.person_1)
        self.room.check_in_guest(self.person_1)
        self.room.check_in_guest(self.person_1)
        self.room.check_in_guest(self.person_1)
        self.assertEqual("Sorry, room is full",
                         self.room.check_in_guest(self.person_1))

    def test_remove_cash_on_check_in(self):
        self.room.check_in_guest(self.person_1)
        self.assertEqual(40, self.person_1.cash)

    def test_play_song__title_and_artist(self):
        self.assertEqual(
            "Next up we have Singy McSingface with Never Gonna Give You Up by Rick Astley",
            self.room.play_song(self.song_1, self.person_1))

    def test_get_song_by_name(self):
        self.room.add_song(self.song_1)
        self.assertEqual(self.song_1,
                         self.room.get_song_by_name("Never Gonna Give You Up"))

    def test_add_favourite_songs(self):
        self.room.add_song(self.song_1)
        self.room.add_song(self.song_2)
        self.room.check_in_guest(self.person_1)
        self.room.check_in_guest(self.person_2)
        self.room.add_fav_songs_to_playlist()
        self.assertEqual(2, len(self.room.playlist))

    def test_add_favourite_songs__song_not_found(self):
        self.room.add_song(self.song_2)
        self.room.check_in_guest(self.person_1)
        self.room.check_in_guest(self.person_2)
        self.room.add_fav_songs_to_playlist()
        self.assertEqual(1, len(self.room.playlist))

    def test_customer_buys_drink__bar(self):
        self.bar.customer_buys_drink_pay_at_bar(self.person_1)
        self.assertEqual(46, self.person_1.cash)

    def test_customer_buys_drink__tab(self):
        self.bar.customer_buys_drink_add_to_tab(self.room, self.person_1)
        self.assertEqual(4, self.room.tab)

    def test_split_tab(self):
        self.room.check_in_guest(self.person_1)
        self.room.check_in_guest(self.person_2)
        self.bar.customer_buys_drink_add_to_tab(self.room, self.person_1)
        self.bar.customer_buys_drink_add_to_tab(self.room, self.person_2)
        self.room.split_tab()
        self.assertEqual(0, self.room.tab)
        self.assertEqual(34, self.person_1.cash)
        self.assertEqual(44, self.person_2.cash)