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

MeindertN / RoboClerk / 19313674688

12 Nov 2025 10:19PM UTC coverage: 81.831% (-2.2%) from 84.026%
19313674688

push

github

web-flow
Merge pull request #79 from MeindertN/V1.6.0

jumping to V1.7.0

2069 of 2635 branches covered (78.52%)

Branch coverage included in aggregate %.

1293 of 1710 new or added lines in 32 files covered. (75.61%)

17 existing lines in 5 files now uncovered.

6322 of 7619 relevant lines covered (82.98%)

189.57 hits per line

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

95.87
/RoboClerk/DataSources/DataSourcesBase.cs
1
using RoboClerk.Configuration;
2
using System;
3
using System.Collections.Generic;
4
using System.IO;
5
using System.IO.Abstractions;
6
using System.Linq;
7
using System.Text.Json;
8

9
namespace RoboClerk
10
{
11
    public abstract class DataSourcesBase : IDataSources
12
    {
13
        protected readonly IConfiguration configuration = null;
51✔
14
        protected readonly IFileSystem fileSystem = null;
51✔
15
        protected static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
1✔
16

17
        public DataSourcesBase(IConfiguration configuration, IFileSystem fileSystem)
51✔
18
        {
51✔
19
            this.configuration = configuration;
51✔
20
            this.fileSystem = fileSystem;
51✔
21
        }
51✔
22

23
        public abstract List<SOUPItem> GetAllSOUP();
24

25
        public abstract List<EliminatedSOUPItem> GetAllEliminatedSOUP();
26

27
        public abstract List<RiskItem> GetAllRisks();
28

29
        public abstract List<EliminatedRiskItem> GetAllEliminatedRisks();
30

31
        public abstract List<ExternalDependency> GetAllExternalDependencies();
32

33
        public abstract List<TestResult> GetAllTestResults();
34

35
        public abstract List<EliminatedTestResult> GetAllEliminatedTestResults();
36

37
        public abstract List<UnitTestItem> GetAllUnitTests();
38

39
        public abstract List<EliminatedUnitTestItem> GetAllEliminatedUnitTests();
40

41
        public abstract List<RequirementItem> GetAllSoftwareRequirements();
42

43
        public abstract List<EliminatedRequirementItem> GetAllEliminatedSoftwareRequirements();
44

45
        public abstract List<RequirementItem> GetAllSystemRequirements();
46

47
        public abstract List<EliminatedRequirementItem> GetAllEliminatedSystemRequirements();
48

49
        public abstract List<RequirementItem> GetAllDocumentationRequirements();
50

51
        public abstract List<EliminatedRequirementItem> GetAllEliminatedDocumentationRequirements();
52

53
        public abstract List<DocContentItem> GetAllDocContents();
54

55
        public abstract List<EliminatedDocContentItem> GetAllEliminatedDocContents();
56

57
        public abstract List<SoftwareSystemTestItem> GetAllSoftwareSystemTests();
58

59
        public abstract List<EliminatedSoftwareSystemTestItem> GetAllEliminatedSoftwareSystemTests();
60

61
        public abstract List<AnomalyItem> GetAllAnomalies();
62

63
        public abstract List<EliminatedAnomalyItem> GetAllEliminatedAnomalies();
64

65
        public List<LinkedItem> GetItems(TraceEntity te)
66
        {
24✔
67
            if (te.ID == "SystemRequirement")
24✔
68
            {
7✔
69
                return GetAllSystemRequirements().Cast<LinkedItem>().ToList();
7✔
70
            }
71
            else if (te.ID == "SoftwareRequirement")
17✔
72
            {
6✔
73
                return GetAllSoftwareRequirements().Cast<LinkedItem>().ToList();
6✔
74
            }
75
            else if (te.ID == "SoftwareSystemTest")
11✔
76
            {
1✔
77
                return GetAllSoftwareSystemTests().Cast<LinkedItem>().ToList();
1✔
78
            }
79
            else if (te.ID == "UnitTest")
10✔
80
            {
1✔
81
                return GetAllUnitTests().Cast<LinkedItem>().ToList();
1✔
82
            }
83
            else if (te.ID == "TestResult")
9!
NEW
84
            {
×
NEW
85
                return GetAllTestResults().Cast<LinkedItem>().ToList();
×
86
            }
87
            else if (te.ID == "Risk")
9✔
88
            {
1✔
89
                return GetAllRisks().Cast<LinkedItem>().ToList();
1✔
90
            }
91
            else if (te.ID == "SOUP")
8✔
92
            {
1✔
93
                return GetAllSOUP().Cast<LinkedItem>().ToList();
1✔
94
            }
95
            else if (te.ID == "Anomaly")
7✔
96
            {
1✔
97
                return GetAllAnomalies().Cast<LinkedItem>().ToList();
1✔
98
            }
99
            else if (te.ID == "DocumentationRequirement")
6✔
100
            {
2✔
101
                return GetAllDocumentationRequirements().Cast<LinkedItem>().ToList();
2✔
102
            }
103
            else if (te.ID == "DocContent")
4✔
104
            {
2✔
105
                return GetAllDocContents().Cast<LinkedItem>().ToList();
2✔
106
            }
107
            else if (te.ID == "Eliminated")
2✔
108
            {
1✔
109
                return  GetAllEliminatedRisks().Cast<LinkedItem>()
1✔
110
                        .Concat(GetAllEliminatedSystemRequirements())
1✔
111
                        .Concat(GetAllEliminatedSoftwareRequirements())
1✔
112
                        .Concat(GetAllEliminatedDocumentationRequirements())
1✔
113
                        .Concat(GetAllEliminatedSoftwareSystemTests())
1✔
114
                        .Concat(GetAllEliminatedAnomalies())
1✔
115
                        .Concat(GetAllEliminatedDocContents())
1✔
116
                        .Concat(GetAllEliminatedSOUP())
1✔
117
                        .Concat(GetAllEliminatedUnitTests())
1✔
118
                        .Concat(GetAllEliminatedTestResults())
1✔
119
                        .ToList();
1✔
120
            }
121
            else
122
            {
1✔
123
                throw new Exception($"No datasource available for unknown trace entity: {te.ID}");
1✔
124
            }
125
        }
23✔
126

127
        public SOUPItem GetSOUP(string id)
128
        {
3✔
129
            List<SOUPItem> list = GetAllSOUP();
3✔
130
            return list.Find(f => (f.ItemID == id));
6✔
131
        }
3✔
132

133
        public EliminatedSOUPItem GetEliminatedSOUP(string id)
134
        {
1✔
135
            List<EliminatedSOUPItem> list = GetAllEliminatedSOUP();
1✔
136
            return list.Find(f => (f.ItemID == id));
2✔
137
        }
1✔
138

139
        public RiskItem GetRisk(string id)
140
        {
3✔
141
            List<RiskItem> list = GetAllRisks();
3✔
142
            return list.Find(f => (f.ItemID == id));
6✔
143
        }
3✔
144

145
        public EliminatedRiskItem GetEliminatedRisk(string id)
146
        {
1✔
147
            List<EliminatedRiskItem> list = GetAllEliminatedRisks();
1✔
148
            return list.Find(f => (f.ItemID == id));
2✔
149
        }
1✔
150

151
        public UnitTestItem GetUnitTest(string id)
152
        {
3✔
153
            var items = GetAllUnitTests();
3✔
154
            return items.Find(f => (f.ItemID == id));
7✔
155
        }
3✔
156

157
        public EliminatedUnitTestItem GetEliminatedUnitTest(string id)
NEW
158
        {
×
NEW
159
            var items = GetAllEliminatedUnitTests();
×
NEW
160
            return items.Find(f => (f.ItemID == id));
×
NEW
161
        }
×
162

163
        public RequirementItem GetSoftwareRequirement(string id)
164
        {
3✔
165
            var reqs = GetAllSoftwareRequirements();
3✔
166
            return reqs.Find(f => (f.ItemID == id));
6✔
167
        }
3✔
168

169
        public EliminatedRequirementItem GetEliminatedSoftwareRequirement(string id)
170
        {
1✔
171
            var reqs = GetAllEliminatedSoftwareRequirements();
1✔
172
            return reqs.Find(f => (f.ItemID == id));
2✔
173
        }
1✔
174

175
        public RequirementItem GetSystemRequirement(string id)
176
        {
3✔
177
            var reqs = GetAllSystemRequirements();
3✔
178
            return reqs.Find(f => (f.ItemID == id));
6✔
179
        }
3✔
180

181
        public EliminatedRequirementItem GetEliminatedSystemRequirement(string id)
182
        {
1✔
183
            var reqs = GetAllEliminatedSystemRequirements();
1✔
184
            return reqs.Find(f => (f.ItemID == id));
2✔
185
        }
1✔
186

187
        public RequirementItem GetDocumentationRequirement(string id)
188
        {
3✔
189
            var reqs = GetAllDocumentationRequirements();
3✔
190
            return reqs.Find(f => (f.ItemID == id));
6✔
191
        }
3✔
192

193
        public EliminatedRequirementItem GetEliminatedDocumentationRequirement(string id)
194
        {
1✔
195
            var reqs = GetAllEliminatedDocumentationRequirements();
1✔
196
            return reqs.Find(f => (f.ItemID == id));
2✔
197
        }
1✔
198

199
        public DocContentItem GetDocContent(string id)
200
        {
3✔
201
            var items = GetAllDocContents();
3✔
202
            return items.Find(f => (f.ItemID == id));
6✔
203
        }
3✔
204

205
        public EliminatedDocContentItem GetEliminatedDocContent(string id)
206
        {
1✔
207
            var items = GetAllEliminatedDocContents();
1✔
208
            return items.Find(f => (f.ItemID == id));
2✔
209
        }
1✔
210

211
        public SoftwareSystemTestItem GetSoftwareSystemTest(string id)
212
        {
3✔
213
            var items = GetAllSoftwareSystemTests();
3✔
214
            return items.Find(f => (f.ItemID == id));
6✔
215
        }
3✔
216

217
        public EliminatedSoftwareSystemTestItem GetEliminatedSoftwareSystemTestItem(string id)
218
        {
1✔
219
            var items = GetAllEliminatedSoftwareSystemTests();
1✔
220
            return items.Find(f => (f.ItemID == id));
2✔
221
        }
1✔
222

223
        public AnomalyItem GetAnomaly(string id)
224
        {
3✔
225
            var items = GetAllAnomalies();
3✔
226
            return items.Find(f => (f.ItemID == id));
6✔
227
        }
3✔
228

229
        public EliminatedAnomalyItem GetEliminatedAnomaly(string id)
230
        {
1✔
231
            var items = GetAllEliminatedAnomalies();
1✔
232
            return items.Find(f => (f.ItemID == id));
2✔
233
        }
1✔
234

235
        public Item GetItem(string id) //this will not return eliminated items
236
        {
21✔
237
            var sreq = GetAllSoftwareRequirements();
21✔
238
            int idx = -1;
21✔
239
            if ((idx = sreq.FindIndex(o => o.ItemID == id)) >= 0)
62✔
240
            {
1✔
241
                return sreq[idx];
1✔
242
            }
243
            sreq = GetAllSystemRequirements();
20✔
244
            if ((idx = sreq.FindIndex(o => o.ItemID == id)) >= 0)
56✔
245
            {
11✔
246
                return sreq[idx];
11✔
247
            }
248
            sreq = GetAllDocumentationRequirements();
9✔
249
            if ((idx = sreq.FindIndex(o => o.ItemID == id)) >= 0)
26✔
250
            {
1✔
251
                return sreq[idx];
1✔
252
            }
253
            var dcont = GetAllDocContents();
8✔
254
            if ((idx = dcont.FindIndex(o => o.ItemID == id)) >= 0)
23✔
255
            {
1✔
256
                return dcont[idx];
1✔
257
            }
258
            var tcase = GetAllSoftwareSystemTests();
7✔
259
            if ((idx = tcase.FindIndex(o => o.ItemID == id)) >= 0)
20✔
260
            {
1✔
261
                return tcase[idx];
1✔
262
            }
263
            var utest = GetAllUnitTests();
6✔
264
            if ((idx = utest.FindIndex(o => o.ItemID == id)) >= 0)
25✔
265
            {
1✔
266
                return utest[idx];
1✔
267
            }
268
            var testResults = GetAllTestResults();
5✔
269
            if ((idx = testResults.FindIndex(o => o.ItemID == id)) >= 0)
5!
NEW
270
            {
×
NEW
271
                return testResults[idx];
×
272
            }
273
            var anomalies = GetAllAnomalies();
5✔
274
            if ((idx = anomalies.FindIndex(o => o.ItemID == id)) >= 0)
14✔
275
            {
1✔
276
                return anomalies[idx];
1✔
277
            }
278
            var SOUPs = GetAllSOUP();
4✔
279
            if ((idx = SOUPs.FindIndex(o => o.ItemID == id)) >= 0)
11✔
280
            {
1✔
281
                return SOUPs[idx];
1✔
282
            }
283
            var Risks = GetAllRisks();
3✔
284
            if ((idx = Risks.FindIndex(o => o.ItemID == id)) >= 0)
8✔
285
            {
1✔
286
                return Risks[idx];
1✔
287
            }
288
            return null;
2✔
289
        }
21✔
290

291
        public string GetConfigValue(string key)
292
        {
2✔
293
            return configuration.ConfigVals.GetValue(key);
2✔
294
        }
2✔
295

296
        public string GetTemplateFile(string fileName)
297
        {
1✔
298
            return fileSystem.File.ReadAllText(fileSystem.Path.Join(configuration.TemplateDir, fileName));
1✔
299
        }
1✔
300

301
        public Stream GetFileStreamFromTemplateDir(string fileName)
302
        {
5✔
303
            var stream = fileSystem.FileStream.New(fileSystem.Path.Join(configuration.TemplateDir, fileName), FileMode.Open);
5✔
304
            return stream;
5✔
305
        }
5✔
306

307
        public string ToJSON()
308
        {
1✔
309
            CheckpointDataStorage storage = new CheckpointDataStorage();
1✔
310
            storage.SystemRequirements = GetAllSystemRequirements();
1✔
311
            storage.SoftwareRequirements = GetAllSoftwareRequirements();
1✔
312
            storage.DocumentationRequirements = GetAllDocumentationRequirements();
1✔
313
            storage.DocContents = GetAllDocContents();
1✔
314
            storage.Risks = GetAllRisks().ToList();
1✔
315
            storage.UnitTests = GetAllUnitTests();
1✔
316
            storage.SoftwareSystemTests = GetAllSoftwareSystemTests();
1✔
317
            storage.SOUPs = GetAllSOUP();
1✔
318
            storage.Anomalies = GetAllAnomalies();
1✔
319
            storage.EliminatedSystemRequirements = GetAllEliminatedSystemRequirements();
1✔
320
            storage.EliminatedSoftwareRequirements = GetAllEliminatedSoftwareRequirements();
1✔
321
            storage.EliminatedDocumentationRequirements = GetAllEliminatedDocumentationRequirements();
1✔
322
            storage.EliminatedSoftwareSystemTests = GetAllEliminatedSoftwareSystemTests();
1✔
323
            storage.EliminatedRisks = GetAllEliminatedRisks();
1✔
324

325
            var options = new JsonSerializerOptions { WriteIndented = true };
1✔
326
            return JsonSerializer.Serialize(storage, options);
1✔
327
        }
1✔
328
    }
329
}
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