Skip to content

Commit

Permalink
fix: RetrievePost tests
Browse files Browse the repository at this point in the history
  • Loading branch information
vlnevyhosteny committed Sep 6, 2023
1 parent 933668a commit 525a54a
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 11 deletions.
27 changes: 25 additions & 2 deletions ButterCMS.Tests/Mocks/PostsMocks.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using System;
using System.Net;
using System.Net;
using ButterCMS.Models;

namespace ButterCMS.Tests
Expand Down Expand Up @@ -31,6 +30,16 @@ public static class PostsMocks
}
};

public static PostResponse PostResponse = new PostResponse()
{
Data = Post,
Meta = new PostMeta()
{
NextPost = new PostLight() { Slug = "next-post"},
PreviousPost = new PostLight() { Slug = "previous-post" },
}
};

public static string AppendParamsToListPostsUrl(int? page = null, int? pageSize = null, bool? excludeBody = null, string authorSlug = null, string categorySlug = null, string tagSlug = null, string query = null)
{
var url = $"https://api.buttercms.com/v2/posts/?auth_token={ButterCMSClientWithMockedHttp.MockedApiKey}";
Expand Down Expand Up @@ -127,5 +136,19 @@ public static void MockSuccessfullEmptySearchPostsResponse(this ButterCMSClientW
}
});
}

public static void MockSuccessfullPostResponse(this ButterCMSClientWithMockedHttp butterClient, string slug)
{
butterClient.MockSuccessfullJSONResponse($"https://api.buttercms.com/v2/posts/{slug}/?auth_token={ButterCMSClientWithMockedHttp.MockedApiKey}", PostResponse);
}

public static void MockSuccessfullNullPostResponse(this ButterCMSClientWithMockedHttp butterClient, string slug)
{
butterClient.MockSuccessfullJSONResponse($"https://api.buttercms.com/v2/posts/{slug}/?auth_token={ButterCMSClientWithMockedHttp.MockedApiKey}", new PostResponse()
{
Data = null,
Meta = null,
});
}
}
}
42 changes: 33 additions & 9 deletions ButterCMS.Tests/RetrievePostTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,39 +7,63 @@ namespace ButterCMS.Tests
[Category("RetrievePost")]
public class RetrievePostTests
{
private ButterCMSClient butterClient;
private ButterCMSClientWithMockedHttp butterClient;

[OneTimeSetUp]
[SetUp]
public void SetUp()
{
butterClient = Common.SetUpButterClient();
butterClient = Common.SetUpMockedButterClient();
}

[Test]
public void RetrievePost_ShouldReturnPost()
{
var post = butterClient.RetrievePost("this-is-a-blog-post");
var slug = PostsMocks.Post.Slug;

butterClient.MockSuccessfullPostResponse(slug);

var post = butterClient.RetrievePost(slug);
Assert.IsNotNull(post);

Assert.AreEqual(PostsMocks.Post.Slug, post.Data.Slug);
Assert.AreEqual(PostsMocks.Post.Title, post.Data.Title);
Assert.AreEqual(PostsMocks.PostResponse.Meta.NextPost.Slug, post.Meta.NextPost.Slug);
}

[Test]
public void RetrievePost_ShouldReturnNull()
{
var post = butterClient.RetrievePost("inavlid-slug-its-so-invalid-its-a-snail-not-a-slug");
Assert.IsNull(post);
var slug = "inavlid-slug-its-so-invalid-its-a-snail-not-a-slug";

butterClient.MockSuccessfullNullPostResponse(slug);

var post = butterClient.RetrievePost(slug);
Assert.IsNull(post.Data);
}

[Test]
public async Task RetrievePostAsync_ShouldReturnPost()
{
var post = await butterClient.RetrievePostAsync("this-is-a-blog-post");
var slug = PostsMocks.Post.Slug;

butterClient.MockSuccessfullPostResponse(slug);

var post = await butterClient.RetrievePostAsync(slug);
Assert.IsNotNull(post);

Assert.AreEqual(PostsMocks.Post.Slug, post.Data.Slug);
Assert.AreEqual(PostsMocks.Post.Title, post.Data.Title);
Assert.AreEqual(PostsMocks.PostResponse.Meta.NextPost.Slug, post.Meta.NextPost.Slug);
}
[Test]
public async Task RetrievePostAsync_ShouldReturnNull()
{
var post = await butterClient.RetrievePostAsync("inavlid-slug-its-so-invalid-its-a-snail-not-a-slug");
Assert.IsNull(post);
var slug = "inavlid-slug-its-so-invalid-its-a-snail-not-a-slug";

butterClient.MockSuccessfullNullPostResponse(slug);

var post = await butterClient.RetrievePostAsync(slug);
Assert.IsNull(post.Data);
}
}
}

0 comments on commit 525a54a

Please sign in to comment.