From 4f79ad0ee0568d93f53d3f545771d5c8cd98cd39 Mon Sep 17 00:00:00 2001 From: M-L-Ml Date: Mon, 21 Apr 2025 19:58:56 +0200 Subject: [PATCH] inplace test --- src/Models/CommitLink.cs | 42 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/src/Models/CommitLink.cs b/src/Models/CommitLink.cs index 3895fa84..dafdc782 100644 --- a/src/Models/CommitLink.cs +++ b/src/Models/CommitLink.cs @@ -97,10 +97,18 @@ namespace SourceGit.Models /// public static List Get(List remotes) { - return remotes - .Select(TryCreateCommitLink) - .Where(cl => cl != null) - .ToList(); + return remotes.Select(remote => + { + + var rr = TryCreateCommitLink(remote); +#if DEBUG + /// Inplace Test + + if (!remote.TryGetVisitURL(out var url)) + Debug.Assert(GetCommitLinkOriginalImplementionForTestPurposes(url) == rr, " checking comparing with initial implementation failed, TODO: delete in future"); +#endif + return rr; + }).Where(cl => cl != null ).ToList(); } #if DEBUG @@ -112,6 +120,32 @@ namespace SourceGit.Models public new bool TryGetVisitURL(out string url) { url = _url; return true; } } + // TODO : delete this after checking the implementation + private static CommitLink? GetCommitLinkOriginalImplementionForTestPurposes(string url) + { + var outs = new List(); + + var trimmedUrl = url; + if (url.EndsWith(".git")) + trimmedUrl = url.Substring(0, url.Length - 4); + + if (url.StartsWith("https://github.com/", StringComparison.Ordinal)) + outs.Add(new($"Github ({trimmedUrl.Substring(19)})", $"{url}/commit/")); + else if (url.StartsWith("https://gitlab.", StringComparison.Ordinal)) + outs.Add(new($"GitLab ({trimmedUrl.Substring(trimmedUrl.Substring(15).IndexOf('/') + 16)})", $"{url}/-/commit/")); + else if (url.StartsWith("https://gitee.com/", StringComparison.Ordinal)) + outs.Add(new($"Gitee ({trimmedUrl.Substring(18)})", $"{url}/commit/")); + else if (url.StartsWith("https://bitbucket.org/", StringComparison.Ordinal)) + outs.Add(new($"BitBucket ({trimmedUrl.Substring(22)})", $"{url}/commits/")); + else if (url.StartsWith("https://codeberg.org/", StringComparison.Ordinal)) + outs.Add(new($"Codeberg ({trimmedUrl.Substring(21)})", $"{url}/commit/")); + else if (url.StartsWith("https://gitea.org/", StringComparison.Ordinal)) + outs.Add(new($"Gitea ({trimmedUrl.Substring(18)})", $"{url}/commit/")); + else if (url.StartsWith("https://git.sr.ht/", StringComparison.Ordinal)) + outs.Add(new($"sourcehut ({trimmedUrl.Substring(18)})", $"{url}/commit/")); + + return outs.FirstOrDefault(); + } static CommitLink() {