public async Task Handle_ReturnsGivenPrompt(int amount, int index) { //arrange const string expectedTitle = "TestTitle"; const string expectedContent = "TestContent"; var prompt = new Prompt(); for (var i = 0; i < amount; i++) { if (i == index) { prompt = new Prompt { Title = expectedTitle, PromptContent = expectedContent }; DbContext.Prompts.Add(prompt); await DbContext.SaveChangesAsync(); } else { DbContext.Prompts.Add(new Prompt()); } } await DbContext.SaveChangesAsync(); var query = new GetPromptQuery(prompt.Id); //act GetPromptViewModel?result = await _handler.Handle(query); //assert Assert.Equal(prompt.Id, result.Id); Assert.Equal(expectedTitle, result.Title); Assert.Equal(expectedContent, result.PromptContent); }
public async Task Handle_ReturnsPrompt_WhenTopLevelParentIsNotDraft(int depth) { //arrange var owner = new User { Username = "******" }; var parent = new Prompt { IsDraft = false, Owner = owner }; DbContext.Prompts.Add(parent); await DbContext.SaveChangesAsync(); var id = parent.Id; for (var i = 0; i < depth; i++) { var child = new Prompt { IsDraft = true, Owner = owner, ParentId = id }; DbContext.Prompts.Add(child); await DbContext.SaveChangesAsync(); id = child.Id; } var query = new GetPromptQuery(id); //act GetPromptViewModel?result = await _handler.Handle(query); //assert Assert.NotNull(result); }
public async Task Handle_ReturnsPromptWithParentIdSet_WhenPromptHasAParent() { //arrange var owner = new User { Username = "******" }; var parent = new Prompt { Title = "Parent", IsDraft = false, Owner = owner }; DbContext.Prompts.Add(parent); var child = new Prompt { IsDraft = true, Owner = owner, Parent = parent }; DbContext.Prompts.Add(child); await DbContext.SaveChangesAsync(); var query = new GetPromptQuery(child.Id); //act GetPromptViewModel?result = await _handler.Handle(query); //assert Assert.NotNull(result); Assert.NotNull(result.ParentId); Assert.Equal(parent.Id, result.ParentId); }
public async Task Handle_ReturnsAllChildPrompts(int childCount) { //arrange var expectedTitle = "Child"; var owner = new User { Username = "******" }; var parent = new Prompt { Title = "Parent", IsDraft = false, Owner = owner }; DbContext.Prompts.Add(parent); for (var i = 0; i < childCount; i++) { var child = new Prompt { Title = expectedTitle, IsDraft = true, Owner = owner, Parent = parent }; DbContext.Prompts.Add(child); } await DbContext.SaveChangesAsync(); var query = new GetPromptQuery(parent.Id); //act GetPromptViewModel?result = await _handler.Handle(query); //assert Assert.NotNull(result); Assert.Equal(childCount, result.Children.Count()); Assert.All(result.Children, e => string.Equals(expectedTitle, e.Title)); }
public async Task Handle_ReturnsPrompt_IfPromptIsDraft_AndUserServiceReturnsUserWithCorrectId() { //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 }; _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true); var query = new GetPromptQuery(prompt.Id); //act GetPromptViewModel?result = await _handler.Handle(query); //assert Assert.NotNull(result); Assert.True(result.IsDraft); }
public async Task Handle_ReturnsNull_WhenTheDatabaseIsEmpty(int id) { //arrange var query = new GetPromptQuery(id); //act GetPromptViewModel?result = await _handler.Handle(query); //assert Assert.Null(result); }
public async Task Handle_ReturnsNull_WhenTheNoEntryWithTheGivenIdExists(int id) { //arrange var query = new GetPromptQuery(id); DbContext.Prompts.AddRange(new Prompt(), new Prompt(), new Prompt()); await DbContext.SaveChangesAsync(); //act GetPromptViewModel?result = await _handler.Handle(query); //assert Assert.Null(result); }
public async Task Handle_ReturnsNull_WhenTopLevelParentIsDraft_AndUserServiceReturnsUserWithWrongId(int depth) { //arrange var owner = new User { Username = "******" }; var newUser = new User { Username = "******" }; DbContext.Users.Add(newUser); var parent = new Prompt { IsDraft = true, Owner = owner }; DbContext.Prompts.Add(parent); await DbContext.SaveChangesAsync(); var id = parent.Id; for (var i = 0; i < depth; i++) { var child = new Prompt { IsDraft = false, Owner = owner, ParentId = id }; DbContext.Prompts.Add(child); await DbContext.SaveChangesAsync(); id = child.Id; } var user = new GetUserViewModel { Id = newUser.Id }; _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true); var query = new GetPromptQuery(id); //act GetPromptViewModel?result = await _handler.Handle(query); //assert Assert.Null(result); }
public async Task Handle_ReturnsNull_IfPromptIsDraft_AndUserServiceDoesNotReturnUser() { //arrange var prompt = new Prompt { IsDraft = true }; DbContext.Prompts.Add(prompt); await DbContext.SaveChangesAsync(); GetUserViewModel?user = null; _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(false); var query = new GetPromptQuery(prompt.Id); //act GetPromptViewModel?result = await _handler.Handle(query); //assert Assert.Null(result); }
public async Task Handle_ReturnsHasScriptFileTrue_WhenPromptHasAnAssociatedScript() { //arrange var owner = new User { Username = "******" }; var prompt = new Prompt { Owner = owner, ScriptZip = new byte[] { } }; DbContext.Prompts.Add(prompt); await DbContext.SaveChangesAsync(); var query = new GetPromptQuery(prompt.Id); //act GetPromptViewModel?result = await _handler.Handle(query); //assert Assert.NotNull(result); Assert.True(result.HasScriptFile); }