-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathArtQRCodeRendererTests.cs
More file actions
121 lines (107 loc) · 4.57 KB
/
Copy pathArtQRCodeRendererTests.cs
File metadata and controls
121 lines (107 loc) · 4.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
using QRCoder.Core.Abstractions;
using QRCoder.Core.Generators;
using QRCoder.Core.Models;
using QRCoder.Core.Renderers;
using QRCoder.Core.Tests.Helpers;
using QRCoder.Core.Tests.Helpers.XUnitExtenstions;
using Shouldly;
using SkiaSharp;
using Xunit;
namespace QRCoder.Core.Tests
{
public class ArtQRCodeRendererTests
{
[Fact]
[Category("QRRenderer/ArtQRCode")]
public void can_create_standard_qrcode_graphic()
{
var gen = new QRCodeGenerator();
var data = gen.CreateQrCode("This is a quick test! 123#?", QRCodeGenerator.ECCLevel.H);
var bmp = new ArtQRCode(data).GetGraphic(10);
var result = HelperFunctions.BitmapToHash(bmp);
result.ShouldBe("b9ecef2ee7e769d17f5e00914c7452bb");
}
[Fact]
[Category("QRRenderer/ArtQRCode")]
public void can_create_standard_qrcode_graphic_with_custom_finder()
{
var gen = new QRCodeGenerator();
var data = gen.CreateQrCode("This is a quick test! 123#?", QRCodeGenerator.ECCLevel.H);
var finder = new SKBitmap(15, 15);
var bmp = new ArtQRCode(data).GetGraphic(new ArtQRCodeGraphicOptions
{
PixelsPerModule = 10,
DarkSKColor = SKColors.Black,
LightSKColor = SKColors.White,
BackgroundSKColor = SKColors.Transparent,
FinderPatternImage = finder
});
var result = HelperFunctions.BitmapToHash(bmp);
result.ShouldBe("442648a1087f78955773c261b45665c9");
}
[Fact]
[Category("QRRenderer/ArtQRCode")]
public void can_create_standard_qrcode_graphic_without_quietzone()
{
var gen = new QRCodeGenerator();
var data = gen.CreateQrCode("This is a quick test! 123#?", QRCodeGenerator.ECCLevel.H);
var bmp = new ArtQRCode(data).GetGraphic(new ArtQRCodeGraphicOptions
{
PixelsPerModule = 10,
DarkSKColor = SKColors.Black,
LightSKColor = SKColors.White,
BackgroundSKColor = SKColors.Transparent,
DrawQuietZones = false
});
var result = HelperFunctions.BitmapToHash(bmp);
result.ShouldBe("4bbf0a58f3dc2c82cae0ad874da92028");
}
[Fact]
[Category("QRRenderer/ArtQRCode")]
public void can_create_standard_qrcode_graphic_with_background()
{
var gen = new QRCodeGenerator();
var data = gen.CreateQrCode("This is a quick test! 123#?", QRCodeGenerator.ECCLevel.H);
var bmp = new ArtQRCode(data).GetGraphic(SKBitmap.Decode(System.IO.Path.Combine(HelperFunctions.GetAssemblyPath(), "assets", "noun_software-engineer_2909346.png")));
//Used logo is licensed under public domain. Ref.: https://thenounproject.com/Iconathon1/collection/redefining-women/?i=2909346
var result = HelperFunctions.BitmapToHash(bmp);
result.ShouldBe("0ee19045007db3c29f2fc75f33906e49");
}
[Fact]
[Category("QRRenderer/ArtQRCode")]
public void should_throw_pixelfactor_oor_exception()
{
var gen = new QRCodeGenerator();
var data = gen.CreateQrCode("This is a quick test! 123#?", QRCodeGenerator.ECCLevel.H);
var aCode = new ArtQRCode(data);
var exception = Record.Exception(() => aCode.GetGraphic(new ArtQRCodeGraphicOptions
{
PixelsPerModule = 10,
DarkSKColor = SKColors.Black,
LightSKColor = SKColors.White,
BackgroundSKColor = SKColors.Transparent,
PixelSizeFactor = 2
}));
Assert.NotNull(exception);
Assert.IsType<System.ArgumentOutOfRangeException>(exception);
exception.Message.ShouldContain("pixelSizeFactor");
}
[Fact]
[Category("QRRenderer/ArtQRCode")]
public void can_instantate_parameterless()
{
var asciiCode = new ArtQRCode();
asciiCode.ShouldNotBeNull();
asciiCode.ShouldBeOfType<ArtQRCode>();
}
[Fact]
[Category("QRRenderer/ArtQRCode")]
public void can_render_artqrcode_from_helper()
{
//Create QR code
var bmp = ArtQRCodeHelper.GetQRCode("A", 10, SKColors.Black, SKColors.White, SKColors.Transparent, QRCodeGenerator.ECCLevel.L);
var result = HelperFunctions.BitmapToHash(bmp);
result.ShouldBe("ed4718421930b85bc6c5aeaa11e4d860");
}
}
}