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

ParadoxGameConverters / Fronter.NET / 17879782487

20 Sep 2025 12:23PM UTC coverage: 19.243% (+0.2%) from 19.079%
17879782487

Pull #426

github

web-flow
Merge 127dace03 into 07919407c
Pull Request #426: Target playset selection

100 of 702 branches covered (14.25%)

Branch coverage included in aggregate %.

17 of 90 new or added lines in 9 files covered. (18.89%)

4 existing lines in 1 file now uncovered.

571 of 2785 relevant lines covered (20.5%)

9.23 hits per line

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

55.26
/Fronter.NET/Models/Configuration/RequiredFolder.cs
1
using Avalonia.Data;
2
using commonItems;
3
using Fronter.Extensions;
4
using log4net;
5
using System;
6
using System.IO;
7

8
namespace Fronter.Models.Configuration;
9

10
internal sealed class RequiredFolder : RequiredPath {
11
        private static readonly ILog logger = LogManager.GetLogger("Required folder");
×
12
        public RequiredFolder(BufferedReader reader, Config config) {
48✔
13
                this.config = config;
24✔
14

15
                var parser = new Parser();
24✔
16
                RegisterKeys(parser);
24✔
17
                parser.ParseStream(reader);
24✔
18
        }
24✔
19
        private void RegisterKeys(Parser parser) {
24✔
20
                parser.RegisterKeyword("name", reader => Name = reader.GetString());
48✔
21
                parser.RegisterKeyword("tooltip", reader => Tooltip = reader.GetString());
48✔
22
                parser.RegisterKeyword("displayName", reader => DisplayName = reader.GetString());
48✔
23
                parser.RegisterKeyword("mandatory", reader => Mandatory = reader.GetString().Equals("true", StringComparison.OrdinalIgnoreCase));
48✔
24
                parser.RegisterKeyword("outputtable", reader => Outputtable = reader.GetString().Equals("true", StringComparison.OrdinalIgnoreCase));
24✔
25

26
                parser.RegisterKeyword("searchPathType", reader => SearchPathType = reader.GetString());
48✔
27
                parser.RegisterKeyword("steamGameID", reader => SteamGameId = reader.GetString());
36✔
28
                parser.RegisterKeyword("gogGameID", reader => GOGGameId = reader.GetString());
30✔
29
                parser.RegisterKeyword("searchPath", reader => SearchPath = reader.GetString());
36✔
30
                parser.IgnoreAndLogUnregisteredItems();
24✔
31
        }
24✔
32

33
        // If we have folders listed, they are generally required. Override with false in conf file.
34
        public override bool Outputtable { get; protected set; } = true;
24✔
35

36
        public string? SteamGameId { get; private set; }
13✔
37
        public string? GOGGameId { get; private set; }
7✔
38

39
        public override string Value {
40
                get => base.Value;
×
41
                set {
×
42
                        if (!string.IsNullOrEmpty(value) && !Directory.Exists(value)) {
×
43
                                throw new DataValidationException("Directory does not exist!");
×
44
                        }
45

46
                        base.Value = value;
×
47
                        logger.Info($"{TranslationSource.Instance[DisplayName]} set to: {value}");
×
48
                        
NEW
49
                        if (config.TargetPlaysetSelectionEnabled) {
×
NEW
50
                                config.AutoLocatePlaysets();
×
51
                        }
×
52
                }
×
53
        }
54

55
        private readonly Config config;
56
}
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