200 lines
7.0 KiB
C#
200 lines
7.0 KiB
C#
using Hochbaustatistik.Business;
|
|
using Hochbaustatistik.Database;
|
|
using Hochbaustatistik.Utilities;
|
|
using OpenQA.Selenium.DevTools.V109.Target;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Drawing;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using Xunit;
|
|
|
|
namespace Hochbaustatistik.Testing.Utilities
|
|
{
|
|
public class DataOpsTest
|
|
{
|
|
readonly string sourceFile = @"TestData\TestData.csv";
|
|
public readonly VorgangInpro vorgang = new VorgangInpro() { Schlussabnahme = "2022" };
|
|
|
|
[Theory]
|
|
[InlineData("61/5-2-052875", "615-2-052875")]
|
|
public void IsValidTest(string trueAz, string falseAZ)
|
|
{
|
|
var instance = DataOpsSingleton.Instance;
|
|
|
|
Assert.True(instance.IsValid(trueAz));
|
|
Assert.False(instance.IsValid(falseAZ));
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("615-2-052875", "61/5-2-052870255", "61/5-4-050497/1", "6175-4-052875", "61/5-3-49044", "61/52052702", "Tiefe-Mark 20")]
|
|
public void CorrectAZTest(string az1, string az2, string az3, string az4, string az5, string az6, string az7)
|
|
{
|
|
var instance = DataOpsSingleton.Instance;
|
|
|
|
var expected1 = "61/5-2-052875";
|
|
var expected2 = "NOT_CORRECTED";
|
|
var expected3 = "61/5-4-050497";
|
|
var expected4 = "61/5-4-052875";
|
|
var expected5 = "61/5-3-049044";
|
|
var expected6 = "61/5-2-052702";
|
|
var expected7 = "NOT_CORRECTED";
|
|
|
|
Assert.Equal(expected1, instance.CorrectAZ(az1));
|
|
Assert.Equal(expected2, instance.CorrectAZ(az2));
|
|
Assert.Equal(expected3, instance.CorrectAZ(az3));
|
|
Assert.Equal(expected4, instance.CorrectAZ(az4));
|
|
Assert.Equal(expected5, instance.CorrectAZ(az5));
|
|
Assert.Equal(expected6, instance.CorrectAZ(az6));
|
|
Assert.Equal(expected7, instance.CorrectAZ(az7));
|
|
}
|
|
|
|
|
|
[Theory]
|
|
[InlineData("50001234567")]
|
|
public void ReshapeIdentifikatorTest(string ident)
|
|
{
|
|
var instance = DataOpsSingleton.Instance;
|
|
var expected = "1234567";
|
|
var actual = instance.ReshapeIdentifikator(ident);
|
|
Assert.Equal(expected, actual);
|
|
}
|
|
|
|
[Fact]
|
|
public void CreateItnrwRecordTest()
|
|
{
|
|
var instance = DataOpsSingleton.Instance;
|
|
List<VorgangItnrw> hochbauliste = new List<VorgangItnrw>();
|
|
hochbauliste.Add(new VorgangItnrw()
|
|
{
|
|
AGS = "913000",
|
|
Identifikator = "50005733064",
|
|
BauscheinNr = "61/5-2-43665",
|
|
MonatGenehmigung = "5",
|
|
JahrGenehmigung = "2017",
|
|
NameBauherr = " ",
|
|
Strasse = "Rüschenstr. 29",
|
|
PLZ = "44328",
|
|
Gemeinde = "Dortmund",
|
|
Gemeindeteil = " ",
|
|
Bauzustand = " ",
|
|
Bemerkungen = " "
|
|
});
|
|
|
|
var correctedAZ = "61/5-2-043665";
|
|
var origAZ = "61/5-2-43665";
|
|
var row = 57;
|
|
|
|
var hochbauListe = FileOperations.GenerateHochbauVorgangFromCSV(@"..\..\..\TestData\Testdata.csv");
|
|
|
|
var actual = instance.CreateItnrwRecord(row, correctedAZ, origAZ,hochbauListe);
|
|
var expected = String.Concat("913000;", "50005733064;", "61/5-2-043665;", "5;", "2017;", " ;", "Rüschenstr. 29;", "44328;", "Dortmund;", " ;");
|
|
|
|
Assert.Equal(expected, actual);
|
|
|
|
}
|
|
|
|
[Fact]
|
|
public void CreateStatusBauzustandTest()
|
|
{
|
|
var instance = DataOpsSingleton.Instance;
|
|
List<string> actuals = new List<string>();
|
|
|
|
List<VorgangInpro> inproVorgänge = new List<VorgangInpro>()
|
|
{
|
|
new VorgangInpro{ Schlussabnahme = "2022" },
|
|
new VorgangInpro { BaugenehmigungAusgeführt ="2022"}
|
|
};
|
|
|
|
foreach (var item in inproVorgänge)
|
|
{
|
|
actuals.Add(instance.CreateStatusBauzustand(item));
|
|
}
|
|
|
|
var expected1 = "F Fertigstellung erfolgte bis 31.12. des Vorjahres";
|
|
var expected2 = "4 Baugenehmigung erloschen";
|
|
|
|
Assert.Equal(expected1, actuals.ElementAt(0));
|
|
Assert.Equal(expected2, actuals.ElementAt(1));
|
|
}
|
|
|
|
[Fact]
|
|
public void MergeInproWithITNRWTest()
|
|
{
|
|
var resultFile = @"C:\TEMP\hochbaustatistik.csv";
|
|
DatabaseOperations.conString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dborap04.stadtdo.de)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=bgvp.stadtdo.de)));user id=leser;password=leser;";
|
|
var instance = DataOpsSingleton.Instance;
|
|
|
|
List<VorgangItnrw> hochbauliste = new List<VorgangItnrw>();
|
|
hochbauliste.Add(new VorgangItnrw()
|
|
{
|
|
AGS = "913000",
|
|
Identifikator = "50005733064",
|
|
BauscheinNr = "61/5-2-43665",
|
|
MonatGenehmigung = "5",
|
|
JahrGenehmigung = "2017",
|
|
NameBauherr = " ",
|
|
Strasse = "Rüschenstr. 29",
|
|
PLZ = "44328",
|
|
Gemeinde = "Dortmund",
|
|
Gemeindeteil = " ",
|
|
Bauzustand = " ",
|
|
Bemerkungen = " "
|
|
});
|
|
|
|
instance.MergeInproWithITNRW(resultFile, hochbauliste);
|
|
Assert.True(File.Exists(resultFile));
|
|
var result = SearchEntry(resultFile, hochbauliste[0].PLZ);
|
|
Assert.True(result);
|
|
}
|
|
|
|
private bool SearchEntry(string file, string text)
|
|
{
|
|
bool found = false;
|
|
|
|
using (StreamReader sr = new StreamReader(file))
|
|
{
|
|
var fullText = sr.ReadToEnd();
|
|
found = fullText.Contains(text);
|
|
}
|
|
|
|
return found;
|
|
}
|
|
|
|
public static IEnumerable<object[]> Vorgänge()
|
|
{
|
|
var vorgänge = new List<VorgangInpro>
|
|
{
|
|
new VorgangInpro { Schlussabnahme = "2022" },
|
|
new VorgangInpro { Fertigstellung_Gemeldet = "2022" },
|
|
new VorgangInpro { BaugenehmigungAusgeführt = "2022"}
|
|
};
|
|
|
|
yield return new object[] { vorgänge };
|
|
}
|
|
|
|
public static IEnumerable<object[]> Hochbauliste()
|
|
{
|
|
var hochbauliste = new List<VorgangItnrw>
|
|
{
|
|
new VorgangItnrw {
|
|
AGS = "913000",
|
|
Identifikator = "50005733064",
|
|
BauscheinNr = "61/5-2-43665",
|
|
MonatGenehmigung = "5",
|
|
JahrGenehmigung = "2017",
|
|
NameBauherr = " ",
|
|
Strasse = "Rüschenstr. 29",
|
|
PLZ = "44328",
|
|
Gemeinde = "Dortmund",
|
|
Gemeindeteil = " ",
|
|
Bauzustand = " ",
|
|
Bemerkungen = " "}
|
|
};
|
|
|
|
yield return new object[] { hochbauliste };
|
|
}
|
|
}
|
|
}
|