Skip to content

Commit 7bab87d

Browse files
authored
Split PayloadGeneratorTests into multiple files (#569)
1 parent 653ab0c commit 7bab87d

24 files changed

+3560
-3387
lines changed

QRCoderTests/PayloadGeneratorTests.cs

Lines changed: 0 additions & 3387 deletions
This file was deleted.

QRCoderTests/PayloadGeneratorTests/BezahlCodeTests.cs

Lines changed: 712 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
using System.Globalization;
2+
using System.Threading;
3+
using QRCoder;
4+
using Shouldly;
5+
using Xunit;
6+
7+
namespace QRCoderTests.PayloadGeneratorTests;
8+
9+
public class BitcoinAddressTests
10+
{
11+
[Fact]
12+
public void bitcoin_address_generator_can_generate_address()
13+
{
14+
var address = "175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W";
15+
var amount = .123;
16+
var label = "Some Label to Encode";
17+
var message = "Some Message to Encode";
18+
19+
var generator = new PayloadGenerator.BitcoinAddress(address, amount, label, message);
20+
21+
generator
22+
.ToString()
23+
.ShouldBe("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?label=Some%20Label%20to%20Encode&message=Some%20Message%20to%20Encode&amount=.123");
24+
}
25+
26+
[Fact]
27+
public void bitcoin_address_generator_should_skip_missing_label()
28+
{
29+
var address = "175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W";
30+
var amount = .123;
31+
var message = "Some Message to Encode";
32+
33+
34+
var generator = new PayloadGenerator.BitcoinAddress(address, amount, null, message);
35+
36+
generator
37+
.ToString()
38+
.ShouldNotContain("label");
39+
}
40+
41+
[Fact]
42+
public void bitcoin_address_generator_should_skip_missing_message()
43+
{
44+
var address = "175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W";
45+
var amount = .123;
46+
47+
48+
var generator = new PayloadGenerator.BitcoinAddress(address, amount);
49+
50+
generator
51+
.ToString()
52+
.ShouldNotContain("message");
53+
}
54+
55+
[Fact]
56+
public void bitcoin_address_generator_should_round_to_satoshi()
57+
{
58+
var address = "175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W";
59+
var amount = .123456789;
60+
61+
62+
var generator = new PayloadGenerator.BitcoinAddress(address, amount);
63+
64+
generator
65+
.ToString()
66+
.ShouldContain("amount=.12345679");
67+
}
68+
69+
[Fact]
70+
public void bitcoin_address_generator_disregards_current_culture()
71+
{
72+
#if NETCOREAPP1_1
73+
var currentCulture = CultureInfo.DefaultThreadCurrentCulture;
74+
CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("de-DE");
75+
#else
76+
var currentCulture = Thread.CurrentThread.CurrentCulture;
77+
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
78+
#endif
79+
80+
var address = "175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W";
81+
var amount = .123;
82+
83+
84+
var generator = new PayloadGenerator.BitcoinAddress(address, amount);
85+
86+
generator
87+
.ToString()
88+
.ShouldBe("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=.123");
89+
90+
#if NETCOREAPP1_1
91+
CultureInfo.DefaultThreadCurrentCulture = currentCulture;
92+
#else
93+
Thread.CurrentThread.CurrentCulture = currentCulture;
94+
#endif
95+
}
96+
}
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
using System.Globalization;
2+
using System.Threading;
3+
using QRCoder;
4+
using Shouldly;
5+
using Xunit;
6+
7+
namespace QRCoderTests.PayloadGeneratorTests;
8+
9+
public class BitcoinCashAddressTests
10+
{
11+
[Fact]
12+
public void bitcoincash_address_generator_can_generate_address()
13+
{
14+
var address = "qqtlfk37qyey50f4wfuhc7jw85zsdp8s2swffjk890";
15+
var amount = .123;
16+
var label = "Some Label to Encode";
17+
var message = "Some Message to Encode";
18+
19+
var generator = new PayloadGenerator.BitcoinCashAddress(address, amount, label, message);
20+
21+
generator
22+
.ToString()
23+
.ShouldBe("bitcoincash:qqtlfk37qyey50f4wfuhc7jw85zsdp8s2swffjk890?label=Some%20Label%20to%20Encode&message=Some%20Message%20to%20Encode&amount=.123");
24+
}
25+
26+
[Fact]
27+
public void bitcoincash_address_generator_should_skip_missing_label()
28+
{
29+
var address = "qqtlfk37qyey50f4wfuhc7jw85zsdp8s2swffjk890";
30+
var amount = .123;
31+
var message = "Some Message to Encode";
32+
33+
34+
var generator = new PayloadGenerator.BitcoinCashAddress(address, amount, null, message);
35+
36+
generator
37+
.ToString()
38+
.ShouldNotContain("label");
39+
}
40+
41+
[Fact]
42+
public void bitcoincash_address_generator_should_skip_missing_message()
43+
{
44+
var address = "qqtlfk37qyey50f4wfuhc7jw85zsdp8s2swffjk890";
45+
var amount = .123;
46+
47+
48+
var generator = new PayloadGenerator.BitcoinCashAddress(address, amount);
49+
50+
generator
51+
.ToString()
52+
.ShouldNotContain("message");
53+
}
54+
55+
[Fact]
56+
public void bitcoincash_address_generator_should_round_to_satoshi()
57+
{
58+
var address = "qqtlfk37qyey50f4wfuhc7jw85zsdp8s2swffjk890";
59+
var amount = .123456789;
60+
61+
62+
var generator = new PayloadGenerator.BitcoinCashAddress(address, amount);
63+
64+
generator
65+
.ToString()
66+
.ShouldContain("amount=.12345679");
67+
}
68+
69+
[Fact]
70+
public void bitcoincash_address_generator_disregards_current_culture()
71+
{
72+
#if NETCOREAPP1_1
73+
var currentCulture = CultureInfo.DefaultThreadCurrentCulture;
74+
CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("de-DE");
75+
#else
76+
var currentCulture = Thread.CurrentThread.CurrentCulture;
77+
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
78+
#endif
79+
80+
var address = "qqtlfk37qyey50f4wfuhc7jw85zsdp8s2swffjk890";
81+
var amount = .123;
82+
83+
84+
var generator = new PayloadGenerator.BitcoinCashAddress(address, amount);
85+
86+
generator
87+
.ToString()
88+
.ShouldBe("bitcoincash:qqtlfk37qyey50f4wfuhc7jw85zsdp8s2swffjk890?amount=.123");
89+
90+
#if NETCOREAPP1_1
91+
CultureInfo.DefaultThreadCurrentCulture = currentCulture;
92+
#else
93+
Thread.CurrentThread.CurrentCulture = currentCulture;
94+
#endif
95+
}
96+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
using QRCoder;
2+
using Shouldly;
3+
using Xunit;
4+
5+
namespace QRCoderTests.PayloadGeneratorTests;
6+
7+
public class BookmarkTests
8+
{
9+
[Fact]
10+
public void bookmark_should_build()
11+
{
12+
var url = "http://code-bude.net";
13+
var title = "A nerd's blog";
14+
15+
var generator = new PayloadGenerator.Bookmark(url, title);
16+
17+
generator.ToString().ShouldBe("MEBKM:TITLE:A nerd's blog;URL:http\\://code-bude.net;;");
18+
}
19+
20+
21+
[Fact]
22+
public void bookmark_should_escape_input()
23+
{
24+
var url = "http://code-bude.net/fake,url.html";
25+
var title = "A nerd's blog: \\All;the;things\\";
26+
27+
var generator = new PayloadGenerator.Bookmark(url, title);
28+
29+
generator.ToString().ShouldBe("MEBKM:TITLE:A nerd's blog\\: \\\\All\\;the\\;things\\\\;URL:http\\://code-bude.net/fake\\,url.html;;");
30+
}
31+
}
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
using System;
2+
using QRCoder;
3+
using Shouldly;
4+
using Xunit;
5+
6+
namespace QRCoderTests.PayloadGeneratorTests;
7+
8+
public class CalendarEventTests
9+
{
10+
[Fact]
11+
public void calendarevent_should_build_universal()
12+
{
13+
var subject = "Release party";
14+
var description = "A small party for the new QRCoder. Bring some beer!";
15+
var location = "Programmer's paradise, Beachtown, Paradise";
16+
var alldayEvent = false;
17+
var begin = new DateTime(2016, 01, 03, 12, 00, 00);
18+
var end = new DateTime(2016, 01, 03, 14, 30, 00);
19+
var encoding = PayloadGenerator.CalendarEvent.EventEncoding.Universal;
20+
21+
var generator = new PayloadGenerator.CalendarEvent(subject, description, location, begin, end, alldayEvent, encoding);
22+
23+
generator.ToString().ShouldBe($"BEGIN:VEVENT{Environment.NewLine}SUMMARY:Release party{Environment.NewLine}DESCRIPTION:A small party for the new QRCoder. Bring some beer!{Environment.NewLine}LOCATION:Programmer's paradise, Beachtown, Paradise{Environment.NewLine}DTSTART:20160103T120000{Environment.NewLine}DTEND:20160103T143000{Environment.NewLine}END:VEVENT");
24+
}
25+
26+
27+
[Fact]
28+
public void calendarevent_should_build_ical()
29+
{
30+
var subject = "Release party";
31+
var description = "A small party for the new QRCoder. Bring some beer!";
32+
var location = "Programmer's paradise, Beachtown, Paradise";
33+
var alldayEvent = false;
34+
var begin = new DateTime(2016, 01, 03, 12, 00, 00);
35+
var end = new DateTime(2016, 01, 03, 14, 30, 0);
36+
var encoding = PayloadGenerator.CalendarEvent.EventEncoding.iCalComplete;
37+
38+
var generator = new PayloadGenerator.CalendarEvent(subject, description, location, begin, end, alldayEvent, encoding);
39+
40+
generator.ToString().ShouldBe($"BEGIN:VCALENDAR{Environment.NewLine}VERSION:2.0{Environment.NewLine}BEGIN:VEVENT{Environment.NewLine}SUMMARY:Release party{Environment.NewLine}DESCRIPTION:A small party for the new QRCoder. Bring some beer!{Environment.NewLine}LOCATION:Programmer's paradise, Beachtown, Paradise{Environment.NewLine}DTSTART:20160103T120000{Environment.NewLine}DTEND:20160103T143000{Environment.NewLine}END:VEVENT{Environment.NewLine}END:VCALENDAR");
41+
}
42+
43+
44+
[Fact]
45+
public void calendarevent_should_build_with_utc_datetime()
46+
{
47+
var subject = "Release party";
48+
var description = "A small party for the new QRCoder. Bring some beer!";
49+
var location = "Programmer's paradise, Beachtown, Paradise";
50+
var alldayEvent = false;
51+
var begin = new DateTime(2016, 01, 03, 12, 00, 00, DateTimeKind.Utc);
52+
var end = new DateTime(2016, 01, 03, 14, 30, 00, DateTimeKind.Utc);
53+
var encoding = PayloadGenerator.CalendarEvent.EventEncoding.Universal;
54+
55+
var generator = new PayloadGenerator.CalendarEvent(subject, description, location, begin, end, alldayEvent, encoding);
56+
57+
generator.ToString().ShouldBe($"BEGIN:VEVENT{Environment.NewLine}SUMMARY:Release party{Environment.NewLine}DESCRIPTION:A small party for the new QRCoder. Bring some beer!{Environment.NewLine}LOCATION:Programmer's paradise, Beachtown, Paradise{Environment.NewLine}DTSTART:20160103T120000Z{Environment.NewLine}DTEND:20160103T143000Z{Environment.NewLine}END:VEVENT");
58+
}
59+
60+
61+
[Fact]
62+
public void calendarevent_should_build_with_utc_offset()
63+
{
64+
var subject = "Release party";
65+
var description = "A small party for the new QRCoder. Bring some beer!";
66+
var location = "Programmer's paradise, Beachtown, Paradise";
67+
var alldayEvent = false;
68+
var begin = new DateTimeOffset(2016, 01, 03, 12, 00, 00, new TimeSpan(3, 0, 0));
69+
var end = new DateTimeOffset(2016, 01, 03, 14, 30, 00, new TimeSpan(3, 0, 0));
70+
var encoding = PayloadGenerator.CalendarEvent.EventEncoding.Universal;
71+
72+
var generator = new PayloadGenerator.CalendarEvent(subject, description, location, begin, end, alldayEvent, encoding);
73+
74+
generator.ToString().ShouldBe($"BEGIN:VEVENT{Environment.NewLine}SUMMARY:Release party{Environment.NewLine}DESCRIPTION:A small party for the new QRCoder. Bring some beer!{Environment.NewLine}LOCATION:Programmer's paradise, Beachtown, Paradise{Environment.NewLine}DTSTART:20160103T090000Z{Environment.NewLine}DTEND:20160103T113000Z{Environment.NewLine}END:VEVENT");
75+
}
76+
77+
78+
[Fact]
79+
public void calendarevent_should_build_allday()
80+
{
81+
var subject = "Release party";
82+
var description = "A small party for the new QRCoder. Bring some beer!";
83+
var location = "Programmer's paradise, Beachtown, Paradise";
84+
var alldayEvent = true;
85+
var begin = new DateTime(2016, 01, 03);
86+
var end = new DateTime(2016, 01, 03);
87+
var encoding = PayloadGenerator.CalendarEvent.EventEncoding.Universal;
88+
89+
var generator = new PayloadGenerator.CalendarEvent(subject, description, location, begin, end, alldayEvent, encoding);
90+
91+
generator.ToString().ShouldBe($"BEGIN:VEVENT{Environment.NewLine}SUMMARY:Release party{Environment.NewLine}DESCRIPTION:A small party for the new QRCoder. Bring some beer!{Environment.NewLine}LOCATION:Programmer's paradise, Beachtown, Paradise{Environment.NewLine}DTSTART:20160103{Environment.NewLine}DTEND:20160103{Environment.NewLine}END:VEVENT");
92+
}
93+
94+
95+
[Fact]
96+
public void calendarevent_should_care_empty_fields()
97+
{
98+
var subject = "Release party";
99+
var description = "";
100+
var location = string.Empty;
101+
var alldayEvent = false;
102+
var begin = new DateTime(2016, 01, 03, 12, 00, 00);
103+
var end = new DateTime(2016, 01, 03, 14, 30, 0);
104+
var encoding = PayloadGenerator.CalendarEvent.EventEncoding.Universal;
105+
106+
var generator = new PayloadGenerator.CalendarEvent(subject, description, location, begin, end, alldayEvent, encoding);
107+
108+
generator.ToString().ShouldBe($"BEGIN:VEVENT{Environment.NewLine}SUMMARY:Release party{Environment.NewLine}DTSTART:20160103T120000{Environment.NewLine}DTEND:20160103T143000{Environment.NewLine}END:VEVENT");
109+
}
110+
111+
112+
[Fact]
113+
public void calendarevent_should_add_unused_params()
114+
{
115+
var subject = "Release party";
116+
var description = "A small party for the new QRCoder. Bring some beer!";
117+
var location = "Programmer's paradise, Beachtown, Paradise";
118+
var alldayEvent = false;
119+
var begin = new DateTime(2016, 01, 03, 12, 00, 00);
120+
var end = new DateTime(2016, 01, 03, 14, 30, 0);
121+
122+
var generator = new PayloadGenerator.CalendarEvent(subject, description, location, begin, end, alldayEvent);
123+
124+
generator.ToString().ShouldBe($"BEGIN:VEVENT{Environment.NewLine}SUMMARY:Release party{Environment.NewLine}DESCRIPTION:A small party for the new QRCoder. Bring some beer!{Environment.NewLine}LOCATION:Programmer's paradise, Beachtown, Paradise{Environment.NewLine}DTSTART:20160103T120000{Environment.NewLine}DTEND:20160103T143000{Environment.NewLine}END:VEVENT");
125+
}
126+
}

0 commit comments

Comments
 (0)