Oeffentliche Rueckwaerts-Quelle: Reverse-Lookup gegen dasoertliche.de (inoffiziell, ToS-Risiko dokumentiert)
This commit is contained in:
parent
5f7edf13f5
commit
c4b0148121
5 changed files with 118 additions and 47 deletions
|
|
@ -0,0 +1,49 @@
|
|||
using Anrufmonitor.Contacts;
|
||||
using Microsoft.Extensions.Logging.Abstractions;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Xunit;
|
||||
|
||||
namespace Anrufmonitor.Tests;
|
||||
|
||||
/// <summary>
|
||||
/// Integrationstest gegen die echte dasoertliche.de-Seite (kein Mock) - stellt sicher, dass
|
||||
/// die HTML-Extraktion (siehe PublicDirectoryLookupProvider) noch funktioniert. Nutzt die
|
||||
/// oeffentlich bekannte, garantiert gelistete Nummer der Stadtverwaltung Frankfurt.
|
||||
/// Faellt dieser Test irgendwann aus, hat sich vermutlich die Seitenstruktur geaendert.
|
||||
/// </summary>
|
||||
public class PublicDirectoryLookupProviderTests
|
||||
{
|
||||
[Fact]
|
||||
public async Task LookupAsync_FindsKnownPublicEntry()
|
||||
{
|
||||
var options = Options.Create(new ContactsOptions
|
||||
{
|
||||
PublicDirectory = new PublicDirectoryOptions { Enabled = true, TimeoutMilliseconds = 5000 },
|
||||
});
|
||||
|
||||
using var httpClient = new HttpClient();
|
||||
var provider = new PublicDirectoryLookupProvider(options, httpClient, NullLogger<PublicDirectoryLookupProvider>.Instance);
|
||||
|
||||
var result = await provider.LookupAsync("4969212 01".Replace(" ", ""), CancellationToken.None);
|
||||
|
||||
Assert.NotNull(result);
|
||||
Assert.Contains("Frankfurt", result!.DisplayName, StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task LookupAsync_UnknownNumber_ReturnsNull()
|
||||
{
|
||||
var options = Options.Create(new ContactsOptions
|
||||
{
|
||||
PublicDirectory = new PublicDirectoryOptions { Enabled = true, TimeoutMilliseconds = 5000 },
|
||||
});
|
||||
|
||||
using var httpClient = new HttpClient();
|
||||
var provider = new PublicDirectoryLookupProvider(options, httpClient, NullLogger<PublicDirectoryLookupProvider>.Instance);
|
||||
|
||||
// Ungueltige/nicht existierende Nummer
|
||||
var result = await provider.LookupAsync("491511234567", CancellationToken.None);
|
||||
|
||||
Assert.Null(result);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue