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

MeindertN / RoboClerk / 14626972474

23 Apr 2025 07:59PM UTC coverage: 78.447% (-4.1%) from 82.581%
14626972474

push

github

MeindertN
WIP: Fixed existing tests

1142 of 1418 branches covered (80.54%)

Branch coverage included in aggregate %.

1 of 1 new or added line in 1 file covered. (100.0%)

179 existing lines in 5 files now uncovered.

3728 of 4790 relevant lines covered (77.83%)

103.44 hits per line

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

80.89
/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;
37✔
14
        protected readonly IFileSystem fileSystem = null;
37✔
15
        protected static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
1✔
16

17
        public DataSourcesBase(IConfiguration configuration, IFileSystem fileSystem)
37✔
18
        {
37✔
19
            this.configuration = configuration;
37✔
20
            this.fileSystem = fileSystem;
37✔
21
        }
37✔
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<UnitTestItem> GetAllUnitTests();
36

37
        public abstract List<RequirementItem> GetAllSoftwareRequirements();
38

39
        public abstract List<EliminatedRequirementItem> GetAllEliminatedSoftwareRequirements();
40

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

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

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

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

49
        public abstract List<DocContentItem> GetAllDocContents();
50

51
        public abstract List<EliminatedDocContentItem> GetAllEliminatedDocContents();
52

53
        public abstract List<SoftwareSystemTestItem> GetAllSoftwareSystemTests();
54

55
        public abstract List<EliminatedSoftwareSystemTestItem> GetAllEliminatedSoftwareSystemTests();
56

57
        public abstract List<AnomalyItem> GetAllAnomalies();
58

59
        public abstract List<EliminatedAnomalyItem> GetAllEliminatedAnomalies();
60

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

117
        public SOUPItem GetSOUP(string id)
118
        {
3✔
119
            List<SOUPItem> list = GetAllSOUP();
3✔
120
            return list.Find(f => (f.ItemID == id));
6✔
121
        }
3✔
122

123
        public EliminatedSOUPItem GetEliminatedSOUP(string id)
UNCOV
124
        {
×
UNCOV
125
            List<EliminatedSOUPItem> list = GetAllEliminatedSOUP();
×
UNCOV
126
            return list.Find(f => (f.ItemID == id));
×
UNCOV
127
        }
×
128

129
        public RiskItem GetRisk(string id)
130
        {
3✔
131
            List<RiskItem> list = GetAllRisks();
3✔
132
            return list.Find(f => (f.ItemID == id));
6✔
133
        }
3✔
134

135
        public EliminatedRiskItem GetEliminatedRisk(string id)
UNCOV
136
        {
×
UNCOV
137
            List<EliminatedRiskItem> list = GetAllEliminatedRisks();
×
UNCOV
138
            return list.Find(f => (f.ItemID == id));
×
UNCOV
139
        }
×
140

141
        public UnitTestItem GetUnitTest(string id)
142
        {
3✔
143
            var items = GetAllUnitTests();
3✔
144
            return items.Find(f => (f.ItemID == id));
7✔
145
        }
3✔
146

147
        public RequirementItem GetSoftwareRequirement(string id)
148
        {
3✔
149
            var reqs = GetAllSoftwareRequirements();
3✔
150
            return reqs.Find(f => (f.ItemID == id));
6✔
151
        }
3✔
152

153
        public EliminatedRequirementItem GetEliminatedSoftwareRequirement(string id)
UNCOV
154
        {
×
UNCOV
155
            var reqs = GetAllEliminatedSoftwareRequirements();
×
UNCOV
156
            return reqs.Find(f => (f.ItemID == id));
×
UNCOV
157
        }
×
158

159
        public RequirementItem GetSystemRequirement(string id)
160
        {
3✔
161
            var reqs = GetAllSystemRequirements();
3✔
162
            return reqs.Find(f => (f.ItemID == id));
6✔
163
        }
3✔
164

165
        public EliminatedRequirementItem GetEliminatedSystemRequirement(string id)
UNCOV
166
        {
×
UNCOV
167
            var reqs = GetAllEliminatedSoftwareRequirements();
×
UNCOV
168
            return reqs.Find(f => (f.ItemID == id));
×
UNCOV
169
        }
×
170

171
        public RequirementItem GetDocumentationRequirement(string id)
172
        {
3✔
173
            var reqs = GetAllDocumentationRequirements();
3✔
174
            return reqs.Find(f => (f.ItemID == id));
6✔
175
        }
3✔
176

177
        public EliminatedRequirementItem GetEliminatedDocumentationRequirement(string id)
UNCOV
178
        {
×
UNCOV
179
            var reqs = GetAllEliminatedSoftwareRequirements();
×
UNCOV
180
            return reqs.Find(f => (f.ItemID == id));
×
UNCOV
181
        }
×
182

183
        public DocContentItem GetDocContent(string id)
184
        {
3✔
185
            var items = GetAllDocContents();
3✔
186
            return items.Find(f => (f.ItemID == id));
6✔
187
        }
3✔
188

189
        public EliminatedDocContentItem GetEliminatedDocContent(string id)
UNCOV
190
        {
×
UNCOV
191
            var items = GetAllEliminatedDocContents();
×
UNCOV
192
            return items.Find(f => (f.ItemID == id));
×
UNCOV
193
        }
×
194

195
        public SoftwareSystemTestItem GetSoftwareSystemTest(string id)
196
        {
3✔
197
            var items = GetAllSoftwareSystemTests();
3✔
198
            return items.Find(f => (f.ItemID == id));
6✔
199
        }
