def testExecute(self): from space import Space from player import Player from items.item import Item from commands.pick_up_command import PickUpCommand space = Space("Shire", "Home of the Hobbits.") player = Player("Frodo", space) item = Item("Dagger", "A trusty blade", 2) pickUpCmd = PickUpCommand("pick up", "Picks up an object", player) space.addItem(item) #Assert item in space but not in inventory and not in equipment self.assertTrue(space.containsItem(item), "Space should have item but does not.") inventory = player.getInventory() self.assertFalse(inventory.containsItem(item), "Player should not have item but does in inventory.") equipped = player.getEquipped() self.assertFalse(equipped.containsItem(item), "Player should not have item but does in equipment.") #Assert item in player inventory but not in space and not in equipment rawInputMock = MagicMock(return_value="Dagger") with patch('commands.pick_up_command.raw_input', create=True, new=rawInputMock): pickUpCmd.execute() self.assertFalse(space.containsItem(item), "Space should not have item but does.") equipped = player.getEquipped() self.assertFalse(equipped.containsItem(item), "Player should not have item in equipment.") inventory = player.getInventory() self.assertTrue(inventory.containsItem(item), "Player should have item but does not.")
def testExecute(self): from space import Space from player import Player from items.weapon import Weapon from commands.drop_command import DropCommand space = Space("Shire", "Home of the Hobbits.") player = Player("Frodo", space) dropCmd = DropCommand("drop", "Drops an object from inventory to space", player) weapon = Weapon("Dagger", "A trusty blade", 2, 2, 2) player.addToInventory(weapon) player.equip(weapon) #Asserts item in player inventory but not in space self.assertFalse(space.containsItem(weapon), "Space should not have item but does.") inventory = player.getInventory() self.assertTrue(inventory.containsItem(weapon), "Inventory should have item but does not.") #Assert item in space but not in player inventory and not in equipment rawInputMock = MagicMock(return_value="Dagger") with patch('commands.drop_command.raw_input', create=True, new=rawInputMock): dropCmd.execute() self.assertTrue(space.containsItemString("Dagger"), "Space should have item but does not.") inventory = player.getInventory() self.assertFalse(inventory.containsItem(weapon), "Inventory should not have item but does.") equipped = player.getEquipped() self.assertFalse(equipped.containsItem(weapon), "Equipment should not have item but does.")
def testItems(self): from space import Space from items.item import Item #Prepare items blade = Item("blade", "appears to be dull", 1) bow = Item("bow", "long bow", 2) #Create space space = Space("shire", "Home of the Hobbits.") items = space.getItemSet() #Assert space initially empty errorMsg = "New space contains items; should be empty" self.assertEqual(items.count(), 0, errorMsg) errorMsg = "Space claims to contain item even though it is empty." self.assertFalse(space.containsItem(blade), errorMsg) self.assertFalse(space.containsItem(bow), errorMsg) #Add blade space.addItem(blade) errorMsg = "Space failed to report that it contained item known to exist." self.assertTrue(space.containsItem(blade), errorMsg) #Add bow space.addItem(bow) self.assertTrue(space.containsItem(bow), errorMsg) #Get room's items. Assert blade and bow exist items = space.getItemSet() self.assertEqual(items.count(), 2, "Room should contain exactly two items.") self.assertTrue(items.containsItem(blade), "Could not find blade in room's set of items.") self.assertTrue(items.containsItem(bow), "Could not find bow in room's set of items.") #Remove blade space.removeItem(blade) errorMsg = "Space claims to have item that was removed." self.assertFalse(space.containsItem(blade), errorMsg) errorMsg = "Space missing item that should still exist." self.assertTrue(space.containsItem(bow), errorMsg) #Get room's items. Assert only bow exists items = space.getItemSet() self.assertEqual(items.count(), 1, "Room should contain exactly one item.") self.assertFalse(items.containsItem(blade), "Blade found in room (even though it was removed).") self.assertTrue(items.containsItem(bow), "Could not find bow in room's set of items.")
def testItems(self): from space import Space from items.item import Item #Prepare items blade = Item("blade", "appears to be dull", 1) bow = Item("bow", "long bow", 2) #Create space space = Space("shire", "Home of the Hobbits.") items = space.getItems() #Assert space initially empty errorMsg = "New space contains items; should be empty" self.assertEqual(items.count(), 0, errorMsg) errorMsg = "Space claims to contain item even though it is empty." self.assertFalse(space.containsItem(blade), errorMsg) self.assertFalse(space.containsItem(bow), errorMsg) #Add blade space.addItem(blade) errorMsg = "Space failed to report that it contained item known to exist." self.assertTrue(space.containsItem(blade), errorMsg) #Add bow space.addItem(bow) self.assertTrue(space.containsItem(bow), errorMsg) #Get room's items. Assert blade and bow exist items = space.getItems() self.assertEqual(items.count(), 2, "Room should contain exactly two items.") self.assertTrue(items.containsItem(blade), "Could not find blade in room's set of items.") self.assertTrue(items.containsItem(bow), "Could not find bow in room's set of items.") #Remove blade space.removeItem(blade) errorMsg = "Space claims to have item that was removed." self.assertFalse(space.containsItem(blade), errorMsg) errorMsg = "Space missing item that should still exist." self.assertTrue(space.containsItem(bow), errorMsg) #Get room's items. Assert only bow exists items = space.getItems() self.assertEqual(items.count(), 1, "Room should contain exactly one item.") self.assertFalse(items.containsItem(blade), "Blade found in room (even though it was removed).") self.assertTrue(items.containsItem(bow), "Could not find bow in room's set of items.")