Exemple #1
0
class TestRoom(unittest.TestCase):
    def setUp(self):
        self.room_1 = Room("Bongo", 3, 20)
        self.room_2 = Room("Studio 24", 5, 30)

        self.guest_1 = Guest("Pierre", 50, "Gotta Go")
        self.guest_2 = Guest("Alexander", 40, "On My Radio")
        self.guest_3 = Guest("Pepe", 30, "Divorce a I'ltalienne")
        self.guest_4 = Guest("Edi", 5, "Gotta Go")

        self.song_1 = Song("Gotta Go", "Agnostic Front", 3.2)
        self.song_2 = Song("On My Radio", "Selecter", 3.52)
        self.song_3 = Song("Divorce a I'ltalienne", "Mungo's Hifi", 3.46)

    def test_room_has_name(self):
        self.assertEqual("Bongo", self.room_1.name)

    def test_room_has_capacity(self):
        self.assertEqual(True, isinstance(self.room_1.capacity, int))

    def test_room_entry_fee(self):
        self.assertEqual(30, self.room_2.entry_fee)

    def test_guest_list_empty(self):
        self.assertEqual([], self.room_1.guest_list)

    def test_song_list_empty(self):
        self.assertEqual([], self.room_2.song_list)

    def test_add_guest_to_list(self):
        room = self.room_1
        room.add_guest_to_room(self.guest_1, room)
        #check if guest is added to the list
        self.assertEqual(1, len(room.guest_list))
        #check if money is taken from the guest
        self.assertEqual(30, self.guest_1.cash)
        #check if money is added to the till
        self.assertEqual(120, room.check_till(room))

    def test_add_guests_to_list(self):
        room = self.room_1
        room.add_guest_to_room(self.guest_1, room)
        room.add_guest_to_room(self.guest_2, room)
        self.assertEqual(2, len(room.guest_list))

    def test_remove_guest_from_room(self):
        room = self.room_1
        room.add_guest_to_room(self.guest_1, room)
        room.remove_guest_from_room(self.guest_1, room)
        self.assertEqual([], room.guest_list)

    def test_song_to_room(self):
        self.room_1.add_song_to_list(self.song_1, self.room_1)
        self.assertEqual(1, len(self.room_1.song_list))

    def test_full_room(self):
        room = self.room_1
        room.add_guest_to_room(self.guest_1, room)
        room.add_guest_to_room(self.guest_2, room)
        room.add_guest_to_room(self.guest_3, room)
        self.assertEqual(room.capacity, len(room.guest_list))

    def test_to_many_guests_in_room(self):
        room = self.room_1
        room.add_guest_to_room(self.guest_1, room)
        room.add_guest_to_room(self.guest_2, room)
        room.add_guest_to_room(self.guest_3, room)
        self.assertEqual("Room is full, please wait outside",
                         room.add_guest_to_room(self.guest_4, room))

    def test_to_many_guests_in_room2(self):
        room = self.room_1
        room.add_guest_to_room(self.guest_1, room)
        room.add_guest_to_room(self.guest_2, room)
        room.add_guest_to_room(self.guest_3, room)
        room.add_guest_to_room(self.guest_4, room)
        self.assertEqual(room.capacity, len(room.guest_list))

    def test_check_if_guest_has_enough_money(self):
        self.assertEqual(True,
                         self.room_2.refuse_entry(self.guest_4, self.room_2))

    def test_check_if_guest_has_enough_money2(self):
        self.room_2.add_guest_to_room(self.guest_4, self.room_2)
        self.assertEqual([], self.room_1.guest_list)

    def test_check_if_guest_has_enough_money3(self):
        self.room_2.add_guest_to_room(self.guest_3, self.room_2)
        self.assertEqual(1, len(self.room_2.guest_list))

    def test_check_till(self):
        self.assertEqual(self.room_1.till, self.room_1.check_till(self.room_1))

    def test_check_if_fee_add_to_till(self):
        self.room_1.add_entry_fee_to_till(self.room_1)
        self.assertEqual(120, self.room_1.check_till(self.room_1))

    def test_if_guest_fav_song_is_in_room(self):
        self.room_1.add_song_to_list(self.song_1, self.room_1)
        self.assertEqual(
            "Whoo!", self.guest_1.fav_song_in_room(self.guest_1, self.room_1))

    def test_remove_all_from_room(self):
        room = self.room_2
        room.add_guest_to_room(self.guest_1, room)
        room.add_guest_to_room(self.guest_2, room)
        room.remove_all_from_room(room)
        self.assertEqual([], room.guest_list)
        self.assertEqual(160, room.check_till(room))

    def test_sesion_time_out_empty_room(self):
        room = self.room_1
        room.add_guest_to_room(self.guest_1, room)
        room.add_guest_to_room(self.guest_2, room)
        room.add_song_to_list(self.song_1, room)
        room.add_song_to_list(self.song_2, room)
        room.add_song_to_list(self.song_3, room)
        room.add_song_to_list(self.song_1, room)
        self.assertEqual([], room.guest_list)
