< Summary

Information
Class: Services.LabelServices.OzonFbsShipPackageBuilder
Assembly: Services
File(s): /home/runner/work/Studio2Prod/Studio2Prod/AppRepository/LabelServices/OzonFbsShipPackageBuilder.cs
Line coverage
100%
Covered lines: 18
Uncovered lines: 0
Coverable lines: 18
Total lines: 43
Line coverage: 100%
Branch coverage
100%
Covered branches: 6
Total branches: 6
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
Build(...)100%66100%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/AppRepository/LabelServices/OzonFbsShipPackageBuilder.cs

#LineLine coverage
 1using Services.ApiServices.OzonApi.Filters;
 2
 3namespace Services.LabelServices;
 4
 5/// <summary>
 6/// Пакеты для /v4/posting/fbs/ship по фактическому составу отправления Ozon.
 7/// Ozon требует перечислить в packages все товары отправления с их количеством —
 8/// иначе отвечает HAS_INCORRECT_PRODUCT_QUANTITY.
 9/// </summary>
 10public static class OzonFbsShipPackageBuilder
 11{
 12    /// <param name="products">Товары отправления (SKU + количество).</param>
 13    /// <param name="packagePerUnit">true — каждая единица товара в отдельной коробке, иначе всё в одной.</param>
 14    public static List<FbsShipPackage> Build(IReadOnlyList<FbsShipProduct> products, bool packagePerUnit)
 15    {
 216        if (!packagePerUnit)
 17        {
 118            return
 119            [
 120                new FbsShipPackage
 121                {
 122                    Products = products
 223                        .Select(p => new FbsShipProduct { ProductId = p.ProductId, Quantity = p.Quantity })
 124                        .ToList()
 125                }
 126            ];
 27        }
 28
 129        var packages = new List<FbsShipPackage>();
 630        foreach (var product in products)
 31        {
 1032            for (var i = 0; i < product.Quantity; i++)
 33            {
 334                packages.Add(new FbsShipPackage
 335                {
 336                    Products = [new FbsShipProduct { ProductId = product.ProductId, Quantity = 1 }]
 337                });
 38            }
 39        }
 40
 141        return packages;
 42    }
 43}