• 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

54.72
/Rdmp.Core/DataLoad/Engine/LoadExecution/Components/Runtime/ExecuteSqlFileRuntimeTask.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.IO;
9
using Rdmp.Core.Curation.Data.DataLoad;
10
using Rdmp.Core.DataFlowPipeline;
11
using Rdmp.Core.DataLoad.Engine.Job;
12
using Rdmp.Core.DataLoad.Engine.LoadExecution.Components.Arguments;
13
using Rdmp.Core.ReusableLibraryCode.Checks;
14
using Rdmp.Core.ReusableLibraryCode.Progress;
15

16
namespace Rdmp.Core.DataLoad.Engine.LoadExecution.Components.Runtime;
17

18
/// <summary>
19
/// RuntimeTask that executes a single .sql file specified by the user in a ProcessTask with ProcessTaskType SQLFile.
20
/// </summary>
21
public class ExecuteSqlFileRuntimeTask : RuntimeTask
22
{
23
    public string Filepath;
24
    private IProcessTask _task;
25

26
    private LoadStage _loadStage;
27

28
    public ExecuteSqlFileRuntimeTask(IProcessTask task, RuntimeArgumentCollection args) : base(task, args)
18✔
29
    {
30
        _task = task;
18✔
31
        Filepath = task.Path;
18✔
32
    }
18✔
33

34
    public override ExitCodeType Run(IDataLoadJob job, GracefulCancellationToken cancellationToken)
35
    {
36
        var db = RuntimeArguments.StageSpecificArguments.DbInfo;
12✔
37
        _loadStage = RuntimeArguments.StageSpecificArguments.LoadStage;
12✔
38

39
        if (!Exists())
12!
40
            throw new Exception($"The sql file {Filepath} does not exist");
×
41

42
        string commandText;
43
        try
44
        {
45
            commandText = File.ReadAllText(Filepath);
12✔
46

47
            // Any string arguments refer to tokens that are to be replaced in the SQL file
48
            foreach (var kvp in RuntimeArguments.GetAllArgumentsOfType<string>())
24!
49
            {
50
                var value = kvp.Value;
×
51

52
                if (value.Contains("<DatabaseServer>"))
×
53
                    value = value.Replace("<DatabaseServer>",
×
54
                        RuntimeArguments.StageSpecificArguments.DbInfo.Server.Name);
×
55

56
                if (value.Contains("<DatabaseName>"))
×
57
                    value = value.Replace("<DatabaseName>",
×
58
                        RuntimeArguments.StageSpecificArguments.DbInfo.GetRuntimeName());
×
59

60
                commandText = commandText.Replace($"##{kvp.Key}##", value);
×
61
            }
62
        }
12✔
63
        catch (Exception e)
×
64
        {
65
            throw new Exception($"Could not read the sql file at {Filepath}: {e}");
×
66
        }
67

68
        job.OnNotify(this, new NotifyEventArgs(ProgressEventType.Information,
12✔
69
            $"Executing script {Filepath} ( against {db})"));
12✔
70
        var executer = new ExecuteSqlInDleStage(job, _loadStage);
12✔
71
        return executer.Execute(commandText, db);
12✔
72
    }
73

74

75
    public override bool Exists() => File.Exists(Filepath);
12✔
76

77
    public override void Abort(IDataLoadEventListener postLoadEventListener)
78
    {
79
    }
×
80

81
    public override void LoadCompletedSoDispose(ExitCodeType exitCode, IDataLoadEventListener postLoadEventListener)
82
    {
83
    }
4✔
84

85
    public override void Check(ICheckNotifier notifier)
86
    {
87
        if (string.IsNullOrWhiteSpace(Filepath))
18✔
88
        {
89
            notifier.OnCheckPerformed(
6✔
90
                new CheckEventArgs($"ExecuteSqlFileTask {_task} does not have a path specified",
6✔
91
                    CheckResult.Fail));
6✔
92
            return;
×
93
        }
94

95
        if (!File.Exists(Filepath))
12!
96
            notifier.OnCheckPerformed(
×
97
                new CheckEventArgs(
×
98
                    $"File '{Filepath}' does not exist! (the only time this would be legal is if you have an exe or a freaky plugin that creates this file)",
×
99
                    CheckResult.Warning));
×
100
        else
101
            notifier.OnCheckPerformed(new CheckEventArgs($"Found File '{Filepath}'",
12✔
102
                CheckResult.Success));
12✔
103
    }
12✔
104
}
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

© 2025 Coveralls, Inc