class TestRoom(unittest.TestCase):
    def setUp(self):
        self.song_1 = Song("Nirvava - Smells like teen spirit")
        self.song_2 = Song("Bob Dylan - Like A Rolling Stone")
        self.guest_1 = Guest("Dougal", 50)
        self.guest_2 = Guest("Hamish", 70)
        self.guest_3 = Guest("Donny", 3)
        songs_1 = [self.song_1, self.song_2]
        songs_2 = []
        self.room_1 = Room("Rock", songs_1, 5)
        self.room_2 = Room("Dance", songs_2, 8)

    def test_guest_has_name(self):
        self.assertEqual("Rock", self.room_1.name)
        self.assertEqual("Dance", self.room_2.name)

    def test_no_guests_in_room(self):
        self.assertEqual(0, self.room_1.get_guests_in_room())

    def test_room_has_songs(self):
        self.assertEqual(2, self.room_1.check_songs())

    def test_room_can_add_song(self):
        self.song_3 = Song("Eric Clapton - Layla")
        self.room_1.add_song_to_room(self.song_3)
        self.assertEqual(3, self.room_1.check_songs())

    def test_room_can_add_guests(self):
        self.room_1.add_guest_to_room(self.guest_1)
        self.assertEqual("Welcome",
                         self.room_1.add_guest_to_room(self.guest_2))

    def test_room_cannot_add_guests(self):
        self.room_1.add_guest_to_room(self.guest_1)
        self.room_1.add_guest_to_room(self.guest_2)
        self.assertEqual("Room is full!",
                         self.room_1.add_guest_to_room(self.guest_3))

    def test_room_can_remove_guests(self):
        self.room_1.add_guest_to_room(self.guest_3)
        self.room_1.remove_guest_from_room(self.guest_3)
        self.assertEqual(0, self.room_1.get_guests_in_room())

    def test_room_has_entry_fee(self):
        self.assertEqual(5, self.room_1.entry_fee)

    def test_room_has_till(self):
        self.assertEqual(0, self.room_1.till)

    def test_add_money_to_till(self):
        self.room_1.add_money_to_till(5)
        self.assertEqual(5, self.room_1.till)

    def test_guest_check_in(self):
        self.room_1.guest_check_in(self.guest_1)
        self.assertEqual(45, self.guest_1.money)

    def test_guest_cant_check_in(self):
        self.room_1.guest_check_in(self.guest_3)
        self.assertEqual(3, self.guest_3.money)

    def test_guest_cant_afford_room(self):
        self.assertEqual("Sorry, not tonight",
                         self.room_1.guest_check_in(self.guest_3))
