2024-07-09 13:07:01 +02:00
|
|
|
|
using Dakota.Logic;
|
|
|
|
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
|
|
|
|
using System;
|
2024-11-15 09:51:20 +01:00
|
|
|
|
using System.IO;
|
2024-07-09 13:07:01 +02:00
|
|
|
|
|
|
|
|
|
|
namespace DakotaUnitTest
|
|
|
|
|
|
{
|
|
|
|
|
|
[TestClass]
|
|
|
|
|
|
public class DakotaReaderUnitTest
|
|
|
|
|
|
{
|
|
|
|
|
|
public DakotaKTDReader Reader { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[TestInitialize]
|
|
|
|
|
|
public void Initialize()
|
|
|
|
|
|
{
|
2024-11-15 09:51:20 +01:00
|
|
|
|
var path = AppDomain.CurrentDomain.BaseDirectory;
|
2024-07-09 13:07:01 +02:00
|
|
|
|
|
2024-11-15 09:51:20 +01:00
|
|
|
|
var project_path = Directory.GetParent(path).Parent.Parent.FullName;
|
|
|
|
|
|
|
|
|
|
|
|
var kdt_path = Path.Combine(project_path, "Dakota", "KTDatei");
|
|
|
|
|
|
|
|
|
|
|
|
var reader = new DakotaKTDReader(kdt_path);
|
2024-07-09 13:07:01 +02:00
|
|
|
|
|
|
|
|
|
|
Reader = reader;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[TestMethod]
|
|
|
|
|
|
public void ValidateReaderLoaded()
|
|
|
|
|
|
{
|
|
|
|
|
|
Assert.IsTrue(Reader is object);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[TestMethod]
|
|
|
|
|
|
public void ValidateFileCount()
|
|
|
|
|
|
{
|
|
|
|
|
|
var count = Reader.GetFileCount();
|
|
|
|
|
|
|
|
|
|
|
|
Assert.IsTrue(count == 6);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[TestMethod]
|
|
|
|
|
|
public void ValidateFileEntryCount()
|
|
|
|
|
|
{
|
|
|
|
|
|
var count = Reader.GetAllFileEntryCount();
|
|
|
|
|
|
|
2024-11-15 09:51:20 +01:00
|
|
|
|
Assert.IsTrue(count == 1106);
|
2024-07-09 13:07:01 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[TestMethod]
|
|
|
|
|
|
public void ValidateBkkGilletteOst()
|
|
|
|
|
|
{
|
2024-07-19 12:20:53 +02:00
|
|
|
|
var test = Reader.Resolve("105328415", "69", "00000");
|
2024-07-09 13:07:01 +02:00
|
|
|
|
|
|
|
|
|
|
Assert.IsNotNull(test);
|
|
|
|
|
|
|
2025-11-19 09:36:58 +01:00
|
|
|
|
Assert.IsTrue(test.IKKrankenkasse == "661430035");
|
2024-07-09 13:07:01 +02:00
|
|
|
|
|
2025-11-19 09:36:58 +01:00
|
|
|
|
Assert.IsTrue(test.IKKostentrager == "106492406");
|
2024-07-09 13:07:01 +02:00
|
|
|
|
|
2025-11-19 09:36:58 +01:00
|
|
|
|
Assert.IsTrue(test.IKDatenannahmestelle == "105328415");
|
2024-07-09 13:07:01 +02:00
|
|
|
|
}
|
2024-07-19 14:41:49 +02:00
|
|
|
|
|
|
|
|
|
|
[TestMethod]
|
|
|
|
|
|
public void ValidateAOKRheinlandHamburgSoz()
|
|
|
|
|
|
{
|
|
|
|
|
|
var test = Reader.Resolve("104212505", "69", "00000");
|
|
|
|
|
|
|
|
|
|
|
|
Assert.IsNotNull(test);
|
|
|
|
|
|
|
2025-11-19 09:36:58 +01:00
|
|
|
|
Assert.IsTrue(test.IKKrankenkasse == "104212516");
|
2024-07-19 14:41:49 +02:00
|
|
|
|
|
2025-11-19 09:36:58 +01:00
|
|
|
|
Assert.IsTrue(test.IKKostentrager == "104212505");
|
2024-07-19 14:41:49 +02:00
|
|
|
|
|
2025-11-19 09:36:58 +01:00
|
|
|
|
Assert.IsTrue(test.IKDatenannahmestelle == "104212505");
|
2024-07-19 14:41:49 +02:00
|
|
|
|
}
|
2024-11-07 14:16:45 +01:00
|
|
|
|
|
|
|
|
|
|
[TestMethod]
|
|
|
|
|
|
public void ValidateBarmar()
|
|
|
|
|
|
{
|
|
|
|
|
|
var test = Reader.Resolve("104080005", "69", "08101");
|
|
|
|
|
|
|
2024-11-14 15:11:10 +01:00
|
|
|
|
Assert.IsNull(test);
|
2024-11-07 14:16:45 +01:00
|
|
|
|
}
|
2024-11-14 15:51:36 +01:00
|
|
|
|
|
|
|
|
|
|
[TestMethod]
|
|
|
|
|
|
public void ValidateKnappschaft()
|
|
|
|
|
|
{
|
|
|
|
|
|
var test = Reader.Resolve("109905003", "69", "08000");
|
|
|
|
|
|
|
|
|
|
|
|
Assert.IsNotNull(test);
|
|
|
|
|
|
|
2025-11-19 09:36:58 +01:00
|
|
|
|
Assert.IsTrue(test.IKKrankenkasse == "109905003");
|
2024-11-14 15:51:36 +01:00
|
|
|
|
|
2025-11-19 09:36:58 +01:00
|
|
|
|
Assert.IsTrue(test.IKKostentrager == "109905003");
|
2024-11-14 15:51:36 +01:00
|
|
|
|
|
2025-11-19 09:36:58 +01:00
|
|
|
|
Assert.IsTrue(test.IKDatenannahmestelle == "109905003");
|
2024-11-14 15:51:36 +01:00
|
|
|
|
}
|
2026-06-24 10:59:43 +02:00
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
|
|
// Papierannahmestellen-Tests
|
|
|
|
|
|
// Struktur der KT-Datei für Papierannahmestellen:
|
|
|
|
|
|
// VKG+09+<PapierIK>+...+<Abrechnungscode>+<Tarifkennzeichen>'
|
|
|
|
|
|
// GetPapierIK() gibt das IK der Papierannahmestelle zurück.
|
|
|
|
|
|
// Resolve() befüllt dann GkvKostentragerdateiSummary.Papierannahmeanschrift
|
|
|
|
|
|
// aus den ANS-Segmenten des PapierIK-Eintrags (Prio: Haus > Postfach > GK).
|
|
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// AOK Nordost Region MVP (IK 100395611) hat genau einen VKG+09-Eintrag:
|
|
|
|
|
|
/// VKG+09+109519016+5++28+6+++00' → PapierIK = 109519016
|
|
|
|
|
|
/// Eintrag 109519016 (AOK Nordost - Rechnungsannahme) besitzt:
|
|
|
|
|
|
/// ANS+1+14513+Teltow+Am Teltowkanal 8' (Hausanschrift – höchste Priorität)
|
|
|
|
|
|
/// ANS+2+14302+Berlin+140252' (Postfach – wird nicht verwendet)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[TestMethod]
|
|
|
|
|
|
public void ValidateAokNordostMvp_Papierannahmestelle_Hausanschrift()
|
|
|
|
|
|
{
|
|
|
|
|
|
var test = Reader.Resolve("100395611", "69", "00000");
|
|
|
|
|
|
|
|
|
|
|
|
Assert.IsNotNull(test, "Resolve() soll nicht null zurückgeben.");
|
|
|
|
|
|
|
|
|
|
|
|
var papier = test.Papierannahmeanschrift;
|
|
|
|
|
|
Assert.IsNotNull(papier, "Papierannahmeanschrift soll gesetzt sein (PapierIK = 109519016).");
|
|
|
|
|
|
|
|
|
|
|
|
Assert.AreEqual("AOK Nordost - Rechnungsannahme", papier.AddressLine1,
|
|
|
|
|
|
"AddressLine1 soll die Kurzbezeichnung des PapierIK-Eintrags enthalten.");
|
|
|
|
|
|
Assert.AreEqual("14513", papier.PostalCode);
|
|
|
|
|
|
Assert.AreEqual("Teltow", papier.Town);
|
|
|
|
|
|
Assert.AreEqual("Am Teltowkanal 8", papier.Street);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// AOK Rheinland-Pfalz (IK 106215364) hat genau einen VKG+09-Eintrag:
|
|
|
|
|
|
/// VKG+09+106315285+5++28+6+++00' → PapierIK = 106315285
|
|
|
|
|
|
/// Eintrag 106315285 (AOK Rheinland-Pfalz/Saarland) besitzt:
|
|
|
|
|
|
/// ANS+1+56070+Koblenz+Am Sender 1' (nur Hausanschrift)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[TestMethod]
|
|
|
|
|
|
public void ValidateAokRheinlandPfalz_Papierannahmestelle_Hausanschrift()
|
|
|
|
|
|
{
|
|
|
|
|
|
var test = Reader.Resolve("106215364", "69", "00000");
|
|
|
|
|
|
|
|
|
|
|
|
Assert.IsNotNull(test, "Resolve() soll nicht null zurückgeben.");
|
|
|
|
|
|
|
|
|
|
|
|
var papier = test.Papierannahmeanschrift;
|
|
|
|
|
|
Assert.IsNotNull(papier, "Papierannahmeanschrift soll gesetzt sein (PapierIK = 106315285).");
|
|
|
|
|
|
|
|
|
|
|
|
Assert.AreEqual("AOK Rheinland-Pfalz/Saarland", papier.AddressLine1);
|
|
|
|
|
|
Assert.AreEqual("56070", papier.PostalCode);
|
|
|
|
|
|
Assert.AreEqual("Koblenz", papier.Town);
|
|
|
|
|
|
Assert.AreEqual("Am Sender 1", papier.Street);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// SECURVITA BKK (IK 101320032) hat zwei VKG+09-Einträge, die beide
|
|
|
|
|
|
/// auf dieselbe Papierannahmestelle zeigen:
|
|
|
|
|
|
/// VKG+09+107436557+5++28++++00' (ArtDerDatenlieferung 28)
|
|
|
|
|
|
/// VKG+09+107436557+5++29++++00' (ArtDerDatenlieferung 29)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[TestMethod]
|
|
|
|
|
|
public void ValidateSecurvitaBkk_Papierannahmestelle_MehrereVkgGleichesPaperIK()
|
|
|
|
|
|
{
|
|
|
|
|
|
var test = Reader.Resolve("101320032", "69", "00000");
|
|
|
|
|
|
|
|
|
|
|
|
Assert.IsNotNull(test, "Resolve() soll nicht null zurückgeben.");
|
|
|
|
|
|
|
|
|
|
|
|
var papier = test.Papierannahmeanschrift;
|
|
|
|
|
|
Assert.IsNotNull(papier,
|
|
|
|
|
|
"Papierannahmeanschrift null, obwohl zwei VKG+09-Einträge " +
|
|
|
|
|
|
"auf IK 107436557 (AZE Emmendingen) zeigen.");
|
|
|
|
|
|
|
|
|
|
|
|
Assert.AreEqual("AZE Emmendingen", papier.AddressLine1);
|
|
|
|
|
|
Assert.AreEqual("79312", papier.PostalCode);
|
|
|
|
|
|
Assert.AreEqual("Emmendingen", papier.Town);
|
|
|
|
|
|
}
|
2024-07-09 13:07:01 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|