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); }
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); }
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); }
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); }
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); }
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); }
public async Task ValidateAsync_ReturnsIsValidFalse_WhenCommandIsEmpty() { //arrange var command = new UpdatePromptCommand(); //act ValidationResult?actual = await _validator.ValidateAsync(command); //assert Assert.False(actual.IsValid); }
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); }
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); }