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
|
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using RhSolutions.SkuParser.Api.Services;
using RhSolutions.SkuParser.Services;
namespace RhSolutions.SkuParser.Tests;
public class BsExcelParserTests
{
[TestCase("rhSolutionsBsTable.xlsx")]
public void BsTests(string filename)
{
var mockFile = FormFileUtil.GetMockFormFile(filename);
var logger = LoggerFactory.Create(builder => builder.AddConsole()).CreateLogger<BsExcelParser>();
var configuration = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: false)
.Build();
var parser = new BsExcelParser(configuration, logger);
var actual = parser.ParseProducts(mockFile.Object);
var expected = new Dictionary<Product, double>()
{
[new Product() { Sku = "11303703100", Name = "Унив.труба РЕХАУ FLEX 16x2,2, бухта 100м", Price = 2.45M, ProductLine = ProductLine.RAUTITAN }] = 2129.5,
[new Product() { Sku = "11303803100", Name = "Унив.труба РЕХАУ FLEX 20x2,8, бухта 100м", Price = 3.66M, ProductLine = ProductLine.RAUTITAN }] = 503,
[new Product() { Sku = "11303903050", Name = "Унив.труба РЕХАУ FLEX 25x3,5, бухта 50м", Price = 5.68M, ProductLine = ProductLine.RAUTITAN }] = 52,
[new Product() { Sku = "11080011001", Name = "Монтажная гильза 16 LX", Price = 1.42M, ProductLine = ProductLine.RAUTITAN }] = 2154,
[new Product() { Sku = "11080021001", Name = "Монтажная гильза 20 LX", Price = 1.45M, ProductLine = ProductLine.RAUTITAN }] = 134,
[new Product() { Sku = "11080031001", Name = "Монтажная гильза 25 LX", Price = 2.48M, ProductLine = ProductLine.RAUTITAN }] = 6,
[new Product() { Sku = "11080311001", Name = "Тройник равнопроходный 16-16-16 MX", Price = 6.84M, ProductLine = ProductLine.RAUTITAN }] = 462,
[new Product() { Sku = "11080611001", Name = "Тройник с уменьшенным боковым проходом 20-16-20 MX", Price = 8.14M, ProductLine = ProductLine.RAUTITAN }] = 38,
[new Product() { Sku = "11080811001", Name = "Тройник с уменьшенным боковым и торцевым проходами 20-16-16 MX", Price = 8.33M, ProductLine = ProductLine.RAUTITAN }] = 24,
[new Product() { Sku = "11080831001", Name = "Тройник с уменьшенным боковым и торцевым проходами 25-16-20 MX", Price = 10.64M, ProductLine = ProductLine.RAUTITAN }] = 2,
};
Assert.That(actual.Count, Is.EqualTo(expected.Count()));
CollectionAssert.AreEqual(expected, actual);
}
}
|