/// <summary> /// Handles Web service request data in XML/JSON embedded specialization /// </summary> /// <param name="wseTestStep">TestStep of WSE Artifacts</param> /// <param name="apiTestStep">TestStep of API Engine Artifacts</param> /// <param name="payloadParser">Parse xml and json payload from Wse XModules and TestSteps</param> /// <param name="payloadSetterFactory">Create module attributes and Set values for payload in for Api artifacts </param> public override void HandleSpecialization(XTestStep wseTestStep, XTestStep apiTestStep, IPayloadParser payloadParser, IPayloadSetterFactory payloadSetterFactory) { if (wseTestStep.TestStepValues == null) { return; } if (SpecializationHelper.IsRequestIsUsingEmbeddedModule(wseTestStep, out XModule requestSpecializationModule)) { var requestPayload = payloadParser.Parse(wseTestStep, "=>SUBPARTS:XTestStepValue[Name==\"Request\"]->SUBPARTS:XTestStepValue"); var apiModule = (apiTestStep.Module as ApiModule); apiModule?.APISetMessagePayload(requestPayload); } else { successor?.HandleSpecialization(wseTestStep, apiTestStep, payloadParser, payloadSetterFactory); } }
/// <summary> /// Identify location of existing WSE Specialized Modules and create generic folder for storing API modules /// </summary> /// <param name="rootComponentFolder"> Component Folder at which migration is executing </param> /// <param name="xTestStep">TestStep for WseArtifacts</param> /// <param name="parserResult">Transport information used to fill in Request and Response Module</param> /// <returns></returns> public (TCFolder, string) CreateFolderForApiModules(TCObject rootComponentFolder, XTestStep xTestStep, IWseArtifactsParser parserResult) { if (SpecializationHelper.IsRequestIsUsingEmbeddedModule(xTestStep, out XModule requestSpecializationModule) ) { return(CreateFolderForApiModules(requestSpecializationModule), requestSpecializationModule.Name); } if (SpecializationHelper.IsResponseIsUsingEmbeddedModule(xTestStep, out XModule responseSpecializationModule)) { return(CreateFolderForApiModules(responseSpecializationModule), responseSpecializationModule.Name); } var apiModulesFolder = GetOrCreateApiModulesFolder(rootComponentFolder); var moduleName = CommonUtilities.CreateModuleFolderName(xTestStep, parserResult); var folder = apiModulesFolder.CreateFolder(); folder.Name = $"API_{moduleName}"; folder.EnsureUniqueName(); return(folder, moduleName); }