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

MeindertN / RoboClerk / 15807033472

22 Jun 2025 01:20PM UTC coverage: 83.814% (+0.4%) from 83.411%
15807033472

push

github

web-flow
Update build.yml

update to .NET8

1578 of 1905 branches covered (82.83%)

Branch coverage included in aggregate %.

5045 of 5997 relevant lines covered (84.13%)

108.56 hits per line

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

93.51
/RoboClerk/DataSources/PluginDataSources.cs
1
using Microsoft.Extensions.DependencyInjection;
2
using RoboClerk.Configuration;
3
using System;
4
using System.Collections.Generic;
5
using System.IO.Abstractions;
6

7
namespace RoboClerk
8
{
9
    public class PluginDataSources : DataSourcesBase, IDataSources
10
    {
11
        private List<IDataSourcePlugin> plugins = new List<IDataSourcePlugin>();
41✔
12

13
        private readonly IPluginLoader pluginLoader = null;
41✔
14

15
        public PluginDataSources(IConfiguration configuration, IPluginLoader pluginLoader, IFileSystem fileSystem)
16
            : base(configuration, fileSystem)
41✔
17
        {
41✔
18
            this.pluginLoader = pluginLoader;
41✔
19
            LoadPlugins();
41✔
20
        }
41✔
21

22
        private void LoadPlugins()
23
        {
41✔
24
            foreach (var val in configuration.DataSourcePlugins)
415✔
25
            {
146✔
26
                foreach (var dir in configuration.PluginDirs)
1,022✔
27
                {
292✔
28
                    var plugin = pluginLoader.LoadByName<IDataSourcePlugin>(
292✔
29
                        pluginDir: dir,
292✔
30
                        typeName: val,
292✔
31
                        configureGlobals: sc =>
292✔
32
                        {
×
33
                            sc.AddSingleton(fileSystem);
×
34
                            sc.AddSingleton(configuration);
×
35
                        });
292✔
36
                    if (plugin != null)
292✔
37
                    {
100✔
38
                        plugin.InitializePlugin(configuration);
100✔
39
                        if (plugin as IDataSourcePlugin != null)
100!
40
                        {
100✔
41
                            var temp = plugin as IDataSourcePlugin;
100✔
42
                            temp.RefreshItems();
100✔
43
                            plugins.Add(temp);
100✔
44
                            continue;
100✔
45
                        }
46
                    }
×
47
                }
192✔
48
            }
146✔
49
        }
41✔
50

51
        public override List<SOUPItem> GetAllSOUP()
52
        {
11✔
53
            List<SOUPItem> list = new List<SOUPItem>();
11✔
54
            foreach (var plugin in plugins)
91✔
55
            {
29✔
56
                list.AddRange(plugin.GetSOUP());
29✔
57
            }
29✔
58
            return list;
11✔
59
        }
11✔
60

61
        public override List<EliminatedSOUPItem> GetAllEliminatedSOUP()
62
        {
3✔
63
            List<EliminatedSOUPItem> list = new List<EliminatedSOUPItem>();
3✔
64
            foreach (var plugin in plugins)
27✔
65
            {
9✔
66
                list.AddRange(plugin.GetEliminatedSOUP());
9✔
67
            }
9✔
68
            return list;
3✔
69
        }
3✔
70

71
        public override List<RiskItem> GetAllRisks()
72
        {
10✔
73
            List<RiskItem> list = new List<RiskItem>();
10✔
74
            foreach (var plugin in plugins)
82✔
75
            {
26✔
76
                list.AddRange(plugin.GetRisks());
26✔
77
            }
26✔
78
            return list;
10✔
79
        }
10✔
80

81
        public override List<EliminatedRiskItem> GetAllEliminatedRisks()
82
        {
4✔
83
            List<EliminatedRiskItem> list = new List<EliminatedRiskItem>();
4✔
84
            foreach (var plugin in plugins)
36✔
85
            {
12✔
86
                list.AddRange(plugin.GetEliminatedRisks());
12✔
87
            }
12✔
88
            return list;
4✔
89
        }
4✔
90

91
        public override List<ExternalDependency> GetAllExternalDependencies()
92
        {
2✔
93
            var dependencies = new List<ExternalDependency>();
2✔
94
            foreach (var plugin in plugins)
16✔
95
            {
5✔
96
                dependencies.AddRange(plugin.GetDependencies());
5✔
97
            }
5✔
98
            return dependencies;
2✔
99
        }
2✔
100

101
        public override List<TestResult> GetAllTestResults()
102
        {
×
103
            var results = new List<TestResult>();
×
104
            foreach (var plugin in plugins)
×
105
            {
×
106
                results.AddRange(plugin.GetTestResults());
×
107
            }
×
108
            return results;
×
109
        }
×
110

111
        public override List<UnitTestItem> GetAllUnitTests()
112
        {
13✔
113
            var unitTests = new List<UnitTestItem>();
13✔
114
            foreach (var plugin in plugins)
109✔
115
            {
35✔
116
                unitTests.AddRange(plugin.GetUnitTests());
35✔
117
            }
35✔
118
            return unitTests;
13✔
119
        }
13✔
120

121
        public override List<RequirementItem> GetAllSoftwareRequirements()
122
        {
33✔
123
            List<RequirementItem> items = new List<RequirementItem>();
33✔
124
            foreach (var plugin in plugins)
229✔
125
            {
65✔
126
                items.AddRange(plugin.GetSoftwareRequirements());
65✔
127
            }
65✔
128
            return items;
33✔
129
        }
33✔
130

131
        public override List<RequirementItem> GetAllSystemRequirements()
132
        {
33✔
133
            List<RequirementItem> items = new List<RequirementItem>();
33✔
134
            foreach (var plugin in plugins)
225✔
135
            {
63✔
136
                items.AddRange(plugin.GetSystemRequirements());
63✔
137
            }
63✔
138
            return items;
33✔
139
        }
33✔
140

141
        public override List<RequirementItem> GetAllDocumentationRequirements()
142
        {
17✔
143
            List<RequirementItem> items = new List<RequirementItem>();
17✔
144
            foreach (var plugin in plugins)
141✔
145
            {
45✔
146
                items.AddRange(plugin.GetDocumentationRequirements());
45✔
147
            }
45✔
148
            return items;
17✔
149
        }
17✔
150

151
        public override List<DocContentItem> GetAllDocContents()
152
        {
16✔
153
            List<DocContentItem> items = new List<DocContentItem>();
16✔
154
            foreach (var plugin in plugins)
132✔
155
            {
42✔
156
                items.AddRange(plugin.GetDocContents());
42✔
157
            }
42✔
158
            return items;
16✔
159
        }
16✔
160

161
        public override List<EliminatedDocContentItem> GetAllEliminatedDocContents()
162
        {
3✔
163
            List<EliminatedDocContentItem> items = new List<EliminatedDocContentItem>();
3✔
164
            foreach (var plugin in plugins)
27✔
165
            {
9✔
166
                items.AddRange(plugin.GetEliminatedDocContents());
9✔
167
            }
9✔
168
            return items;
3✔
169
        }
3✔
170

171
        public override List<SoftwareSystemTestItem> GetAllSoftwareSystemTests()
172
        {
14✔
173
            List<SoftwareSystemTestItem> items = new List<SoftwareSystemTestItem>();
14✔
174
            foreach (var plugin in plugins)
118✔
175
            {
38✔
176
                items.AddRange(plugin.GetSoftwareSystemTests());
38✔
177
            }
38✔
178
            return items;
14✔
179
        }
14✔
180

181
        public override List<AnomalyItem> GetAllAnomalies()
182
        {
12✔
183
            List<AnomalyItem> items = new List<AnomalyItem>();
12✔
184
            foreach (var plugin in plugins)
100✔
185
            {
32✔
186
                items.AddRange(plugin.GetAnomalies());
32✔
187
            }
32✔
188
            return items;
12✔
189
        }
12✔
190

191
        public override List<EliminatedAnomalyItem> GetAllEliminatedAnomalies()
192
        {
3✔
193
            List<EliminatedAnomalyItem> items = new List<EliminatedAnomalyItem>();
3✔
194
            foreach (var plugin in plugins)
27✔
195
            {
9✔
196
                items.AddRange(plugin.GetEliminatedAnomalies());
9✔
197
            }
9✔
198
            return items;
3✔
199
        }
3✔
200

201
        public override List<EliminatedRequirementItem> GetAllEliminatedSystemRequirements()
202
        {
4✔
203
            List<EliminatedRequirementItem> items = new List<EliminatedRequirementItem>();
4✔
204
            foreach (var plugin in plugins)
36✔
205
            {
12✔
206
                items.AddRange(plugin.GetEliminatedSystemRequirements());
12✔
207
            }
12✔
208
            return items;
4✔
209
        }
4✔
210

211
        public override List<EliminatedRequirementItem> GetAllEliminatedSoftwareRequirements()
212
        {
4✔
213
            List<EliminatedRequirementItem> items = new List<EliminatedRequirementItem>();
4✔
214
            foreach (var plugin in plugins)
36✔
215
            {
12✔
216
                items.AddRange(plugin.GetEliminatedSoftwareRequirements());
12✔
217
            }
12✔
218
            return items;
4✔
219
        }
4✔
220

221
        public override List<EliminatedRequirementItem> GetAllEliminatedDocumentationRequirements()
222
        {
4✔
223
            List<EliminatedRequirementItem> items = new List<EliminatedRequirementItem>();
4✔
224
            foreach (var plugin in plugins)
36✔
225
            {
12✔
226
                items.AddRange(plugin.GetEliminatedDocumentationRequirements());
12✔
227
            }
12✔
228
            return items;
4✔
229
        }
4✔
230

231
        public override List<EliminatedSoftwareSystemTestItem> GetAllEliminatedSoftwareSystemTests()
232
        {
4✔
233
            List<EliminatedSoftwareSystemTestItem> items = new List<EliminatedSoftwareSystemTestItem>();
4✔
234
            foreach (var plugin in plugins)
36✔
235
            {
12✔
236
                items.AddRange(plugin.GetEliminatedSoftwareSystemTests());
12✔
237
            }
12✔
238
            return items;
4✔
239
        }
4✔
240
    }
241
}
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