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,160 @@
[
'Centron.Data.WebServices.TaskManager.Recurrence.TaskManagementDailyRecurrenceDTO',
'Centron.Data.WebServices.TaskManager.Recurrence.TaskManagementWeeklyRecurrenceDTO',
'Centron.Data.WebServices.TaskManager.Recurrence.TaskManagementMonthlyRecurrenceDTO',
'Centron.Data.WebServices.TaskManager.Recurrence.TaskManagementYearlyRecurrenceDTO',
'Centron.Data.WebServices.TaskManager.Actions.TaskManagementActionDTO',
'Centron.Data.WebServices.TaskManager.Actions.TaskManagementHelpdeskActionDTO',
'Centron.Data.WebServices.TaskManager.Actions.TaskManagementReportActionDTO',
'Centron.Data.WebServices.Sales.Receipts.CreditVouchers.ReceiptCreditVoucherDTO',
'Centron.Data.WebServices.Sales.Receipts.CreditVouchers.ReceiptCreditVoucherItemDTO',
'Centron.Data.WebServices.Sales.Receipts.CreditVouchers.ReceiptCreditVoucherVersionDTO',
'Centron.Data.WebServices.Sales.Receipts.CreditVouchers.ReceiptCreditVoucherItemVersionDTO',
'Centron.Data.WebServices.Sales.Receipts.DeliveryLists.ReceiptDeliveryListDTO',
'Centron.Data.WebServices.Sales.Receipts.DeliveryLists.ReceiptDeliveryListItemDTO',
'Centron.Data.WebServices.Sales.Receipts.DeliveryLists.ReceiptDeliveryListVersionDTO',
'Centron.Data.WebServices.Sales.Receipts.DeliveryLists.ReceiptDeliveryListItemVersionDTO',
'Centron.Data.WebServices.Sales.Receipts.Invoices.ReceiptInvoiceDTO',
'Centron.Data.WebServices.Sales.Receipts.Invoices.ReceiptInvoiceItemDTO',
'Centron.Data.WebServices.Sales.Receipts.Invoices.ReceiptInvoiceVersionDTO',
'Centron.Data.WebServices.Sales.Receipts.Invoices.ReceiptInvoiceItemVersionDTO',
'Centron.Data.WebServices.Sales.Receipts.Offers.ReceiptOfferDTO',
'Centron.Data.WebServices.Sales.Receipts.Offers.ReceiptOfferItemDTO',
'Centron.Data.WebServices.Sales.Receipts.Offers.ReceiptOfferVersionDTO',
'Centron.Data.WebServices.Sales.Receipts.Offers.ReceiptOfferItemVersionDTO',
'Centron.Data.WebServices.Sales.Receipts.Orders.ReceiptOrderDTO',
'Centron.Data.WebServices.Sales.Receipts.Orders.ReceiptOrderItemDTO',
'Centron.Data.WebServices.Sales.Receipts.Orders.ReceiptOrderVersionDTO',
'Centron.Data.WebServices.Sales.Receipts.Orders.ReceiptOrderItemVersionDTO',
'Centron.Data.WebServices.Sales.Receipts.PickupLists.ReceiptPickupListDTO',
'Centron.Data.WebServices.Sales.Receipts.PickupLists.ReceiptPickupListItemDTO',
'Centron.Data.WebServices.Sales.Receipts.PickupLists.ReceiptPickupListVersionDTO',
'Centron.Data.WebServices.Sales.Receipts.PickupLists.ReceiptPickupListItemVersionDTO',
'CentronSoftware.Centron.WebServices.Entities.Sales.Receipts.ReceiptSupplierItemBaseDTO',
'CentronSoftware.Centron.WebServices.Entities.Sales.Receipts.SupplierDeliveryLists.ReceiptSupplierDeliveryListDTO',
'CentronSoftware.Centron.WebServices.Entities.Sales.Receipts.SupplierDeliveryLists.ReceiptSupplierDeliveryListItemDTO',
'CentronSoftware.Centron.WebServices.Entities.Sales.Receipts.SupplierInvoices.ReceiptSupplierInvoiceDTO',
'CentronSoftware.Centron.WebServices.Entities.Sales.Receipts.SupplierInvoices.ReceiptSupplierInvoiceItemDTO',
'CentronSoftware.Centron.WebServices.Entities.Sales.Receipts.SupplierCreditVouchers.ReceiptSupplierCreditVoucherDTO',
'CentronSoftware.Centron.WebServices.Entities.Sales.Receipts.SupplierCreditVouchers.ReceiptSupplierCreditVoucherItemDTO',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterAccountAdviserNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterAccountBusinessLineNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterAccountClassificationNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterAccountFaxDistributorNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterAccountInterestNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterAccountLockedNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterAccountMailDistributorNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterAccountMailNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterAccountOriginNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterAccountProductNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterAccountSalesAreaNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterAccountSalesControllingNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterAccountTypeNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterAddressCityNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterAddressCountryNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterAddressZipNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterAndNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterApplicationAppNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterApplicationPublisherNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterArticleInReceiptNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterAccountRankingNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterCustomerProductMatrixNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterBoolNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterCompanyGroupNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterContactActivityNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterContactBirthdayNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterContactDeletedNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterContactDepartmentNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterContactMailNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterContractKindNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterCrmAcquisionImportantNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterArticleProductFamilyInReceiptNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterCrmBoughtByThusFarNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterCrmCountPcNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterCrmCountServerNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterCrmPcManufacturorNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterCrmPrinterManufacturorNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterCrmServerManufacturorNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterCrmVipNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterDateRangeNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterDevicesDeviceClassNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterDevicesOSNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterIntegerListNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterIntRangeNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterNotNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterOrNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterReceiptDateNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterReceiptTextNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterStringListNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterStringNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterVariableCrmFieldNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterDefaultContactNode',
'CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts.ExtendedFilterDefaultSubstituteContactNode',
'CentronSoftware.Centron.WebServices.Entities.Processes.Ticket.TicketProcessDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.Ticket.TicketProcessTemplateDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.Survey.SurveyProcessDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.Survey.SurveyProcessTemplateDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.MailScanner.MailScannerWorkflowProcessDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.CrmTask.TaskProcessDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.Campaign.CampaignTaskProcessDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.General.NoActionProcessStepDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.General.DecisionProcessStepDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.General.EndProcessStepDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.General.StartProcessStepDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.Ticket.ChangeStatusProcessStepDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.Ticket.ForwardTicketProcessStepDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.Ticket.SendMailProcessStepDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.Survey.Steps.SurveyProcessFreeTextProcessStepDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.Survey.Steps.SurveyProcessMultiChoiceProcessStepDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.Survey.Steps.SurveyProcessScaleProcessStepDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.Survey.Steps.SurveyProcessYesNoProcessStepDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.Survey.Steps.SurveyProcessSubprocessStepDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.Survey.SurveyProcessPropertiesDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.MailScanner.MailScannerWorkflowStepDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.CrmTask.Steps.TaskProcessAppointmentStepDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.CrmTask.Steps.TaskProcessCreateHelpdeskStepDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.CrmTask.Steps.TaskProcessCreateOfferStepDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.CrmTask.Steps.TaskProcessCreateOrderStepDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.CrmTask.Steps.TaskProcessEndCampaignProcessStepDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.CrmTask.Steps.TaskProcessMultipleChoiceStepDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.CrmTask.Steps.TaskProcessPhoneCallStepDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.CrmTask.Steps.TaskProcessSendMailStepDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.CrmTask.Steps.TaskProcessStartSurveyStepDTO',
'CentronSoftware.Centron.WebServices.Entities.Processes.Campaign.Steps.CampaignProcessTaskStepDTO',
'CentronSoftware.Centron.WebServices.Entities.Sales.Receipts.SupplierOrders.ReceiptSupplierOrderDTO',
'CentronSoftware.Centron.WebServices.Entities.Sales.Receipts.SupplierOrders.ReceiptSupplierOrderItemDTO',
'CentronSoftware.Centron.WebServices.Entities.Sales.Receipts.SupplierOrders.ReceiptSupplierOrderVersionDTO',
'CentronSoftware.Centron.WebServices.Entities.Sales.Receipts.SupplierOrders.ReceiptSupplierOrderItemVersionDTO',
'CentronSoftware.Centron.WebServices.Entities.Sales.Receipts.ContractLists.ReceiptContractDTO',
'CentronSoftware.Centron.WebServices.Entities.Sales.Receipts.ContractLists.ReceiptContractItemDTO',
'CentronSoftware.Centron.WebServices.Entities.Sales.Receipts.ContractLists.ReceiptContractVersionDTO',
'CentronSoftware.Centron.WebServices.Entities.Sales.Receipts.ContractLists.ReceiptContractItemVersionDTO',
'CentronSoftware.Centron.WebServices.Entities.Warehousing.ArticleImports.ArticleImportFileSourceDTO',
'CentronSoftware.Centron.WebServices.Entities.Warehousing.ArticleImports.ArticleImportFtpSourceDTO',
'CentronSoftware.Centron.WebServices.Entities.Warehousing.ArticleImports.ArticleImportSftpSourceDTO',
'CentronSoftware.Centron.WebServices.Entities.Warehousing.ArticleImports.ArticleImportHttpSourceDTO',
'CentronSoftware.Centron.WebServices.Entities.Warehousing.ArticleImports.ArticleImportHttpsSourceDTO',
'CentronSoftware.Centron.WebServices.Entities.Warehousing.ArticleImports.ArticleImportWortmannSourceDTO',
'Centron.Data.WebServices.Sales.Customers.CustomerDTO',
'Centron.Data.WebServices.EmployeeArea.EmployeeDTO',
'Centron.Data.WebServices.Statistics.ContractEvaluation.DetailsEvaluationAssetItemDTO',
'CentronSoftware.Centron.WebServices.Entities.SelfCare.SelfCareTriggerOptionsDTO',
'CentronSoftware.Centron.WebServices.Entities.SelfCare.SelfCareActionOptionsDTO',
'CentronSoftware.Centron.WebServices.Entities.SelfCare.SelfCareButtonTriggerOptionsDTO',
'CentronSoftware.Centron.WebServices.Entities.SelfCare.SelfCareTimerTriggerOptionsDTO',
'CentronSoftware.Centron.WebServices.Entities.SelfCare.SelfCareForwardTicketOptionsDTO',
'CentronSoftware.Centron.WebServices.Entities.SelfCare.SelfCareSendMailOptionsDTO',
'CentronSoftware.Centron.WebServices.Entities.SelfCare.SelfCareShowMailOptionsDTO',
'CentronSoftware.Centron.WebServices.Entities.Sales.Support.Projects.TicketProjectLogMetaDataDTO',
'CentronSoftware.Centron.WebServices.Entities.Sales.Support.Projects.TicketProjectLogProgressDataDTO',
'Centron.Data.WebServices.Tapi.PhoneCallWithAccountDTO',
'CentronSoftware.Centron.WebServices.Entities.Finances.OnlineBanking.OnlineBankingConfigurationFinTSDTO',
'CentronSoftware.Centron.WebServices.Entities.Finances.OnlineBanking.OnlineBankingConfigurationSpreadsheetDTO',
'CentronSoftware.Centron.WebServices.Entities.Finances.OnlineBanking.OnlineBankingConfigurationFinApiDTO',
'CentronSoftware.Centron.WebServices.Entities.Finances.OnlineBanking.OnlineBankingInspectorItemDTO',
'CentronSoftware.Centron.WebServices.Entities.PasswordManager.CustomerAccessDataExportDTO',
'CentronSoftware.Centron.WebServices.Entities.PasswordManager.CategoryItemDataDTO',
'CentronSoftware.Centron.WebServices.Entities.PasswordManager.CustomPropertyDataDTO',
'CentronSoftware.Centron.WebServices.Entities.ArtificialIntelligence.AITextRatingDTO',
'Centron.BusinessLogic.WebServices.Sales.Receipts.DataAndResults.ReceiptReceiverUpdateInformation'
]
@@ -0,0 +1,92 @@
using System.Linq;
using Centron.Data.WebServices.Sales.Customers;
using Centron.Data.WebServices.Sales.Receipts;
using Centron.Data.WebServices.Statistics.ContractEvaluation;
using Centron.Data.WebServices.TaskManager.Recurrence;
using Centron.Interfaces.Administration.Employees;
using Centron.Tests.EndToEnd.Infrastructure;
using CentronSoftware.Centron.WebServices.Connections;
using CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts;
using CentronSoftware.Centron.WebServices.Entities.Processes;
using CentronSoftware.Centron.WebServices.Entities.Warehousing.ArticleImports;
using Xunit;
using Xunit.Abstractions;
namespace Centron.Tests.EndToEnd.Tests.WebServiceHelp
{
public class KnownTypesTest : CentronTest
{
public KnownTypesTest(ITestOutputHelper testOutputHelper)
: base(testOutputHelper)
{
}
[Fact]
public void Execute()
{
this.ValidateKnownTypes();
this.TestKnownTypeNameDuplicates();
this.CheckTypesFor<ProcessStepDTO>();
this.CheckTypesFor<ProcessDTO>();
this.CheckTypesFor<TaskManagementBaseRecurrenceDTO>();
this.CheckTypesFor<ReceiptBaseDTO>();
this.CheckTypesFor<ReceiptItemBaseDTO>();
this.CheckTypesFor<ExtendedFilterNode>();
this.CheckTypesFor<IArticleImportSourceDTO>();
this.CheckTypesFor<CustomerPreviewDTO>();
this.CheckTypesFor<IEmployeePreview>();
this.CheckTypesFor<DetailsEvaluationAssetDTO>();
}
private void CheckTypesFor<T>()
{
var knownTypes = KnownTypes.GetKnownTypes(null);
var types = typeof(T).Assembly.GetTypes().Where(f => typeof(T).IsAssignableFrom(f));
foreach (var type in types)
{
var inside = knownTypes.Contains(type);
if (typeof(T) == type)
{
if (inside)
this.TestOutputHelper.WriteLine($"{type}");
Assert.False(inside);
}
else
{
if (inside == false)
this.TestOutputHelper.WriteLine($"{type}");
Assert.True(inside);
}
}
}
private void ValidateKnownTypes()
{
// if you fail this test you fucked up...
// just joking, pls extend the test above for new base types
// or just take a minute and think through everything if your changes are ok
// then override the expexted file
var knownTypes = KnownTypes.GetKnownTypes(null);
this.Verifier.Verify("KnownTypes", knownTypes.Select(f => f.FullName).ToList());
}
private void TestKnownTypeNameDuplicates()
{
// if this fails you added a class with the same Name but a different FullName (so the namespace is different)
// this will lead to problems when serializing or deserializing the class
var knownTypes = KnownTypes.GetKnownTypes(null);
var tooMany = knownTypes.GroupBy(f => f.Name).Where(f => f.Count() > 1).ToList();
Assert.False(tooMany.Any(), $"KnownTypes contains mutiple of {string.Join(", ", tooMany.Select(f => f.Key))}");
}
}
}
@@ -0,0 +1,12 @@
{
AllowsWebAccounts: null,
AuthenticationRequired: false,
Category: '',
Description: '',
Name: 'Login',
RequestExample: '{\r\n "Ticket": "Text",\r\n "TrimResponse": 0,\r\n "Data": {\r\n "AppVersion": "Text",\r\n "Application": "Text",\r\n "Device": "Text",\r\n "LoginKind": 0,\r\n "Password": "Text",\r\n "Username": "Text"\r\n }\r\n}',
RequestType: {},
ResponseExample: '{\r\n "Message": "Text",\r\n "MessageCode": 123,\r\n "Status": 0,\r\n "Result": [\r\n "Text"\r\n ]\r\n}',
ResponseType: {},
UriTemplate: '/Login'
}
@@ -0,0 +1,12 @@
{
AllowsWebAccounts: null,
AuthenticationRequired: false,
Category: '',
Description: '',
Name: 'Logout',
RequestExample: '{\r\n "Ticket": "Text",\r\n "TrimResponse": 0\r\n}',
RequestType: {},
ResponseExample: '{\r\n "Message": "Text",\r\n "MessageCode": 123,\r\n "Status": 0\r\n}',
ResponseType: {},
UriTemplate: '/Logout'
}
@@ -0,0 +1,35 @@
using System.Linq;
using Centron.Host.HelpPage.Metadata;
using Centron.Host.Services;
using Centron.Tests.EndToEnd.Infrastructure;
using Xunit;
using Xunit.Abstractions;
namespace Centron.Tests.EndToEnd.Tests.WebServiceHelp
{
public class WebServiceHelpTest : EndToEndTest
{
public WebServiceHelpTest(ITestOutputHelper testOutputHelper)
: base(testOutputHelper)
{
}
public override void Execute()
{
var metadata = WebServiceMetadataFactory.Get<ICentronRestService>();
Assert.NotNull(metadata);
Assert.Equal("ICentronRestService", metadata.Name);
Assert.NotEmpty(metadata.Methods);
// If we validated every web-service method
// this test will fail every time we create a new web-service method - annoying
//
// But I still want to validate, that the WebServiceMetadataFactory works
//
// We can still validate a couple well-known web-service methods that shouldn't change often
this.Verifier.Verify("LoginMethod", metadata.Methods.Single(f => f.Name == "Login"));
this.Verifier.Verify("LogoutMethod", metadata.Methods.Single(f => f.Name == "Logout"));
}
}
}