Skip to content

Commit

Permalink
add test
Browse files Browse the repository at this point in the history
  • Loading branch information
qdraw committed Mar 14, 2024
1 parent 5309c1a commit 6b5ad9a
Show file tree
Hide file tree
Showing 2 changed files with 168 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -85,11 +85,12 @@ internal string Parse(string json, string? latestVersion)
internal static string ConvertMarkdownLinkToHtml(string markdown)
{
// Regular expression to match Markdown links
// [Link text Here](https://link-url-here.org)
const string pattern = @"\[(.*?)\]\((.*?)\)";

// Replace Markdown links with HTML anchor tags
return Regex.Replace(markdown, pattern,
"<a href=\"$2\">$1</a>", RegexOptions.None,
"<a target=\"_blank\" ref=\"nofollow\" href=\"$2\">$1</a>", RegexOptions.None,
TimeSpan.FromMilliseconds(100));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ public async Task SpecificVersionMessage_CacheEnabledGetValue_SetInCache()
.BuildServiceProvider();

const string example =
"{\n \"v0.6.0\" : {\n \"en\": \"Content\"\n },\n \"v0.6.0-beta.0\" : {\n \"en\": \"Content\"\n }\n}";
"{\n \"0.6.0\" : {\n \"en\": \"Content\"\n },\n \"0.6.0-beta.0\" : {\n \"en\": \"Content\"\n }\n}";

var memoryCache = serviceProvider.GetRequiredService<IMemoryCache>();

Expand Down Expand Up @@ -157,4 +157,169 @@ public async Task SpecificVersionMessage_CacheEnabledGetValue_SetInCache()
Assert.IsNotNull(result);
Assert.AreEqual(example, result);
}

[TestMethod]
public void ParseTest_String_Empty()
{
var fakeIHttpProvider = new FakeIHttpProvider();

var httpClientHelper = new HttpClientHelper(fakeIHttpProvider, null, new FakeIWebLogger());

var specificVersionReleaseInfo =
new SpecificVersionReleaseInfo(httpClientHelper,
new AppSettings { AddMemoryCache = true }, null,
new FakeIWebLogger());

var result = specificVersionReleaseInfo.Parse(string.Empty, "0.6.0");
Assert.AreEqual(string.Empty, result);
}

[TestMethod]
public void ParseTest_VersionNotFound()
{
var fakeIHttpProvider = new FakeIHttpProvider();

var httpClientHelper = new HttpClientHelper(fakeIHttpProvider, null, new FakeIWebLogger());
const string example =
"{\n \"0.6.0\" : {\n \"en\": \"Content\"\n },\n \"0.6.0-beta.0\" : {\n \"en\": \"Content\"\n }\n}";


var specificVersionReleaseInfo =
new SpecificVersionReleaseInfo(httpClientHelper,
new AppSettings { AddMemoryCache = true }, null,
new FakeIWebLogger());

var result = specificVersionReleaseInfo.Parse(example, "0.1.0");
Assert.AreEqual(string.Empty, result);
}

[TestMethod]
public void ParseTest_VersionFound()
{
var fakeIHttpProvider = new FakeIHttpProvider();

var httpClientHelper = new HttpClientHelper(fakeIHttpProvider, null, new FakeIWebLogger());
const string example =
"{\n \"0.6.0\" : {\n \"en\": \"Content\"\n },\n \"0.6.0-beta.0\" : {\n \"en\": \"Content\"\n }\n}";


var specificVersionReleaseInfo =
new SpecificVersionReleaseInfo(httpClientHelper,
new AppSettings { AddMemoryCache = true }, null,
new FakeIWebLogger());

var result = specificVersionReleaseInfo.Parse(example, "0.6.0-beta.0");
Assert.AreEqual("Content", result);
}

