|
1 | 1 | using System.Collections.Generic; |
| 2 | +using System.IO; |
| 3 | +using System.Linq; |
2 | 4 | using System.Threading.Tasks; |
| 5 | +using FluentAssertions; |
3 | 6 | using Notion.Client; |
| 7 | +using WireMock.ResponseBuilders; |
4 | 8 | using Xunit; |
5 | 9 |
|
6 | 10 | namespace Notion.UnitTests |
7 | 11 | { |
8 | | - public class BlocksClientTests |
| 12 | + public class BlocksClientTests : ApiTestBase |
9 | 13 | { |
10 | 14 | private readonly IBlocksClient _client; |
11 | 15 |
|
12 | 16 | public BlocksClientTests() |
13 | 17 | { |
14 | | - var options = new ClientOptions() |
15 | | - { |
16 | | - AuthToken = "<Token>" |
17 | | - }; |
18 | | - |
19 | | - _client = new BlocksClient(new RestClient(options)); |
| 18 | + _client = new BlocksClient(new RestClient(ClientOptions)); |
20 | 19 | } |
21 | 20 |
|
22 | 21 | [Fact(Skip = "Dev only")] |
@@ -61,5 +60,31 @@ public async Task AppendBlockChildren() |
61 | 60 |
|
62 | 61 | Assert.NotNull(block); |
63 | 62 | } |
| 63 | + |
| 64 | + [Fact] |
| 65 | + public async Task RetrieveAsync() |
| 66 | + { |
| 67 | + string blockId = "9bc30ad4-9373-46a5-84ab-0a7845ee52e6"; |
| 68 | + var path = ApiEndpoints.BlocksApiUrls.Retrieve(blockId); |
| 69 | + var jsonData = await File.ReadAllTextAsync("data/blocks/RetrieveBlockResponse.json"); |
| 70 | + |
| 71 | + Server.Given(CreateGetRequestBuilder(path)) |
| 72 | + .RespondWith( |
| 73 | + Response.Create() |
| 74 | + .WithStatusCode(200) |
| 75 | + .WithBody(jsonData) |
| 76 | + ); |
| 77 | + |
| 78 | + var block = await _client.Retrieve(blockId); |
| 79 | + |
| 80 | + block.Id.Should().Be(blockId); |
| 81 | + block.HasChildren.Should().BeFalse(); |
| 82 | + block.Type.Should().Be(BlockType.ToDo); |
| 83 | + |
| 84 | + var todoBlock = ((ToDoBlock)block); |
| 85 | + todoBlock.ToDo.Text.Should().ContainSingle(); |
| 86 | + todoBlock.ToDo.Text.First().Should().BeAssignableTo<RichTextText>(); |
| 87 | + ((RichTextText)todoBlock.ToDo.Text.First()).Text.Content.Should().Be("Lacinato kale"); |
| 88 | + } |
64 | 89 | } |
65 | 90 | } |
0 commit comments