public async Task UpdateItemDataAsync_WhenQuantityChange_ShouldLogItInCharacterHistory(int?currentQuantity, int?newQuantity) { const int itemId = 4; const int characterId = 8; var itemData = new ItemData { Quantity = newQuantity }; var item = GivenAnItem(new ItemData { Quantity = currentQuantity }, characterId); var characterHistoryEntry = new CharacterHistoryEntry(); _jsonUtil.Serialize(itemData) .Returns("some-new-item-data-json"); _unitOfWorkFactory.GetUnitOfWork().Items.GetWithOwnerAsync(itemId) .Returns(item); _characterHistoryUtil.CreateLogChangeItemQuantity(characterId, item, currentQuantity, newQuantity) .Returns(characterHistoryEntry); _unitOfWorkFactory.GetUnitOfWork().When(x => x.SaveChangesAsync()) .Do(_ => item.Character.HistoryEntries.Should().Contain(characterHistoryEntry)); await _service.UpdateItemDataAsync(new NaheulbookExecutionContext(), itemId, itemData); await _unitOfWorkFactory.GetUnitOfWork().Received(1).SaveChangesAsync(); }
public async Task DeleteModifiersAsync_ShouldLogCharacterHistory() { const int characterId = 4; const int characterModifierId = 2; var characterHistoryEntry = new CharacterHistoryEntry(); _characterHistoryUtil.CreateLogRemoveModifier(characterId, characterModifierId) .Returns(characterHistoryEntry); _unitOfWorkFactory.GetUnitOfWork().Characters.GetWithGroupAsync(Arg.Any <int>()) .Returns(new Character()); _unitOfWorkFactory.GetUnitOfWork().CharacterModifiers.GetByIdAndCharacterIdAsync(Arg.Any <int>(), Arg.Any <int>()) .Returns(new CharacterModifier()); await _service.DeleteModifiersAsync(new NaheulbookExecutionContext(), characterId, characterModifierId); Received.InOrder(() => { _unitOfWorkFactory.GetUnitOfWork().CharacterHistoryEntries.Add(characterHistoryEntry); _unitOfWorkFactory.GetUnitOfWork().SaveChangesAsync(); }); }
public void ToggleModifier_ShouldLogInCharacterHistory_WhenDisabled() { const int characterId = 8; const int characterModifierId = 12; var character = new Character { Id = characterId }; var characterHistoryEntry = new CharacterHistoryEntry(); var characterModifier = new CharacterModifier { Id = characterModifierId, IsActive = true, Reusable = true, }; _characterHistoryUtil.CreateLogDisableModifier(characterId, characterModifierId) .Returns(characterHistoryEntry); _util.ToggleModifier(character, characterModifier); character.HistoryEntries.Should().Contain(characterHistoryEntry); }
public async Task AddItemToCharacterAsync_ShouldAddACharacterHistoryEntry() { const int characterId = 4; var item = new Item(); var expectedCharacterHistoryEntry = new CharacterHistoryEntry(); _unitOfWorkFactory.GetUnitOfWork().Characters.GetWithGroupAsync(Arg.Any <int>()) .Returns(new Character { Id = characterId }); _itemService.AddItemToAsync(Arg.Any <ItemOwnerType>(), Arg.Any <int>(), Arg.Any <CreateItemRequest>()) .Returns(item); _characterHistoryUtil.CreateLogAddItem(characterId, item) .Returns(expectedCharacterHistoryEntry); await _service.AddItemToCharacterAsync(new NaheulbookExecutionContext(), characterId, new CreateItemRequest()); Received.InOrder(() => { _unitOfWorkFactory.GetUnitOfWork(1).CharacterHistoryEntries.Add(expectedCharacterHistoryEntry); _unitOfWorkFactory.GetUnitOfWork(1).SaveChangesAsync(); }); }
public async Task AddModifiersAsync_ShouldLog() { const int characterId = 4; var character = new Character(); var characterHistoryEntry = new CharacterHistoryEntry(); var request = new AddCharacterModifierRequest(); var characterModifier = new CharacterModifier(); _mapper.Map <CharacterModifier>(request) .Returns(characterModifier); _unitOfWorkFactory.GetUnitOfWork().Characters.GetWithGroupAsync(characterId) .Returns(character); _characterHistoryUtil.CreateLogAddModifier(character, characterModifier) .Returns(characterHistoryEntry); await _service.AddModifiersAsync(new NaheulbookExecutionContext(), characterId, request); Received.InOrder(() => { _unitOfWorkFactory.GetUnitOfWork().CharacterHistoryEntries.Add(characterHistoryEntry); _unitOfWorkFactory.GetUnitOfWork().Received(1).SaveChangesAsync(); }); }