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