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 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(); }