コード例 #1
0
        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();
        }
コード例 #2
0
        public void GivenANullListOfReferences_CreatesEmptyListOfReferencesOnRequest()
        {
            // Arrange, Act
            var dto = new SetGameDataReferencesRequest(TestConstants.AllOnesGuid, null);

            // Assert
            dto.GameDataReferenceItems.Should().NotBeNull();
            dto.GameDataReferenceItems.Should().BeEmpty();
        }
コード例 #3
0
        public void GivenAnInvalidTask_ReturnsNotFound()
        {
            // Arrange
            var dto = new SetGameDataReferencesRequest(TestConstants.AllOnesGuid, null);

            // Act
            var result = _controller.SetGameDataReferences(dto);

            // Assert
            Assert.IsInstanceOf <NotFoundResult>(result.Result);
        }
コード例 #4
0
        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();
        }
コード例 #5
0
ファイル: TasksController.cs プロジェクト: jmia/WowDash
        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);
        }
コード例 #6
0
        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();
        }