Codebasis als Dateien ins Arbeitsrepo statt als Gitlink

QuellCode/CentronERP war nur als Gitlink (Submodul-Referenz auf 79c1142)
getrackt, ohne .gitmodules und ohne erreichbares Remote. Der
Untersuchungsgegenstand der Versuchsreihe war damit nicht reproduzierbar
gesichert: Ein Klon haette ein leeres Verzeichnis erhalten, und die Belege
der 3.287 Anforderungen waeren nicht ueberpruefbar gewesen.

Umstellung:
- Historie nach c:\DEV\CentronERP_git_snapshot_79c1142 ausgelagert
  (vollstaendig lesbar, enthaelt 79c1142 und Vorgaenger 89ccfd6)
- Gitlink aus dem Index entfernt
- Dateiinhalt aufgenommen: 24.557 Dateien, rund 333 MB

Die verschachtelte .gitignore der Codebasis gilt weiter, Build-Artefakte
bleiben ausgeschlossen. Details in Versuche/Versuch_01/_Codebasis-Nachweis.md
This commit is contained in:
Christoph Schwörer
2026-08-26 07:43:51 +02:00
parent 18edae75b6
commit f045b99a25
24664 changed files with 5846716 additions and 1 deletions
@@ -0,0 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\src\apis\Centron.APIs.CopDataAccess\Centron.APIs.CopDataAccess.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5" PrivateAssets="all" />
</ItemGroup>
</Project>
@@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CentronSoftware.Centron.APIs.CopDataAccess;
using Xunit;
namespace Centron.APIs.CopDatabase.Tests
{
public class Tests
{
[Fact]
public async Task Run()
{
var api = new CopApi("http://83.169.12.81:8085/cgi-bin/jsframework.exe/start.app", "c-entron", "H22QEbvGXPqJoYW48xk4");
var products = await api.SearchProductsAsync("computer");
foreach (var product in products)
{
var temp = await api.GetRelatedProductsAsync(product.Id);
if (temp != null)
{
}
}
}
}
}
@@ -0,0 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\src\apis\Centron.APIs.EgisDataAccess\Centron.APIs.EgisDataAccess.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5" PrivateAssets="all" />
</ItemGroup>
</Project>
@@ -0,0 +1,77 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CentronSoftware.Centron.APIs.EgisDataAccess;
using CentronSoftware.Centron.APIs.EgisDataAccess.RequestTemplates;
using Xunit;
namespace Centron.APIs.EgisDataAccess.Tests
{
public class Class1
{
[Fact]
public async Task Test()
{
var api = EgisApi.Create("centron_test", "5jlXRihn");
var availability1 = api.GetPriceAndAvailability(false,
"PCS5712930",
"PCS5712931",
"PCS5712932",
"PCS5712933",
"PCS5712934",
"PCS5712935",
"PCS5712936",
"PCS5712937",
"PCS5712938",
"PCS5712939");
var availability2 = api.GetPriceAndAvailability(false,
"PCS5712940",
"PCS5712941",
"PCS5712942",
"PCS5712943",
"PCS5712944",
"PCS5712945",
"PCS5712946",
"PCS5712947",
"PCS5712948",
"PCS5712949");
var availability3 = api.GetPriceAndAvailability(false,
"PCS5712950",
"PCS5712951",
"PCS5712952",
"PCS5712953",
"PCS5712954",
"PCS5712955",
"PCS5712956",
"PCS5712957",
"PCS5712958",
"PCS5712959");
var availability4 = api.GetPriceAndAvailability(false,
"PCS5712960",
"PCS5712961",
"PCS5712962",
"PCS5712963",
"PCS5712964",
"PCS5712965",
"PCS5712966",
"PCS5712967",
"PCS5712968",
"PCS5712969");
var availability5 = api.GetPriceAndAvailability(false,
"PCS5712970",
"PCS5712971",
"PCS5712972",
"PCS5712973",
"PCS5712974",
"PCS5712975",
"PCS5712976",
"PCS5712977",
"PCS5712978",
"PCS5712979");
await Task.WhenAll(availability1, availability2, availability3, availability4, availability5);
}
}
}
@@ -0,0 +1,39 @@
using CentronSoftware.Centron.APIs.EgisDataAccess;
using Xunit;
namespace Centron.APIs.EgisDataAccess.Tests
{
public class EgisApiSearchRequirementsTests
{
[Fact]
public void CanSearchArticles_ReturnsTrue_WhenAllRequirementsAreMet()
{
var api = EgisApi.Create("username", "password");
var result = api.CanSearchArticles(true, "manufacturer-code");
Assert.True(result);
}
[Theory]
[InlineData(false, "username", "password", "manufacturer-code")]
[InlineData(true, null, "password", "manufacturer-code")]
[InlineData(true, "", "password", "manufacturer-code")]
[InlineData(true, " ", "password", "manufacturer-code")]
[InlineData(true, "EBC Benutzername", "password", "manufacturer-code")]
[InlineData(true, "username", null, "manufacturer-code")]
[InlineData(true, "username", "", "manufacturer-code")]
[InlineData(true, "username", " ", "manufacturer-code")]
[InlineData(true, "username", "password", null)]
[InlineData(true, "username", "password", "")]
[InlineData(true, "username", "password", " ")]
public void CanSearchArticles_ReturnsFalse_WhenARequirementIsMissing(bool isSearchEnabled, string username, string password, string searchText)
{
var api = EgisApi.Create(username, password);
var result = api.CanSearchArticles(isSearchEnabled, searchText);
Assert.False(result);
}
}
}
@@ -0,0 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\src\apis\Centron.APIs.ITscopeDataAccess\Centron.APIs.ITscopeDataAccess.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5" PrivateAssets="all" />
</ItemGroup>
</Project>
@@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xunit;
namespace Centron.APIs.ITscopeDataAccess.Tests
{
public class Test
{
[Fact]
public async Task MainTest()
{
var api = new ITscopeApi("test@c-entron.de", "Yi6d4_AeT1LW8SQwMWBoSnLGukjCLFw-xdyj6xsKhEw");
var a = await api.GetApiKeyQuotaAsync();
Assert.Equal(-1, a.PlatformAccess);
Assert.Equal(-1, a.ApiAccess);
}
}
}
@@ -0,0 +1,23 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\src\apis\Centron.APIs.IcecatDataAccess\Centron.APIs.IcecatDataAccess.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5" PrivateAssets="all" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Data\*.xml" />
</ItemGroup>
</Project>
@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Centron.APIs.IcecatDataAccess.Tests.Data
{
public static class Examples
{
public static Stream GetExample1Stream()
{
return typeof(Examples).Assembly.GetManifestResourceStream("Centron.APIs.IcecatDataAccess.Tests.Data.Example1.xml");
}
public static string GetExample1()
{
var memoryStream = new MemoryStream();
var stream = GetExample1Stream();
stream.CopyTo(memoryStream);
return Encoding.UTF8.GetString(memoryStream.ToArray());
}
}
}
@@ -0,0 +1,15 @@
using System.Threading.Tasks;
using Xunit;
namespace Centron.APIs.IcecatDataAccess.Tests
{
public class IcecatApiTests
{
[Fact]
public async Task CanGetProduct()
{
var api = new IcecatApi("c-entron", "c-entron2012!");
var product = await api.GetProductAsync("889955314963", Languages.German);
}
}
}
@@ -0,0 +1,24 @@
using System.Linq;
using System.Xml.Linq;
using Centron.APIs.IcecatDataAccess.Parser;
using Centron.APIs.IcecatDataAccess.Tests.Data;
using Xunit;
namespace Centron.APIs.IcecatDataAccess.Tests.Parser
{
public class ProductParserTests
{
[Fact]
public void CanParseProduct()
{
var productXmlString = Examples.GetExample1Stream();
var productXmlElement = XDocument.Load(productXmlString).Root.Element("Product");
var parser = new ProductParser();
var product = parser.Parse(productXmlElement);
}
}
}