[TestMethod]
public void ParseTest_InvalidJson()
{
var fakeIHttpProvider = new FakeIHttpProvider();

var httpClientHelper = new HttpClientHelper(fakeIHttpProvider, null, new FakeIWebLogger());
const string example =
"{\n \"0.6.0\" : {\n --";


var specificVersionReleaseInfo =
new SpecificVersionReleaseInfo(httpClientHelper,
new AppSettings { AddMemoryCache = true }, null,
new FakeIWebLogger());

var result = specificVersionReleaseInfo.Parse(example, "0.6.0-beta.0");
Assert.AreEqual(string.Empty, result);
}

[TestMethod]
public void ParseTest_LanguageKeyNotFound()
{
var fakeIHttpProvider = new FakeIHttpProvider();

var httpClientHelper = new HttpClientHelper(fakeIHttpProvider, null, new FakeIWebLogger());
const string example =
"{\n \"0.6.0\" : {\n }\n}";

var specificVersionReleaseInfo =
new SpecificVersionReleaseInfo(httpClientHelper,
new AppSettings { AddMemoryCache = true }, null,
new FakeIWebLogger());

var result = specificVersionReleaseInfo.Parse(example, "0.6.0");
Assert.AreEqual(string.Empty, result);
}

[TestMethod]
public void ParseTest_VersionFound_HtmlLink()
{
var fakeIHttpProvider = new FakeIHttpProvider();

var httpClientHelper = new HttpClientHelper(fakeIHttpProvider, null, new FakeIWebLogger());
const string example =
"{\n \"0.6.0\" : {\n \"en\": \"[Link text Here](https://link-url-here.org)\"\n },\n \"0.6.0-beta.0\" : {\n \"en\": \"Content\"\n }\n}";


var specificVersionReleaseInfo =
new SpecificVersionReleaseInfo(httpClientHelper,
new AppSettings { AddMemoryCache = true }, null,
new FakeIWebLogger());

var result = specificVersionReleaseInfo.Parse(example, "0.6.0");
Assert.AreEqual(
"<a target=\"_blank\" ref=\"nofollow\" href=\"https://link-url-here.org\">Link text Here</a>",
result);
}

[TestMethod]
public void ConvertMarkdownLinkToHtml_Test()
{
var markdownLinkToHtml = SpecificVersionReleaseInfo.ConvertMarkdownLinkToHtml(
"Content [Link text Here](https://link-url-here.org) " +
"[link1](https://example.com)");

Assert.AreEqual(
"Content <a target=\"_blank\" ref=\"nofollow\" href=\"https://link-url-here.org\">Link text Here</a> " +
"<a target=\"_blank\" ref=\"nofollow\" href=\"https://example.com\">link1</a>",
markdownLinkToHtml);
}

[TestMethod]
public async Task QuerySpecificVersionInfo_GetResult()
{
const string example =
"{\n \"0.6.0\" : {\n \"en\": \"Content\"\n },\n \"0.6.0-beta.0\" : {\n \"en\": \"Content\"\n }\n}";

var fakeIHttpProvider = new FakeIHttpProvider(new Dictionary<string, HttpContent>
{
// Mocking the response from the fake HTTP provider
{
"https://" + SpecificVersionReleaseInfo.SpecificVersionReleaseInfoUrl,
new StringContent(example)
}
});

var httpClientHelper = new HttpClientHelper(fakeIHttpProvider, null, new FakeIWebLogger());
var specificVersionReleaseInfo =
new SpecificVersionReleaseInfo(httpClientHelper, null, null,
new FakeIWebLogger());

var result = await specificVersionReleaseInfo.QuerySpecificVersionInfo();

Assert.AreEqual(example, result);
}

[TestMethod]
public async Task QuerySpecificVersionInfo_NotFound()
{
var fakeIHttpProvider = new FakeIHttpProvider();

var httpClientHelper = new HttpClientHelper(fakeIHttpProvider, null, new FakeIWebLogger());
var specificVersionReleaseInfo =
new SpecificVersionReleaseInfo(httpClientHelper, null, null,
new FakeIWebLogger());

var result = await specificVersionReleaseInfo.QuerySpecificVersionInfo();

Assert.AreEqual(string.Empty, result);
}
}

0 comments on commit 6b5ad9a

Please sign in to comment.