using Deal.Telegram.Dialogs;
namespace Deal.Telegram.Tests.Telegram;
///
/// Unit-тесты цвета диалога.
///
public sealed class DialogHueTests
{
///
/// Цвет по паре
///
[Theory]
[InlineData("-1001234567890", "IT Канал", "#a78bfa")]
[InlineData("-123456", "Уютный чат", "#34d399")]
[InlineData("+79990001122", "Иван Петров", "#fb7185")]
[InlineData("-100999", "", "#34d399")]
public void Compute_MatchesPythonPrototype(
string dialogId,
string name,
string expectedHue)
{
Assert.Equal(expectedHue, DialogHue.Compute(dialogId, name));
}
///
/// Цвет детерминирован
///
[Fact]
public void Compute_IsDeterministic()
{
string first = DialogHue.Compute("-1001234567890", "IT Канал");
Assert.Equal(first, DialogHue.Compute("-1001234567890", "IT Канал"));
}
///
/// Разные источники распределяются по палитре
///
[Fact]
public void Compute_DifferentSources_DistributeAcrossPalette()
{
string[] hues = new[]
{
DialogHue.Compute("-100111", "Канал А"),
DialogHue.Compute("-100222", "Канал Б"),
DialogHue.Compute("+79990001122", "Иван Петров"),
DialogHue.Compute("-5", "Работа"),
};
Assert.Equal(3, hues.Distinct().Count());
}
}