public async Task TestThatMutationRevokeTopicWithValidTopicIdRevokesTopic()
        {
            string topicTitle       = "test title";
            string topicDescription = "test description";

            Guid newAuthorId = await Server.CreateValidAuthor("test author name").ContinueWith(task => task.Result.Data.CreateAuthor.Id);

            Guid newTopicId = await Server.CreateTopic <TopicsResponse>(newAuthorId, topicTitle, topicDescription).ContinueWith(task => task.Result.Data.SubmitTopic.Id);

            string query = $@"mutation {{
                                revokeTopic(authorId: ""{newAuthorId}"" topicId: ""{newTopicId}""){{
                                    ... on Error {{
                                        errorMessage
                                    }}
                                }}
                            }}";

            HttpResponseMessage response = await Server.PostGraphqlQuery(query);

            response.EnsureSuccessStatusCode();
            string         responseString = response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
            TopicsResponse parsedResponse = JsonConvert.DeserializeObject <TopicsResponse>(responseString);

            Assert.IsNotNull(parsedResponse?.Data?.RevokeTopic, "Topic not revoked");
        }
        public async Task TestThatMutationSubmitNewTopicWithValidAuthorIdReturnsTopicWithNewId()
        {
            string topicTitle       = "test title";
            string topicDescription = "test description";

            Guid newAuthorId = await Server.CreateValidAuthor("test author name").ContinueWith(task => task.Result.Data.CreateAuthor.Id);

            TopicsResponse parsedResponse = await Server.CreateTopic <TopicsResponse>(newAuthorId, topicTitle, topicDescription);

            Assert.Multiple(() =>
            {
                Assert.IsNotNull(parsedResponse?.Data?.SubmitTopic, "No topic returned");
                Assert.AreNotEqual(Guid.Empty, parsedResponse.Data.SubmitTopic.Id, "No valid new topicId returned");
                Assert.AreEqual(topicTitle, parsedResponse.Data.SubmitTopic.Title, "Returned topic title does not match");
                Assert.AreEqual(topicDescription, parsedResponse.Data.SubmitTopic.Description, "Returned topic description does not match");
            });
        }
Exemple #3
0
        public async Task TestThatQueryForTopicsGetsNonEmptyListOfTopics()
        {
            string query = @"
                        {
                          topics {
                            id title description
                          }
                        }";

            HttpResponseMessage response = await Server.PostGraphqlQuery(query);

            response.EnsureSuccessStatusCode();
            string         responseString = response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
            TopicsResponse parsedResponse = JsonConvert.DeserializeObject <TopicsResponse>(responseString);

            Assert.IsNotNull(parsedResponse?.Data?.Topics, "Nothing returned.");
            Assert.IsNotEmpty(parsedResponse.Data.Topics, "No topics found.");
        }
Exemple #4
0
        public async Task TestThatMutationEditTopicWithValidTopicIdReturnsTopic()
        {
            string topicTitleBeforeEdit       = "title before edit";
            string topicTitleAfterEdit        = "title after edit";
            string topicDescriptionBeforeEdit = "description before edit";
            string topicDescriptionAfterEdit  = "description after edit";

            Guid newAuthorId = await Server.CreateValidAuthor("test author name").ContinueWith(task => task.Result.Data.CreateAuthor.Id);

            Guid newTopicId = await Server.CreateTopic <TopicsResponse>(newAuthorId, topicTitleBeforeEdit, topicDescriptionBeforeEdit).ContinueWith(task => task.Result.Data.SubmitTopic.Id);

            string query = $@"mutation {{
                                editTopic(authorId: ""{newAuthorId}"" topic: {{ id: ""{newTopicId}"" title: ""{topicTitleAfterEdit}"" description: ""{topicDescriptionAfterEdit}""}}){{
                                    ... on Topic {{
                                        id title description
                                    }}
                                    ... on Error {{
                                        errorMessage
                                    }}
                                }}
                            }}";

            HttpResponseMessage response = await Server.PostGraphqlQuery(query);

            response.EnsureSuccessStatusCode();
            string         responseString = response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
            TopicsResponse parsedResponse = JsonConvert.DeserializeObject <TopicsResponse>(responseString);

            Assert.Multiple(() =>
            {
                Assert.IsNotNull(parsedResponse?.Data?.EditTopic, "No topic returned");
                Assert.AreEqual(newTopicId, parsedResponse.Data.EditTopic.Id, "Returned topicId does not match");
                Assert.AreEqual(topicTitleAfterEdit, parsedResponse.Data.EditTopic.Title, "Returned topic title does not match");
                Assert.AreEqual(topicDescriptionAfterEdit, parsedResponse.Data.EditTopic.Description, "Returned topic description does not match");
            });
        }