Skip to content

Commit

Permalink
SLVS-1821 Make RepoInfo just a record
Browse files Browse the repository at this point in the history
  • Loading branch information
gabriela-trutan-sonarsource committed Feb 4, 2025
1 parent d2ffd38 commit 3a38725
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 12 deletions.
10 changes: 3 additions & 7 deletions src/Core.UnitTests/LanguageTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ public void Language_Ctor_ArgChecks()
var fileSuffix = "suffix";
var repoInfos = repoInfo;
var serverLanguage = new SonarQubeLanguage("serverKey", "serverName");
RepoInfo defaultRepo = default;

// Act + Assert
// Nulls
Expand All @@ -49,14 +48,11 @@ public void Language_Ctor_ArgChecks()
act = () => new Language(name, key, null, repoInfos, settingsFileName: fileSuffix);
act.Should().ThrowExactly<ArgumentNullException>().And.ParamName.Should().Be("serverLanguage");

act = () => new Language(name, key, serverLanguage, defaultRepo, settingsFileName: fileSuffix);
act.Should().ThrowExactly<ArgumentException>().WithMessage("repoInfo");
act = () => new Language(name, key, serverLanguage, null, settingsFileName: fileSuffix);
act.Should().ThrowExactly<ArgumentNullException>().And.ParamName.Should().Be("repoInfo");

act = () => new Language(name, key, serverLanguage, repoInfos, securityRepoInfo: null, settingsFileName: fileSuffix);
act.Should().NotThrow<ArgumentException>();

act = () => new Language(name, key, serverLanguage, repoInfos, defaultRepo, settingsFileName: fileSuffix);
act.Should().ThrowExactly<ArgumentException>().WithMessage("securityRepoInfo");
act.Should().NotThrow<ArgumentNullException>();
}

[TestMethod]
Expand Down
10 changes: 5 additions & 5 deletions src/Core/Language.cs
Original file line number Diff line number Diff line change
Expand Up @@ -107,9 +107,9 @@ public sealed class Language : IEquatable<Language>
public RepoInfo RepoInfo { get; }

/// <summary>
/// The repository info for the security rules (i.e. hotspots) for this language
/// Nullable, the repository info for the security rules (i.e. hotspots) for this language
/// </summary>
public RepoInfo? SecurityRepoInfo { get; }
public RepoInfo SecurityRepoInfo { get; }

/// <summary>
/// Returns whether or not this language is a supported project language.
Expand Down Expand Up @@ -142,7 +142,7 @@ public Language(
string name,
SonarQubeLanguage serverLanguage,
RepoInfo repoInfo,
RepoInfo? securityRepoInfo = null,
RepoInfo securityRepoInfo = null,
string settingsFileName = null)
{
if (string.IsNullOrWhiteSpace(id))
Expand All @@ -159,8 +159,8 @@ public Language(
Name = name;
SettingsFileNameAndExtension = settingsFileName;
ServerLanguage = serverLanguage ?? throw new ArgumentNullException(nameof(serverLanguage));
RepoInfo = repoInfo == default ? throw new ArgumentException(nameof(repoInfo)) : repoInfo;
SecurityRepoInfo = securityRepoInfo != null && securityRepoInfo.Value == default ? throw new ArgumentException(nameof(securityRepoInfo)) : securityRepoInfo;
RepoInfo = repoInfo ?? throw new ArgumentNullException(nameof(repoInfo));
SecurityRepoInfo = securityRepoInfo;
}

#region IEquatable<Language> and Equals
Expand Down

0 comments on commit 3a38725

Please sign in to comment.