public void GivenAValidTask_AndNoReferences_RemovesAllReferences() { // Arrange var task = new Task(DefaultPlayer.Id, TaskType.Collectible); var existingReference = new GameDataReference( 19019, GameDataReference.GameDataType.Item, null, "Thunderfury, Blessed Blade of the Windseeker"); task.GameDataReferences.Add(existingReference); Context.Add(task); Context.SaveChanges(); var dto = new SetGameDataReferencesRequest(task.Id, null); // Act var result = _controller.SetGameDataReferences(dto); var foundTask = Context.Tasks.Find(result.Value); // Assert foundTask.GameDataReferences.Count.Should().Be(0); foundTask.GameDataReferences.Any(gdr => gdr.GameId == existingReference.GameId).Should().BeFalse(); }
public void GivenANullListOfReferences_CreatesEmptyListOfReferencesOnRequest() { // Arrange, Act var dto = new SetGameDataReferencesRequest(TestConstants.AllOnesGuid, null); // Assert dto.GameDataReferenceItems.Should().NotBeNull(); dto.GameDataReferenceItems.Should().BeEmpty(); }
public void GivenAnInvalidTask_ReturnsNotFound() { // Arrange var dto = new SetGameDataReferencesRequest(TestConstants.AllOnesGuid, null); // Act var result = _controller.SetGameDataReferences(dto); // Assert Assert.IsInstanceOf <NotFoundResult>(result.Result); }
public void GivenAValidTask_AndReferencesExist_ThatAreNotInGivenList_RemovesExtraReferences() { // Arrange var task = new Task(DefaultPlayer.Id, TaskType.Collectible); var existingReference = new GameDataReference( 19019, GameDataReference.GameDataType.Item, null, "Thunderfury, Blessed Blade of the Windseeker"); task.GameDataReferences.Add(existingReference); Context.Add(task); Context.SaveChanges(); var gameDataReferences = new List <GameDataReferenceItem>(); var firstExpectedReference = new GameDataReferenceItem( null, 13502, GameDataReference.GameDataType.Achievement, null, "Use the Secret Fish Goggles to collect all the secret fish."); var secondExpectedReference = new GameDataReferenceItem( null, 168016, GameDataReference.GameDataType.Item, "Toy", "Hyper-Compressed Ocean"); gameDataReferences.Add(firstExpectedReference); gameDataReferences.Add(secondExpectedReference); var dto = new SetGameDataReferencesRequest(task.Id, gameDataReferences); // Act var result = _controller.SetGameDataReferences(dto); var foundTask = Context.Tasks.Find(result.Value); // Assert foundTask.GameDataReferences.Count.Should().Be(2); foundTask.GameDataReferences.Any(gdr => gdr.GameId == existingReference.GameId).Should().BeFalse(); foundTask.GameDataReferences.Any(gdr => gdr.GameId == firstExpectedReference.GameId).Should().BeTrue(); foundTask.GameDataReferences.Any(gdr => gdr.GameId == secondExpectedReference.GameId).Should().BeTrue(); }
public ActionResult <Guid> SetGameDataReferences(SetGameDataReferencesRequest request) { var task = _context.Tasks.Find(request.TaskId); if (task is null) { return(NotFound()); } task.GameDataReferences = request.GameDataReferenceItems.Select(ri => new GameDataReference(ri.GameId, ri.Type, ri.Subclass, ri.Description)) .ToList(); _context.SaveChanges(); return(task.Id); }
public void GivenAValidTask_AndValidGameDataReferences_AddsDataReferencesToDatabase() { // Arrange var task = new Task(DefaultPlayer.Id, TaskType.Collectible); Context.Add(task); Context.SaveChanges(); var gameDataReferences = new List <GameDataReferenceItem>(); var firstExpectedReference = new GameDataReferenceItem( null, 13502, GameDataReference.GameDataType.Achievement, null, "Use the Secret Fish Goggles to collect all the secret fish."); var secondExpectedReference = new GameDataReferenceItem( null, 168016, GameDataReference.GameDataType.Item, "Toy", "Hyper-Compressed Ocean"); gameDataReferences.Add(firstExpectedReference); gameDataReferences.Add(secondExpectedReference); var dto = new SetGameDataReferencesRequest(task.Id, gameDataReferences); // Act var result = _controller.SetGameDataReferences(dto); var foundTask = Context.Tasks.Find(result.Value); // Assert foundTask.GameDataReferences.Should().NotBeEmpty(); foundTask.GameDataReferences.Count.Should().Be(2); foundTask.GameDataReferences.All(gdr => gdr.Id != 0); foundTask.GameDataReferences.Any(gdr => gdr.GameId == firstExpectedReference.GameId).Should().BeTrue(); foundTask.GameDataReferences.Any(gdr => gdr.GameId == secondExpectedReference.GameId).Should().BeTrue(); }