Beispiel #1
0
        public async Task SetStory_NullInput_ReturnInvalidInput()
        {
            // Arrange
            var provider   = new MockCharacterProvider();
            var controller = new CharacterController(provider, new MockProgressionStrategy(), new GeneralOptions());

            // Act
            var result = await controller.SetCharacterStoryAsync(1, null); // Existing

            var character = await controller.ShowCharacterAsync(1);

            // Assert
            Assert.True(GenericResult.InvalidInput().Equals(result));
        }
Beispiel #2
0
        /// <summary>
        /// Gets the caller's specified character by name, sets its story, and updates it.
        /// </summary>
        /// <param name="callerId">Discord ID of the caller.</param>
        /// <param name="story">The new story of the character.</param>
        /// <returns>A new CharacterResult object.</returns>
        public async Task <IResult> SetCharacterStoryAsync(ulong callerId, string story)
        {
            if (string.IsNullOrEmpty(story))
            {
                return(GenericResult.InvalidInput());
            }

            var character = await _provider.GetActiveCharacterAsync(callerId);

            if (character == null)
            {
                return(CharacterResult.CharacterNotFound());
            }
            character.Story = story;

            await _provider.UpdateCharacterAsync(character);

            return(CharacterResult.CharacterUpdatedSuccessfully());
        }