class TestRoom(unittest.TestCase):
    def setUp(self):
        self.room = Room()
        self.songs = [
            Song("Africa", "Toto"),
            Song("Don't Stop Believin'", "Journey"),
            Song("Wonderwall", "Oasis"),
            Song("Uptown Girl", "Billy Joel"),
            Song("Ring of Fire", "Johnny Cash"),
        ]
        self.guest = Guest("Timmy", 20)
        self.guest_not_in_room = Guest("Jimmy", 40)

    def test_empty_room_has_no_guests(self):
        expected = []
        actual = self.room.guests
        self.assertEqual(expected, actual)

    def test_empty_room_has_no_songs(self):
        expected = []
        actual = self.room.playlist
        self.assertEqual(expected, actual)

    def test_set_playlist_for_room__get_length(self):
        self.room.start_playlist(self.songs)
        expected = 5
        actual = len(self.room.playlist)
        self.assertEqual(expected, actual)

    def test_playlist_items_are_song_objects(self):
        self.room.start_playlist(self.songs)
        expected = "Uptown Girl"
        actual = self.room.playlist[3].title
        self.assertEqual(expected, actual)

    def test_add_guest_to_room(self):
        self.room.add_guest_to_room(self.guest)
        expected = 1
        actual = len(self.room.guests)
        self.assertEqual(expected, actual)

    def test_add_guest_to_room_adds_guest_object(self):
        self.room.add_guest_to_room(self.guest)
        expected = "Timmy"
        actual = self.room.guests[0].name
        self.assertEqual(expected, actual)

    def test_guest_can_leave_a_room(self):
        self.room.add_guest_to_room(self.guest)
        self.room.remove_guest(self.guest)
        expected = 0
        actual = len(self.room.guests)
        self.assertEqual(expected, actual)

    def test_guest_can_leave_a_room__return(self):
        self.room.add_guest_to_room(self.guest)
        expected = True
        actual = self.room.remove_guest(self.guest)
        self.assertEqual(expected, actual)

    def test_is_guest_in_room(self):
        expected = False
        actual = self.room.is_guest_in_room(self.guest_not_in_room)
        self.assertEqual(expected, actual)

    def test_guest_cant_leave_room_theyre_not_in(self):
        self.room.add_guest_to_room(self.guest)
        expected = False
        actual = self.room.remove_guest(self.guest_not_in_room)
        self.assertEqual(expected, actual)

    def test_room_returns_guest_list(self):
        self.room.add_guest_to_room(self.guest)
        expected = [self.guest]
        actual = self.room.return_guest_list()
        self.assertEqual(expected, actual)

    #extensions
    def test_max_room_size_set(self):
        expected = 3
        actual = self.room.max_size
        self.assertEqual(expected, actual)

    def test_room_has_fewer_guests_than_max(self):
        expected = True
        actual = self.room.room_has_space()
        self.assertEqual(expected, actual)

    def test_room_has_more_guests_than_max(self):
        self.room.add_guest_to_room(Guest("Timmy", 20))
        self.room.add_guest_to_room(Guest("Timmy", 20))
        self.room.add_guest_to_room(Guest("Timmy", 20))
        self.room.add_guest_to_room(Guest("Timmy", 20))
        self.room.add_guest_to_room(Guest("Timmy", 20))
        expected = False
        actual = self.room.room_has_space()
        self.assertEqual(expected, actual)

    def test_room_cant_add_guests_past_max(self):
        self.room.add_guest_to_room(Guest("Jimmy", 40))
        self.room.add_guest_to_room(Guest("Jimmy", 40))
        self.room.add_guest_to_room(Guest("Jimmy", 40))
        self.room.add_guest_to_room(Guest("Jimmy", 40))
        expected = 3
        actual = len(self.room.guests)
        self.assertEqual(expected, actual)

    def test_room_cant_add_guests_past_max__return_False(self):
        self.room.add_guest_to_room(Guest("Jimmy", 40))
        self.room.add_guest_to_room(Guest("Jimmy", 40))
        self.room.add_guest_to_room(Guest("Jimmy", 40))
        expected = False
        actual = self.room.add_guest_to_room(Guest("Jimmy", 40))
        self.assertEqual(expected, actual)

    def test_room_has_entry_fee(self):
        expected = 10
        actual = self.room.entry_fee
        self.assertEqual(expected, actual)

    def test_guest_has_enough_money_to_enter(self):
        guest = Guest("Monty", 100)
        expected = True
        actual = self.room.enough_money(guest)
        self.assertEqual(expected, actual)

    def test_guest_does_not_have_enough_money_to_enter(self):
        guest = Guest("Tiny Tim", 1)
        expected = False
        actual = self.room.enough_money(guest)
        self.assertEqual(expected, actual)