public void IncreaseHealthByHealedAmountWithoutSurpassingMaximum(int startingHealth, int healedAmount, int expectedHealth) { var givenCharacter = new RpgCharacter(SomeId, startingHealth, SomeLevel); givenCharacter.Heal(healedAmount); givenCharacter.Health.Should().Be(expectedHealth); }
public void DeadCharacterCannotBeHealed() { var givenCharacter = new RpgCharacter(SomeId, 0, SomeLevel); givenCharacter.Heal(100); givenCharacter.Health.Should().Be(0); }
public void StartWithMaxHealthAndStartingLevel() { var character = new RpgCharacter(); character.Health.Should().Be(RpgCharacter.MaxHealth); character.Level.Should().Be(RpgCharacter.StartingLevel); }
public void ReduceHealthByDamageWithAMinimumOfZero(int startingHealth, int dealtDamage, int expectedHealth) { var givenCharacter = new RpgCharacter(SomeId, startingHealth, SomeLevel); givenCharacter.Damage(dealtDamage); givenCharacter.Health.Should().Be(expectedHealth); }
private async Task ThenGivenCharacterIsPersistedWithADifferentHealth(RpgCharacter character) { var record = await dbContext.RpgCharacters.SingleOrDefaultAsync(c => c.Id == character.Id && c.Health == character.Health && c.Level == character.Level); record.Should().BeEquivalentTo(character); }
public async Task Save(RpgCharacter character) { var record = await context.RpgCharacters.SingleAsync(c => c.Id == character.Id); record.Health = character.Health; record.Level = character.Level; await context.SaveChangesAsync(); }
private RpgCharacterRecord ToRecord(RpgCharacter character) { return(new RpgCharacterRecord() { Id = character.Id, Health = character.Health, Level = character.Level }); }
public async Task PersistTheGivenCharacterChanges() { var givenRecord = await GivenAnExistingCharacter(); var changedCharacter = new RpgCharacter(givenRecord.Id, SomeOtherHealth, SomeOtherLevel); await repository.Save(changedCharacter); await ThenGivenCharacterIsPersistedWithADifferentHealth(changedCharacter); }
public async Task ReturnTheCharacterCorrespondingToTheRequestedId() { var repository = Substitute.For <IRpgCharacterRepository>(); var expectedCharacter = new RpgCharacter(SomeId, SomeHealth, SomeLevel); repository.GetById(SomeId).Returns(expectedCharacter); var handler = new GetRpgCharacterHandler(repository); var response = await handler.Handle(new GetRpgCharacterRequest(SomeId), CancellationToken.None); response.Character.Should().Be(expectedCharacter); }