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

HicServices / RDMP / 6245535001

20 Sep 2023 07:44AM UTC coverage: 57.013%. First build
6245535001

push

github

web-flow
8.1.0 Release (#1628)

* Bump Newtonsoft.Json from 13.0.1 to 13.0.2

Bumps [Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json) from 13.0.1 to 13.0.2.
- [Release notes](https://github.com/JamesNK/Newtonsoft.Json/releases)
- [Commits](https://github.com/JamesNK/Newtonsoft.Json/compare/13.0.1...13.0.2)

---
updated-dependencies:
- dependency-name: Newtonsoft.Json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump NLog from 5.0.5 to 5.1.0

Bumps [NLog](https://github.com/NLog/NLog) from 5.0.5 to 5.1.0.
- [Release notes](https://github.com/NLog/NLog/releases)
- [Changelog](https://github.com/NLog/NLog/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/NLog/NLog/compare/v5.0.5...v5.1.0)

---
updated-dependencies:
- dependency-name: NLog
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump NLog from 5.0.5 to 5.1.0

* Fix -r flag - should have been --results-directory all along

* Bump Newtonsoft.Json from 13.0.1 to 13.0.2

* Bump YamlDotNet from 12.0.2 to 12.1.0

Bumps [YamlDotNet](https://github.com/aaubry/YamlDotNet) from 12.0.2 to 12.1.0.
- [Release notes](https://github.com/aaubry/YamlDotNet/releases)
- [Commits](https://github.com/aaubry/YamlDotNet/compare/v12.0.2...v12.1.0)

---
updated-dependencies:
- dependency-name: YamlDotNet
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump Moq from 4.18.2 to 4.18.3

Bumps [Moq](https://github.com/moq/moq4) from 4.18.2 to 4.18.3.
- [Release notes](https://github.com/moq/moq4/releases)
- [Changelog](https://github.com/moq/moq4/blob/main/CHANGELOG.md)
- [Commits](https://github.com/moq/moq4/compare/v4.18.2...v4.18.3)

---
updated-dependencies:
- dependency-name: Moq
... (continued)

10732 of 20257 branches covered (0.0%)

Branch coverage included in aggregate %.

48141 of 48141 new or added lines in 1086 files covered. (100.0%)

30685 of 52388 relevant lines covered (58.57%)

7387.88 hits per line

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

64.71
/Rdmp.Core/DataLoad/Engine/LoadExecution/Components/Arguments/RuntimeArgumentCollection.cs
1
// Copyright (c) The University of Dundee 2018-2019
2
// This file is part of the Research Data Management Platform (RDMP).
3
// RDMP is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
4
// RDMP is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
5
// You should have received a copy of the GNU General Public License along with RDMP. If not, see <https://www.gnu.org/licenses/>.
6

7
using System;
8
using System.Collections.Generic;
9
using System.Linq;
10
using Rdmp.Core.Curation.Data.DataLoad;
11

12
namespace Rdmp.Core.DataLoad.Engine.LoadExecution.Components.Arguments;
13

14
/// <summary>
15
/// Stores all the user defined arguments of a ProcessTask (See DemandsInitializationAttribute) and all the runtime arguments for the stage it is in
16
/// within the data load (See StageArgs).  For example an IAttacher of type DelimitedFlatFileAttacher could be declared as a ProcessTask in the Mounting
17
/// stage of a DLE configuration (LoadMetadata).  At runtime a RuntimeArgumentCollection would be created with the user specified IArguments (e.g. Delimiter
18
/// is comma, file pattern is *.csv) and the IStageArgs (where RAW database to load is and what the ForLoading directory is where the flat files can be found).
19
/// 
20
/// <para>This class is used by RuntimeTask to hydrate the hosted instance (IAttacher, IDataProvider, IMutilateDataTables etc) dictated by the user (in the
21
/// ProcessTask).</para>
22
/// </summary>
23
public class RuntimeArgumentCollection
24
{
25
    public IStageArgs StageSpecificArguments { get; set; }
946✔
26

27
    public HashSet<IArgument> Arguments { get; private set; }
5,014✔
28

29
    /// <summary>
30
    /// Transition from the arguments defined in the data source (Catalogue Database) into a runtime state
31
    /// </summary>
32
    public RuntimeArgumentCollection(IArgument[] args, IStageArgs stageSpecificArgs)
192✔
33
    {
34
        StageSpecificArguments = stageSpecificArgs;
192✔
35
        Arguments = new HashSet<IArgument>();
192✔
36

37
        if (!args.Any())
192✔
38
            return;
50✔
39

40
        foreach (var processTaskArgument in args)
5,028✔
41
            AddArgument(processTaskArgument);
2,372✔
42
    }
142✔
43

44
    public void IterateAllArguments(Func<string, object, bool> func)
45
    {
46
        foreach (var arg in Arguments) func(arg.Name, arg.GetValueAsSystemType());
10✔
47

48
        if (StageSpecificArguments == null)
2!
49
            return;
2✔
50

51
        foreach (var arg in StageSpecificArguments.ToDictionary())
×
52
            func(arg.Key, arg.Value);
×
53
    }
×
54

55
    public void AddArgument(IArgument processTaskArgument)
56
    {
57
        Arguments.Add(processTaskArgument);
2,372✔
58
    }
2,372✔
59

60
    public object GetCustomArgumentValue(string name)
61
    {
62
        var first = Arguments.SingleOrDefault(a => a.Name.Equals(name)) ??
46,976✔
63
                    throw new KeyNotFoundException($"Argument {name} was missing");
2,432✔
64
        try
65
        {
66
            return first.GetValueAsSystemType();
2,368✔
67
        }
68
        catch (Exception e)
×
69
        {
70
            throw new Exception(
×
71
                $"Could not convert value '{first.Value}' into a {first.GetSystemType().FullName} for argument '{first.Name}'",
×
72
                e);
×
73
        }
74
    }
2,368✔
75

76
    public IEnumerable<KeyValuePair<string, object>> GetAllArguments()
77
    {
78
        if (StageSpecificArguments != null)
×
79
            foreach (var kvp in StageSpecificArguments.ToDictionary())
×
80
                yield return kvp;
×
81

82
        foreach (var argument in Arguments)
×
83
            yield return new KeyValuePair<string, object>(argument.Name, argument.GetValueAsSystemType());
×
84
    }
×
85

86
    public IEnumerable<KeyValuePair<string, T>> GetAllArgumentsOfType<T>()
87
    {
88
        if (StageSpecificArguments != null)
16✔
89
            foreach (var kvp in StageSpecificArguments.ToDictionary())
96✔
90
                if (kvp.Value.GetType() == typeof(T))
36!
91
                    yield return new KeyValuePair<string, T>(kvp.Key, (T)kvp.Value);
×
92

93
        foreach (var argument in Arguments)
40✔
94
            if (argument.GetSystemType() == typeof(T))
4✔
95
                yield return new KeyValuePair<string, T>(argument.Name, (T)argument.GetValueAsSystemType());
4✔
96
    }
16✔
97
}
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