elfisa-pharmacy/tests/Elfisa.Tests/PriceLogicTests.cs
Exest 3d89fac6e0
Some checks failed
Desktop tests / test (push) Has been cancelled
тесты: автотесты десктопа (xUnit) + CI
- проект tests/Elfisa.Tests: 56 юнит-тестов на Elfisa.Core + Elfisa.Avalonia:
  версии апдейтера, срок JWT-сессии, ApiClient (URL/ошибки/ретраи/парсинг),
  DTO-контракты, черновики, корзина, дрилдаун прайса (МГ/базовое имя)
- тест-швы: internal-методы через InternalsVisibleTo, ApiClient(HttpMessageHandler)
- CI .github/workflows/desktop-tests.yml — dotnet test при пуше (GitHub/Gitea Actions)
- README с описанием покрытия

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-17 11:51:50 +03:00

37 lines
1.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Elfisa.Avalonia.ViewModels;
using Xunit;
namespace Elfisa.Tests;
// Логика дрилдаула прайса: извлечение дозировки (МГ) и базового наименования.
public class PriceLogicTests
{
[Theory]
[InlineData("Нурофен таб. 200мг №10", "200мг")]
[InlineData("Парацетамол 500 мг таб", "500 мг")]
[InlineData("Витамин D3 2000 МЕ", "2000 МЕ")]
[InlineData("Настойка 25мл", "25мл")]
[InlineData("Метформин 1000мг", "1000мг")]
[InlineData("Бинт стерильный", "")]
[InlineData("", "")]
[InlineData(null, "")]
public void ExtractDosage_finds_unit(string? name, string expected)
=> Assert.Equal(expected, PriceListViewModel.ExtractDosage(name));
[Fact]
public void BuildBaseName_prefers_trade_name()
=> Assert.Equal("Нурофен", PriceListViewModel.BuildBaseName("Нурофен таб 200мг", "Нурофен", "200мг"));
[Fact]
public void BuildBaseName_strips_dosage()
=> Assert.Equal("Аспирин", PriceListViewModel.BuildBaseName("Аспирин 500мг", null, "500мг"));
[Fact]
public void BuildBaseName_keeps_name_without_dosage()
=> Assert.Equal("Бинт стерильный", PriceListViewModel.BuildBaseName("Бинт стерильный", null, ""));
[Fact]
public void BuildBaseName_empty_returns_empty()
=> Assert.Equal("", PriceListViewModel.BuildBaseName("", null, ""));
}