Skip to content

Commit 3eded35

Browse files
committed
fix encoding of unittest
1 parent 54d4e4b commit 3eded35

File tree

2 files changed

+66
-19
lines changed

2 files changed

+66
-19
lines changed

sandbox/ConsoleApp/Program.cs

Lines changed: 55 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,84 @@
11
using Cysharp.Web;
2-
using Refit;
32
using System.Net.Http.Json;
43
using System.Runtime.Serialization;
54
using System.Text;
65

7-
var httpClient = new HttpClient { BaseAddress = new Uri("http://localhost:5000") };
6+
//var httpClient = new HttpClient { BaseAddress = new Uri("http://localhost:5000") };
87
//var api = RestService.For<IMinimumAPI>(client);
98
//await api.Get(10, "octocat");
109

10+
System.Globalization.CultureInfo.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
11+
Console.WriteLine(System.Globalization.CultureInfo.CurrentCulture);
1112

13+
var a = System.Text.Encodings.Web.UrlEncoder.Default.Encode("hoge and 日本語 japanese");
14+
var b = System.Text.Encodings.Web.UrlEncoder.Default.Encode(a);
15+
//Console.WriteLine(b);
1216

17+
var req = new PagingRequest
18+
{
19+
SortDirection = SortDirection.Default,
20+
CurrentPage = 10,
21+
SortBy = "hoge and 日本語 japanese"
22+
};
23+
24+
var nullreq = new PagingRequest
25+
{
26+
SortDirection = SortDirection.Asc,
27+
CurrentPage = 8888,
28+
SortBy = null
29+
};
30+
31+
var one = WebSerializer.ToQueryString(req);
32+
var two = WebSerializer.ToQueryString("/hogemoge", req);
33+
var three = WebSerializer.ToQueryString(nullreq);
34+
var four = WebSerializer.ToQueryString("/hogemoge", nullreq);
1335

14-
//var q = WebSerializer.ToQueryString(req);
1536

16-
var tweet = new Tweet("foo", DateTimeOffset.Now.ToUnixTimeSeconds());
17-
var user = new User(1999, "baz");
37+
Console.WriteLine(one);
1838

1939

20-
// use writer instead of StringBuilder
21-
var writer = new WebSerializerWriter();
40+
////var q = WebSerializer.ToQueryString(req);
2241

23-
writer.NamePrefix = "tweet."; // set prefix by writer.
24-
WebSerializer.ToQueryString(writer, tweet); // serialize to writer
42+
//var tweet = new Tweet("foo", DateTimeOffset.Now.ToUnixTimeSeconds());
43+
//var user = new User(1999, "baz");
2544

26-
writer.AppendConcatenate(); // Append '&'
2745

28-
writer.NamePrefix = "user.";
29-
WebSerializer.ToQueryString(writer, user);
46+
//// use writer instead of StringBuilder
47+
//var writer = new WebSerializerWriter();
3048

31-
var q = writer.GetStringBuilder().ToString(); // get inner stringbuilder.
49+
//writer.NamePrefix = "tweet."; // set prefix by writer.
50+
//WebSerializer.ToQueryString(writer, tweet); // serialize to writer
3251

33-
// tweet.created=1641816933&tweet.msg=foo&user.id=1999&user.name=baz
34-
Console.WriteLine(q);
52+
//writer.AppendConcatenate(); // Append '&'
53+
54+
//writer.NamePrefix = "user.";
55+
//WebSerializer.ToQueryString(writer, user);
56+
57+
//var q = writer.GetStringBuilder().ToString(); // get inner stringbuilder.
58+
59+
//// tweet.created=1641816933&tweet.msg=foo&user.id=1999&user.name=baz
60+
//Console.WriteLine(q);
3561

3662

3763

3864

3965

4066
// ----
4167

68+
69+
public class PagingRequest
70+
{
71+
72+
[DataMember(Order = 1)]
73+
public string? SortBy { get; init; }
74+
[DataMember(Order = 2)]
75+
public SortDirection SortDirection { get; init; }
76+
[DataMember(Order = 0)]
77+
public int CurrentPage { get; init; } = 1;
78+
}
79+
80+
81+
4282
public record Tweet(string? msg, long created);
4383
public record User(long id, string? name);
4484

tests/WebSerializer.Tests/StandardTest.cs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
using System.Runtime.Serialization;
1+
using System.Runtime.Serialization;
2+
using System.Text;
3+
using System.Text.Encodings.Web;
4+
using System.Web;
25

36
namespace WebSerializerTests;
47

@@ -7,11 +10,13 @@ public class StandardTest
710
[Fact]
811
public void ToQueryString()
912
{
13+
14+
1015
var req = new PagingRequest
1116
{
1217
SortDirection = SortDirection.Default,
1318
CurrentPage = 10,
14-
SortBy = "hoge and “ú–{Œê japanese"
19+
SortBy = "hoge and 日本語 japanese"
1520
};
1621

1722
var nullreq = new PagingRequest
@@ -21,6 +26,8 @@ public void ToQueryString()
2126
SortBy = null
2227
};
2328

29+
30+
2431
var one = WebSerializer.ToQueryString(req);
2532
var two = WebSerializer.ToQueryString("/hogemoge", req);
2633
var three = WebSerializer.ToQueryString(nullreq);
@@ -39,7 +46,7 @@ public async Task ToHttpContent()
3946
{
4047
SortDirection = SortDirection.Default,
4148
CurrentPage = 10,
42-
SortBy = "hoge and “ú–{Œê japanese"
49+
SortBy = "hoge and 日本語 japanese"
4350
};
4451

4552
var content = WebSerializer.ToHttpContent(req);
@@ -49,7 +56,7 @@ public async Task ToHttpContent()
4956
var form = new FormUrlEncodedContent(new KeyValuePair<string, string>[]
5057
{
5158
new ("CurrentPage", "10" ),
52-
new ("SortBy", "hoge and “ú–{Œê japanese" ),
59+
new ("SortBy", "hoge and 日本語 japanese" ),
5360
new ("SortDirection", "Default" ),
5461
});
5562

0 commit comments

Comments
 (0)