3✔
200

201
        public EliminatedSoftwareSystemTestItem GetEliminatedSoftwareSystemTestItem(string id)
UNCOV
202
        {
×
UNCOV
203
            var items = GetAllEliminatedSoftwareSystemTests();
×
UNCOV
204
            return items.Find(f => (f.ItemID == id));
×
UNCOV
205
        }
×
206

207
        public AnomalyItem GetAnomaly(string id)
208
        {
3✔
209
            var items = GetAllAnomalies();
3✔
210
            return items.Find(f => (f.ItemID == id));
6✔
211
        }
3✔
212

213
        public EliminatedAnomalyItem GetEliminatedAnomaly(string id)
UNCOV
214
        {
×
UNCOV
215
            var items = GetAllEliminatedAnomalies();
×
UNCOV
216
            return items.Find(f => (f.ItemID == id));
×
UNCOV
217
        }
×
218

219
        public Item GetItem(string id) //this will not return eliminated items
220
        {
21✔
221
            var sreq = GetAllSoftwareRequirements();
21✔
222
            int idx = -1;
21✔
223
            if ((idx = sreq.FindIndex(o => o.ItemID == id)) >= 0)
62✔
224
            {
1✔
225
                return sreq[idx];
1✔
226
            }
227
            sreq = GetAllSystemRequirements();
20✔
228
            if ((idx = sreq.FindIndex(o => o.ItemID == id)) >= 0)
56✔
229
            {
11✔
230
                return sreq[idx];
11✔
231
            }
232
            sreq = GetAllDocumentationRequirements();
9✔
233
            if ((idx = sreq.FindIndex(o => o.ItemID == id)) >= 0)
26✔
234
            {
1✔
235
                return sreq[idx];
1✔
236
            }
237
            var dcont = GetAllDocContents();
8✔
238
            if ((idx = dcont.FindIndex(o => o.ItemID == id)) >= 0)
23✔
239
            {
1✔
240
                return dcont[idx];
1✔
241
            }
242
            var tcase = GetAllSoftwareSystemTests();
7✔
243
            if ((idx = tcase.FindIndex(o => o.ItemID == id)) >= 0)
20✔
244
            {
1✔
245
                return tcase[idx];
1✔
246
            }
247
            var utest = GetAllUnitTests();
6✔
248
            if ((idx = utest.FindIndex(o => o.ItemID == id)) >= 0)
25✔
249
            {
1✔
250
                return utest[idx];
1✔
251
            }
252
            var anomalies = GetAllAnomalies();
5✔
253
            if ((idx = anomalies.FindIndex(o => o.ItemID == id)) >= 0)
14✔
254
            {
1✔
255
                return anomalies[idx];
1✔
256
            }
257
            var SOUPs = GetAllSOUP();
4✔
258
            if ((idx = SOUPs.FindIndex(o => o.ItemID == id)) >= 0)
11✔
259
            {
1✔
260
                return SOUPs[idx];
1✔
261
            }
262
            var Risks = GetAllRisks();
3✔
263
            if ((idx = Risks.FindIndex(o => o.ItemID == id)) >= 0)
8✔
264
            {
1✔
265
                return Risks[idx];
1✔
266
            }
267
            return null;
2✔
268
        }
21✔
269

270
        public string GetConfigValue(string key)
271
        {
2✔
272
            return configuration.ConfigVals.GetValue(key);
2✔
273
        }
2✔
274

275
        public string GetTemplateFile(string fileName)
276
        {
1✔
277
            return fileSystem.File.ReadAllText(fileSystem.Path.Join(configuration.TemplateDir, fileName));
1✔
278
        }
1✔
279

280
        public Stream GetFileStreamFromTemplateDir(string fileName)
281
        {
5✔
282
            var stream = fileSystem.FileStream.New(fileSystem.Path.Join(configuration.TemplateDir, fileName), FileMode.Open);
5✔
283
            return stream;
5✔
284
        }
5✔
285

286
        public string ToJSON()
287
        {
1✔
288
            CheckpointDataStorage storage = new CheckpointDataStorage();
1✔
289
            storage.SystemRequirements = GetAllSystemRequirements();
1✔
290
            storage.SoftwareRequirements = GetAllSoftwareRequirements();
1✔
291
            storage.DocumentationRequirements = GetAllDocumentationRequirements();
1✔
292
            storage.DocContents = GetAllDocContents();
1✔
293
            storage.Risks = GetAllRisks().ToList();
1✔
294
            storage.UnitTests = GetAllUnitTests();
1✔
295
            storage.SoftwareSystemTests = GetAllSoftwareSystemTests();
1✔
296
            storage.SOUPs = GetAllSOUP();
1✔
297
            storage.Anomalies = GetAllAnomalies();
1✔
298
            storage.EliminatedSystemRequirements = GetAllEliminatedSystemRequirements();
1✔
299
            storage.EliminatedSoftwareRequirements = GetAllEliminatedSoftwareRequirements();
1✔
300
            storage.EliminatedDocumentationRequirements = GetAllEliminatedDocumentationRequirements();
1✔
301
            storage.EliminatedSoftwareSystemTests = GetAllEliminatedSoftwareSystemTests();
1✔
302
            storage.EliminatedRisks = GetAllEliminatedRisks();
1✔
303

304
            var options = new JsonSerializerOptions { WriteIndented = true };
1✔
305
            return JsonSerializer.Serialize(storage, options);
1✔
306
        }
1✔
307
    }
308
}
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