示例#1
0
        public async Task Handle_DoesNotChangePublishDate_WhenItHasValue(bool initialDraftStatus,
                                                                         bool updatedDraftStatus)
        {
            //arrange
            DateTime expectedDate = DateTime.UtcNow;
            var      owner        = new User {
                Username = "******"
            };
            var prompt = new Prompt {
                IsDraft = initialDraftStatus, Owner = owner, PublishDate = expectedDate
            };

            DbContext.Prompts.Add(prompt);
            await DbContext.SaveChangesAsync();

            var user = new GetUserViewModel {
                Id = owner.Id, Role = RoleEnum.FieldEdit
            };

            _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true);
            var command = new UpdatePromptCommand {
                Id = prompt.Id, SaveDraft = updatedDraftStatus
            };

            //act
            await _handler.Handle(command);

            //assert
            Prompt?actual = DbContext.Prompts.Find(prompt.Id);

            Assert.Equal(expectedDate, actual.PublishDate);
        }
示例#2
0
        public async Task Handle_LeavesPublishNull_WhenSaveDraftIsTrue_AndPromptHasNoPublishDate_AndWasDraft()
        {
            //arrange
            var owner = new User {
                Username = "******"
            };
            var prompt = new Prompt {
                IsDraft = true, Owner = owner
            };

            DbContext.Prompts.Add(prompt);
            await DbContext.SaveChangesAsync();

            var user = new GetUserViewModel {
                Id = owner.Id, Role = RoleEnum.FieldEdit
            };

            _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true);
            var command = new UpdatePromptCommand {
                Id = prompt.Id, SaveDraft = true
            };

            //act
            await _handler.Handle(command);

            //assert
            Prompt?actual = DbContext.Prompts.Find(prompt.Id);

            Assert.Null(actual.PublishDate);
        }
示例#3
0
        public async Task Handle_SetsAPromptWithScriptZipSetToNull()
        {
            //arrange
            var owner = new User {
                Username = "******"
            };
            var prompt = new Prompt {
                Owner = owner
            };

            DbContext.Prompts.Add(prompt);
            await DbContext.SaveChangesAsync();

            var user = new GetUserViewModel {
                Id = owner.Id
            };

            _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true);
            var command = new UpdatePromptCommand {
                Id = prompt.Id, OwnerId = user.Id, ScriptZip = null
            };

            //act
            await _handler.Handle(command);

            //assert
            Prompt?actualPrompt = await DbContext.Prompts.FindAsync(prompt.Id);

            Assert.Null(actualPrompt.ScriptZip);
        }
示例#4
0
        public async Task Handle_SetsIsDraftToTrue_WhenSaveDraftIsTrue(bool initialDraftStatus)
        {
            //arrange
            var owner = new User {
                Username = "******"
            };
            var prompt = new Prompt {
                IsDraft = initialDraftStatus, Owner = owner
            };

            DbContext.Prompts.Add(prompt);
            await DbContext.SaveChangesAsync();

            var user = new GetUserViewModel {
                Id = owner.Id
            };

            _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true);
            var command = new UpdatePromptCommand {
                Id = prompt.Id, SaveDraft = true
            };

            //act
            await _handler.Handle(command);

            //assert
            Prompt?actual = DbContext.Prompts.Find(prompt.Id);

            Assert.True(actual.IsDraft);
        }
示例#5
0
        public async Task Handle_DoesNotChangeDraftStatus_WhenUserIsNotOwner(bool expectedDraftStatus)
        {
            //arrange
            var owner = new User {
                Username = "******"
            };
            var prompt = new Prompt {
                IsDraft = expectedDraftStatus, Owner = owner
            };

            DbContext.Prompts.Add(prompt);
            await DbContext.SaveChangesAsync();

            var user = new GetUserViewModel {
                Id = int.MaxValue, Role = RoleEnum.FieldEdit
            };

            _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true);
            var command = new UpdatePromptCommand {
                Id = prompt.Id, SaveDraft = !expectedDraftStatus
            };

            //act
            await _handler.Handle(command);

            //assert
            Prompt?actual = DbContext.Prompts.Find(prompt.Id);

            Assert.Equal(expectedDraftStatus, actual.IsDraft);
        }
示例#6
0
        public async Task Handle_UpdatesAPromptWithNovelAiScenarioSetToExpectedValue()
        {
            //arrange
            const string?expectedString = null;
            var          owner          = new User {
                Username = "******"
            };
            var prompt = new Prompt {
                Owner = owner
            };

            DbContext.Prompts.Add(prompt);
            await DbContext.SaveChangesAsync();

            var user = new GetUserViewModel {
                Id = owner.Id
            };

            _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true);
            var command = new UpdatePromptCommand {
                Id = prompt.Id, OwnerId = user.Id, NovelAiScenario = expectedString
            };

            //act
            await _handler.Handle(command);

            //assert
            Prompt?actualPrompt = await DbContext.Prompts.FindAsync(prompt.Id);

            Assert.Equal(expectedString, actualPrompt.NovelAiScenario);
        }
示例#7
0
        public async Task ValidateAsync_ReturnsIsValidFalse_WhenCommandIsEmpty()
        {
            //arrange
            var command = new UpdatePromptCommand();

            //act
            ValidationResult?actual = await _validator.ValidateAsync(command);

            //assert
            Assert.False(actual.IsValid);
        }
示例#8
0
        public async Task ValidateAsync_ReturnsIsValidFalse_WhenTitleContentAndTagsAreFilledIn_AndAParentIdIsNull()
        {
            //arrange
            var command = new UpdatePromptCommand
            {
                Id = 1, Title = "NewTitle", PromptContent = "PromptContent", ParentId = null
            };

            //act
            ValidationResult?actual = await _validator.ValidateAsync(command);

            //assert
            Assert.False(actual.IsValid);
        }
示例#9
0
        public async Task ValidateAsync_ReturnsIsValidTrue_WhenTitleContentAndTagsAreFilledIn()
        {
            //arrange
            var command = new UpdatePromptCommand
            {
                Id = 1, Title = "NewTitle", PromptContent = "PromptContent", PromptTags = "tag"
            };

            //act
            ValidationResult?actual = await _validator.ValidateAsync(command);

            //assert
            Assert.True(actual.IsValid);
        }