1
+ #if ! NETCOREAPP1_1
2
+ using QRCoder ;
3
+ using QRCoderTests . Helpers ;
4
+ using QRCoderTests . Helpers . XUnitExtenstions ;
5
+ using Shouldly ;
6
+ using System ;
7
+ using System . Drawing ;
8
+ using System . IO ;
9
+ using System . Text . RegularExpressions ;
10
+ using Xunit ;
11
+
12
+ namespace QRCoderTests
13
+ {
14
+ public class PostscriptQRCodeRendererTests
15
+ {
16
+ [ Fact ]
17
+ [ Category ( "QRRenderer/PostscriptQRCode" ) ]
18
+ public void can_render_postscript_qrcode_simple ( )
19
+ {
20
+ //Create QR code
21
+ var gen = new QRCodeGenerator ( ) ;
22
+ var data = gen . CreateQrCode ( "This is a quick test! 123#?" , QRCodeGenerator . ECCLevel . L ) ;
23
+ var svg = new PostscriptQRCode ( data ) . GetGraphic ( 5 ) ;
24
+
25
+ var result = HelperFunctions . StringToHash ( RemoveCreationDate ( svg ) ) ;
26
+ result . ShouldBe ( "06b90d1e64bf022a248453e5f91101a0" ) ;
27
+ }
28
+
29
+ [ Fact ]
30
+ [ Category ( "QRRenderer/PostscriptQRCode" ) ]
31
+ public void can_render_postscript_qrcode_eps ( )
32
+ {
33
+ //Create QR code
34
+ var gen = new QRCodeGenerator ( ) ;
35
+ var data = gen . CreateQrCode ( "This is a quick test! 123#?" , QRCodeGenerator . ECCLevel . L ) ;
36
+ var svg = new PostscriptQRCode ( data ) . GetGraphic ( 5 , true ) ;
37
+
38
+ var result = HelperFunctions . StringToHash ( RemoveCreationDate ( svg ) ) ;
39
+ result . ShouldBe ( "50f6152cdb0b685595d80e7888712d3b" ) ;
40
+ }
41
+
42
+ [ Fact ]
43
+ [ Category ( "QRRenderer/PostscriptQRCode" ) ]
44
+ public void can_render_postscript_qrcode_size ( )
45
+ {
46
+ //Create QR code
47
+ var gen = new QRCodeGenerator ( ) ;
48
+ var data = gen . CreateQrCode ( "This is a quick test! 123#?" , QRCodeGenerator . ECCLevel . L ) ;
49
+ var svg = new PostscriptQRCode ( data ) . GetGraphic ( new Size ( 33 , 33 ) ) ;
50
+
51
+ var result = HelperFunctions . StringToHash ( RemoveCreationDate ( svg ) ) ;
52
+ result . ShouldBe ( "49c7faaafef312eb4b6ea1fec195e63d" ) ;
53
+ }
54
+
55
+ [ Fact ]
56
+ [ Category ( "QRRenderer/PostscriptQRCode" ) ]
57
+ public void can_render_postscript_qrcode_size_no_quiet_zones ( )
58
+ {
59
+ //Create QR code
60
+ var gen = new QRCodeGenerator ( ) ;
61
+ var data = gen . CreateQrCode ( "This is a quick test! 123#?" , QRCodeGenerator . ECCLevel . L ) ;
62
+ var svg = new PostscriptQRCode ( data ) . GetGraphic ( new Size ( 50 , 50 ) , false ) ;
63
+
64
+ var result = HelperFunctions . StringToHash ( RemoveCreationDate ( svg ) ) ;
65
+ result . ShouldBe ( "9bfa0468e125d9815a39902133a10762" ) ;
66
+ }
67
+
68
+ [ Fact ]
69
+ [ Category ( "QRRenderer/PostscriptQRCode" ) ]
70
+ public void can_render_postscript_qrcode_colors ( )
71
+ {
72
+ //Create QR code
73
+ var gen = new QRCodeGenerator ( ) ;
74
+ var data = gen . CreateQrCode ( "This is a quick test! 123#?" , QRCodeGenerator . ECCLevel . L ) ;
75
+ var svg = new PostscriptQRCode ( data ) . GetGraphic ( 5 , Color . Red , Color . Blue ) ;
76
+
77
+ var result = HelperFunctions . StringToHash ( RemoveCreationDate ( svg ) ) ;
78
+ result . ShouldBe ( "2e001d7f67a446eb1b5df32ff5321808" ) ;
79
+ }
80
+
81
+ private static string RemoveCreationDate ( string text )
82
+ {
83
+ // Regex pattern to match lines that start with %%CreationDate: followed by any characters until the end of the line
84
+ string pattern = @"%%CreationDate:.*\r?\n?" ;
85
+
86
+ // Use Regex.Replace to remove matching lines
87
+ return Regex . Replace ( text , pattern , string . Empty , RegexOptions . Multiline ) ;
88
+ }
89
+ }
90
+ }
91
+ #endif
0 commit comments