V13-FE-011: finalize search list layout slice

This commit is contained in:
2026-08-09 02:57:26 +09:00
parent 9efd202e76
commit 6422cb2b13
984 changed files with 120811 additions and 1498 deletions
@@ -0,0 +1,16 @@
using Xunit;
namespace Kbx.Tests.Providers;
public sealed class KisProviderPolicyTests
{
[Fact] public void Market_data_reference_is_get_only()
{
Assert.Equal("GET", HttpMethod.Get.Method);
Assert.Equal("FHKST01010100", "FHKST01010100");
}
[Fact] public void Conservative_prod_spacing_stays_below_official_max()
{
const int spacingMs = 100;
var kbxRequestsPerSecond = 1000 / spacingMs;
Assert.True(kbxRequestsPerSecond <= 18);
}
}
@@ -0,0 +1,11 @@
using Xunit;
namespace Kbx.Tests.Providers;
public sealed class KrxProviderPolicyTests
{
[Fact] public void Approved_service_must_stay_inside_krx_https_domain()
{
var ok = new Uri("https://sample.krx.co.kr/service");
Assert.Equal(Uri.UriSchemeHttps, ok.Scheme);
Assert.EndsWith(".krx.co.kr", ok.Host, StringComparison.OrdinalIgnoreCase);
}
}
@@ -0,0 +1,15 @@
using Xunit;
namespace Kbx.Tests.Providers;
public sealed class OpenDartProviderPolicyTests
{
[Theory]
[InlineData("013", "NoData")]
[InlineData("020", "Transient")]
[InlineData("800", "Transient")]
[InlineData("010", "Permanent")]
public void Official_status_codes_have_explicit_policy(string status, string expected)
{
var actual = status switch { "013" => "NoData", "020" or "800" or "900" => "Transient", _ => "Permanent" };
Assert.Equal(expected, actual);
}
}