< Summary

Information
Class: Services.ApiServices.ZZapApi.ZZapMoscowSupplierConnector
Assembly: Services
File(s): /home/runner/work/Studio2Prod/Studio2Prod/AppRepository/ApiServices/ZZapApi/ZZapMoscowSupplierConnector.cs
Line coverage
100%
Covered lines: 11
Uncovered lines: 0
Coverable lines: 11
Total lines: 27
Line coverage: 100%
Branch coverage
100%
Covered branches: 4
Total branches: 4
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
get_ProviderKey()100%11100%
get_DisplayName()100%11100%
get_DefaultCurrencyCode()100%11100%
get_SiteUrl()100%11100%
PingAsync()100%44100%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/AppRepository/ApiServices/ZZapApi/ZZapMoscowSupplierConnector.cs

#LineLine coverage
 1using Newtonsoft.Json.Linq;
 2using OzonDomains.Models;
 3using Services.ApiServices.ApiSupplierIntegration;
 4
 5namespace Services.ApiServices.ZZapApi;
 6
 7public sealed class ZZapMoscowSupplierConnector : IApiSupplierConnector
 8{
 9    public const string SupplierSiteUrl = "https://www.zzap.ru/";
 10
 11    private readonly ZZapDataManager _manager;
 812    public ZZapMoscowSupplierConnector(ZZapDataManager manager) => _manager = manager;
 13
 114    public string ProviderKey => ApiSupplierSettings.ZZapMoscowProviderKey;
 115    public string DisplayName => "ZZap Москва";
 116    public string DefaultCurrencyCode => "RUB";
 117    public string SiteUrl => SupplierSiteUrl;
 18
 19    public async Task<ApiSupplierPingResult> PingAsync(CancellationToken cancellationToken = default)
 20    {
 321        var status = await _manager.GetStatusAsync(cancellationToken);
 322        var online = (status["result"] as JObject)?.Value<bool?>("online") ?? false;
 323        return online
 324            ? new ApiSupplierPingResult(true)
 325            : new ApiSupplierPingResult(false, "ZZap сообщает, что сервис офлайн.");
 326    }
 27}