|
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