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"); }); }
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."); }
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"); }); }