• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

net-daemon / netdaemon / 17580595161

09 Sep 2025 11:06AM UTC coverage: 84.073% (+0.1%) from 83.971%
17580595161

Pull #1315

github

web-flow
Merge 2428f31f0 into abec1da85
Pull Request #1315: Minimal NetDaemon

862 of 1147 branches covered (75.15%)

Branch coverage included in aggregate %.

47 of 48 new or added lines in 10 files covered. (97.92%)

1 existing line in 1 file now uncovered.

3382 of 3901 relevant lines covered (86.7%)

120.57 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

94.59
/src/Client/NetDaemon.HassClient/Common/Extensions/ServiceCollectionExtension.cs
1
namespace NetDaemon.Client.Extensions;
2

3
/// <summary>
4
///     ServiceCollectionExtensions
5
/// </summary>
6
public static class ServiceCollectionExtensions
7
{
8
    /// <summary>
9
    ///     Adds home assistant client to the service collection
10
    /// </summary>
11
    /// <param name="services">Services</param>
12
    public static IServiceCollection AddHomeAssistantClient(this IServiceCollection services)
13
    {
14
        services.AddSingleton<HomeAssistantClient>()
13✔
15
            .AddSingleton<IHomeAssistantClient>(s => s.GetRequiredService<HomeAssistantClient>())
11✔
16
            .AddSingleton<HomeAssistantRunner>()
13✔
17
            .AddSingleton<IHomeAssistantRunner>(s => s.GetRequiredService<HomeAssistantRunner>())
9✔
18
            .AddSingleton<HomeAssistantApiManager>()
13✔
19
            .AddSingleton<IHomeAssistantApiManager>(s => s.GetRequiredService<HomeAssistantApiManager>())
×
UNCOV
20
            .AddTransient(s => s.GetRequiredService<IHomeAssistantRunner>().CurrentConnection!)
×
21

13✔
22

13✔
23

13✔
24
            .AddSingleton<IHomeAssistantConnectionProvider>(s => s.GetRequiredService<HomeAssistantRunner>())
11✔
25
            .AddTransient(s => s.GetRequiredService<IHomeAssistantConnectionProvider>().CurrentConnection!)
7✔
26

13✔
27
            .AddWebSocketFactory()
13✔
28
            .AddPipelineFactory()
13✔
29
            .AddConnectionFactory()
13✔
30
            .AddHttpClientAndFactory();
13✔
31
        return services;
13✔
32
    }
33

34
    private static IServiceCollection AddWebSocketFactory(this IServiceCollection services)
35
    {
36
        services.AddSingleton<WebSocketClientFactory>();
13✔
37
        services.AddSingleton<IWebSocketClientFactory>(s => s.GetRequiredService<WebSocketClientFactory>());
24✔
38
        return services;
13✔
39
    }
40

41
    private static IServiceCollection AddPipelineFactory(this IServiceCollection services)
42
    {
43
        services.AddSingleton<WebSocketClientTransportPipelineFactory>();
13✔
44
        services.AddSingleton<IWebSocketClientTransportPipelineFactory>(s =>
13✔
45
            s.GetRequiredService<WebSocketClientTransportPipelineFactory>());
24✔
46
        return services;
13✔
47
    }
48

49
    private static IServiceCollection AddConnectionFactory(this IServiceCollection services)
50
    {
51
        services.AddSingleton<HomeAssistantConnectionFactory>();
13✔
52
        services.AddSingleton<IHomeAssistantConnectionFactory>(s =>
13✔
53
            s.GetRequiredService<HomeAssistantConnectionFactory>());
24✔
54
        return services;
13✔
55
    }
56

57
    private static IServiceCollection AddHttpClientAndFactory(this IServiceCollection services)
58
    {
59
        services.AddSingleton(s => s.GetRequiredService<IHttpClientFactory>().CreateClient());
13✔
60
        services.AddHttpClient<IHomeAssistantApiManager, HomeAssistantApiManager>()
13✔
61
            .ConfigurePrimaryHttpMessageHandler(ConfigureHttpMessageHandler);
13✔
62
        return services;
13✔
63
    }
64

65
    private static HttpMessageHandler ConfigureHttpMessageHandler(IServiceProvider provider)
66
    {
67
        var handler = provider.GetService<HttpMessageHandler>();
11✔
68
        return handler ?? HttpHelper.CreateHttpMessageHandler(provider);
11✔
69
    }
70
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc