Пример #1
0
        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();
            });
        }