Anrufmonitor Grundgeruest: SIP Monitor, Contacts Cache, WPF Tray App

This commit is contained in:
dimedtec 2026-08-28 15:51:56 +02:00
parent f78831a375
commit d7869b977f
28 changed files with 1581 additions and 17 deletions

View file

@ -0,0 +1,26 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="coverlet.collector" Version="6.0.4" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.4" />
</ItemGroup>
<ItemGroup>
<Using Include="Xunit" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\Anrufmonitor.Contacts\Anrufmonitor.Contacts.csproj" />
<ProjectReference Include="..\..\src\Anrufmonitor.Sip\Anrufmonitor.Sip.csproj" />
</ItemGroup>
</Project>

View file

@ -0,0 +1,35 @@
using Anrufmonitor.Contacts;
using Xunit;
namespace Anrufmonitor.Tests;
public class PhoneNumberNormalizerTests
{
[Theory]
[InlineData("0175 1234567", "491751234567")]
[InlineData("0175-1234567", "491751234567")]
[InlineData("+49 175 1234567", "491751234567")]
[InlineData("0049 175 1234567", "491751234567")]
[InlineData("491751234567", "491751234567")]
public void Normalize_ProducesSameResult_ForEquivalentNumbers(string input, string expected)
{
Assert.Equal(expected, PhoneNumberNormalizer.Normalize(input));
}
[Fact]
public void Normalize_EmptyInput_ReturnsEmptyString()
{
Assert.Equal(string.Empty, PhoneNumberNormalizer.Normalize(null));
Assert.Equal(string.Empty, PhoneNumberNormalizer.Normalize(""));
}
[Theory]
[InlineData("\"Max Mustermann\" <sip:+491751234567@pbx.example.com>", "+491751234567")]
[InlineData("sip:01751234567@pbx.example.com", "01751234567")]
[InlineData("sip:1234;user=phone@pbx.example.com", "1234")]
[InlineData("kein-sip-header", null)]
public void ExtractFromSipUri_ParsesUserPart(string input, string? expected)
{
Assert.Equal(expected, PhoneNumberNormalizer.ExtractFromSipUri(input));
}
}