< Summary

Information
Class: TeleFlow.Telegram.TelegramLongPollingClientServiceCollectionExtensions
Assembly: TeleFlow.Telegram.LongPolling
File(s): /_/src/TeleFlow.Telegram.LongPolling/TelegramLongPollingClientServiceCollectionExtensions.cs
Line coverage
100%
Covered lines: 18
Uncovered lines: 0
Coverable lines: 18
Total lines: 34
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
AddTelegramLongPollingClient(...)100%22100%

File(s)

/_/src/TeleFlow.Telegram.LongPolling/TelegramLongPollingClientServiceCollectionExtensions.cs

#LineLine coverage
 1using Microsoft.Extensions.DependencyInjection;
 2using Microsoft.Extensions.DependencyInjection.Extensions;
 3using Microsoft.Extensions.Logging;
 4using Microsoft.Extensions.Logging.Abstractions;
 5using TeleFlow.Telegram.Internal;
 6
 7namespace TeleFlow.Telegram;
 8
 9public static class TelegramLongPollingClientServiceCollectionExtensions
 10{
 11    public static IServiceCollection AddTelegramLongPollingClient(this IServiceCollection services)
 12    {
 2413        ArgumentNullException.ThrowIfNull(services);
 14
 2415        services.TryAddSingleton(TimeProvider.System);
 2416        services.TryAddSingleton<ILoggerFactory>(NullLoggerFactory.Instance);
 2417        services.TryAddSingleton<ITelegramUpdateDecodeFailurePolicy>(StopTelegramUpdateDecodeFailurePolicy.Instance);
 2418        services.TryAddSingleton<ITelegramLongPollingClient>(static provider =>
 2419        {
 2420            var client = provider.GetRequiredService<ITelegramClient>();
 2421            var batchReceiver = client is TelegramClient
 2422                ? provider.GetRequiredService<ITelegramUpdateBatchReceiver>()
 2423                : new TypedTelegramUpdateBatchReceiver(client);
 2424
 2425            return new TelegramLongPollingClient(
 2426                batchReceiver,
 2427                provider.GetRequiredService<ITelegramUpdateDecodeFailurePolicy>(),
 2428                provider.GetRequiredService<TimeProvider>(),
 2429                provider.GetRequiredService<ILoggerFactory>());
 2430        });
 31
 2432        return services;
 33    }
 34}