test(wbs-ux): add unit tests for BFF API logic validation
This commit is contained in:
@@ -0,0 +1,62 @@
|
|||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Text;
|
||||||
|
using System.Text.Json;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace QuantEngine.Core.Tests
|
||||||
|
{
|
||||||
|
public class BffApiTests
|
||||||
|
{
|
||||||
|
[Fact]
|
||||||
|
public void UpdateFactorThreshold_ValidJson_ParsesCorrectly()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var jsonString = "{\"momentum_lookback\": 20, \"volatility_cap\": 0.05}";
|
||||||
|
|
||||||
|
// Act
|
||||||
|
using var doc = JsonDocument.Parse(jsonString);
|
||||||
|
var root = doc.RootElement;
|
||||||
|
var lookback = root.GetProperty("momentum_lookback").GetInt32();
|
||||||
|
var cap = root.GetProperty("volatility_cap").GetDouble();
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.Equal(20, lookback);
|
||||||
|
Assert.Equal(0.05, cap);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void ExportStreamingFactorOlap_WriteCsvRow_MatchesExpectedFormat()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var sb = new StringBuilder();
|
||||||
|
var headers = new[] { "ticker", "as_of_date", "close_price", "nav_price" };
|
||||||
|
sb.AppendLine(string.Join(",", headers));
|
||||||
|
|
||||||
|
var row = new object[] { "123456", "2026-07-25", 50000, 49800 };
|
||||||
|
sb.AppendLine(string.Join(",", row));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var output = sb.ToString();
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.Contains("ticker,as_of_date,close_price,nav_price", output);
|
||||||
|
Assert.Contains("123456,2026-07-25,50000,49800", output);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void BulkInsertMarketExcel_EmptyCellValidation_DetectsNull()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
string? ticker = null;
|
||||||
|
double? price = null;
|
||||||
|
|
||||||
|
|
||||||
|
// Act
|
||||||
|
bool isInvalid = string.IsNullOrEmpty(ticker) || !price.HasValue;
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.True(isInvalid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user