def constructPlayers(_playerOneName, _playerTwoName): level = 1 healthPoints = 50 manaPoints = 50 experience = 1 defence = 0 inventory = InventoryClass.Inventory() armourSet = ArmourSetClass.ArmourSet("Basic Armour", 0, 10) equippedWeapon = WeaponClass.Weapon("Basic Sword", 0, 25, 0) gold = 50 player1 = CharacterClass.Character(_playerOneName, level, healthPoints, manaPoints, experience, defence, inventory, equippedWeapon, armourSet, gold) player2 = CharacterClass.Character(_playerTwoName, level, healthPoints, manaPoints, experience, defence, inventory, equippedWeapon, armourSet, gold)
def test_Character_fails_to_construct_with_invalid_health_points_type(): # 3As | Arrange # Overwrite testHealthPoints to be invalid data. testHealthPoints = "This should not be a string but hey, testing ftw" # Expect string type out expectedOutput = type(testHealthPoints) # 3As | Act # Attempt to construct character from constructor. with assertion.raises(Exception) as exc_info: unitUnderTest = CharacterClass.Character(testName, testLevel, testHealthPoints, testManaPoints, testExperience, testDefence, mockedInventory, mockedEquippedWeapon, mockedArmourSet, testGold) # 3As | Assert # Try assert if unitUnderTest is null. If null it will throw error. Catch error and assert true. try: assert unitUnderTest == None except UnboundLocalError: assert True # Assert that the exception was successfully raised. assert exc_info.errisinstance(TypeError) assert "Character health points expected an int. Received: " + str(expectedOutput) + " Check the type" in str(exc_info.value)
def test_Character_fails_to_construct_with_invalid_name_type(): # 3As | Arrange # Overwrite testName to be invalid data. testName = 1 # ExpectedOutput is only used to compare the type of the output. Expect int type out. expectedOutput = type(testName) # 3As | Act # Attempt to construct character from constructor. with assertion.raises(Exception) as exc_info: unitUnderTest = CharacterClass.Character(testName, testLevel, testHealthPoints, testManaPoints, testExperience, testDefence, mockedInventory, mockedEquippedWeapon, mockedArmourSet, testGold) # 3As | Assert # Assert object was not constructed. try: assert unitUnderTest == None except UnboundLocalError: assert True # Assert that the correct exception was raised. assert exc_info.errisinstance(TypeError) assert "Character name expected a string. Received: " + str(expectedOutput) + " Check the type" in str(exc_info.value)
def test_Character_Constructs_With_Valid_Data(): # 3As | Arrange # Nothing, use stock test variables/test setup. # 3As | Act # Attempt to construct character from constructor. unitUnderTest = CharacterClass.Character(testName, testLevel, testHealthPoints, testManaPoints, testExperience, testDefence, mockedInventory, mockedEquippedWeapon, mockedArmourSet, testGold) # 3As | Assert # Assert that unit Under Test is not null. assert unitUnderTest != None # Assert that each value was set correctly. assert unitUnderTest.name == testName assert unitUnderTest.level == testLevel assert unitUnderTest.healthPoints == testHealthPoints assert unitUnderTest.manaPoints == testManaPoints assert unitUnderTest.experience == testExperience assert unitUnderTest.defence == testDefence assert unitUnderTest.inventory == mockedInventory assert unitUnderTest.equippedWeapon == mockedEquippedWeapon assert unitUnderTest.armourSet == mockedArmourSet assert unitUnderTest.gold == testGold
def is_featured(self, character, series): return for c in self.characters: c_match = Character.match_character(series.characters, c["name"]) if c_match != ret.ERROR and c_match.name == character.name: return c["featured"]