/// <summary> /// Creates response module /// </summary> /// <param name="moduleFolder">Folder path reference to create Response module</param> /// <param name="name">Name of Response module</param> /// <param name="wseModuleParser">Contains transport information used to fill in Response Module</param> /// <param name="correlationId">Uniquely identify the Response Module</param> /// <returns></returns> public static ApiModule CreateResponseModule(TCFolder moduleFolder, string name, IWseArtifactsParser wseModuleParser, string correlationId ) { //tosca specific properties ApiModule responseApiModule = SetModuleStandardProperties(moduleFolder, name, correlationId, ScanTag.GetResponseScanTag(wseModuleParser)); responseApiModule.AddTechnicalIdParam("Direction", Direction.In.ToString()); responseApiModule.AddTechnicalIdParam("InactiveNodes", "Keep"); responseApiModule.AddTechnicalIdParam("IsRequest", "False"); responseApiModule.AddConfigurationParam("Executor", "HttpReceive"); responseApiModule.AddHeaders(wseModuleParser.ResponseHeaders); responseApiModule.AddTechnicalIdParam("StatusCode", wseModuleParser.ResponseStatus); if (!string.IsNullOrEmpty(wseModuleParser.ResponsePayload)) { responseApiModule.APISetMessagePayload(wseModuleParser.ResponsePayload); } return(responseApiModule); }
/// <summary> /// Creates request module /// </summary> /// <param name="moduleFolder">Folder path reference to create Request module</param> /// <param name="name">Name of Request module</param> /// <param name="wseModuleParser">Contains transport information used to fill in Request Module</param> /// <param name="correlationId">Uniquely identify the Request Module</param> /// <returns></returns> public static ApiModule CreateRequestModule(TCFolder moduleFolder, string name, IWseArtifactsParser wseModuleParser, string correlationId) { //Module Properties ApiModule requestApiModule = SetModuleStandardProperties(moduleFolder, name, correlationId, ScanTag.GetRequestScanTag(wseModuleParser)); //Request Properties requestApiModule.AddTechnicalIdParam("Direction", Direction.Out.ToString()); requestApiModule.AddTechnicalIdParam("InactiveNodes", "Remove"); requestApiModule.AddTechnicalIdParam("IsRequest", "True"); requestApiModule.AddTechnicalIdParam("MessagesGenerated", "True"); requestApiModule.AddConfigurationParam("Executor", "HttpSend"); requestApiModule.AddTechnicalIdParam("Method", wseModuleParser.Method); requestApiModule.AddTechnicalIdParam("Endpoint", wseModuleParser.Endpoint); requestApiModule.AddTechnicalIdParam("Resource", wseModuleParser.Resource); requestApiModule.AddQueryParams(wseModuleParser.QueryParams); requestApiModule.AddPathParams(wseModuleParser.PathParams); requestApiModule.AddHeaders(wseModuleParser.Headers); if (!string.IsNullOrEmpty(wseModuleParser.RequestPayload)) { requestApiModule.APISetMessagePayload(wseModuleParser.RequestPayload); } return(requestApiModule); }
public void CreateApiModulesAndTestSteps(TCObject rootComponentFolder, XModule wseModule, ModuleType moduleType) { foreach (var teststep in CommonUtilities.GetFilteredWseTestSteps(rootComponentFolder, wseModule.TestSteps)) { try { var requestSpecializationModule = teststep.TestStepValues .FirstOrDefault( x => x.Name == "Request" && (x.SpecializationModule.Name != "Web service request data in JSON Resource" && x.SpecializationModule.Name != "Web service request data in XML Resource" )) ?.SpecializationModule; var responseSpecializationModule = teststep.TestStepValues .FirstOrDefault( x => x.Name == "Response" && (x.SpecializationModule.Name != "Web service response data in JSON Resource" && x.SpecializationModule.Name != "Web service response data in XML Resource" )) ?.SpecializationModule; if (responseSpecializationModule == null && requestSpecializationModule == null) { return; } string correlationId = Guid.NewGuid().ToString(); var testStepParser = new WseTestStepParser(moduleType); testStepParser.Parse(teststep, requestSpecializationModule, responseSpecializationModule); ApiModule requestApiModule; ApiModule responseApiModule; ApiModule apiModule = null; switch (moduleType) { case ModuleType.CommunicatewithWebserviceRestJson when !string.IsNullOrEmpty(testStepParser.Endpoint): case ModuleType.CommunicatewithWebservice when !string.IsNullOrEmpty(CommonUtilities.GetSoapAction(testStepParser.Headers)): apiModule = SearchApiModuleByScanTag(rootComponentFolder, testStepParser, requestSpecializationModule, responseSpecializationModule, SearchRequestModule); break; } if (apiModule == null) { var apiModuleFolder = new FolderStructureHandler().CreateFolderForWseModules( rootComponentFolder, requestSpecializationModule ?? responseSpecializationModule); requestApiModule = ApiModuleCreator.CreateRequestModule(apiModuleFolder, requestSpecializationModule == null ? responseSpecializationModule.Name : requestSpecializationModule.Name, testStepParser, correlationId, ScanTag.GetRequestScanTag(testStepParser)); string responseModuleName = requestSpecializationModule == null ? responseSpecializationModule.Name : requestSpecializationModule.Name; responseApiModule = ApiModuleCreator.CreateResponseModule(apiModuleFolder, $"{responseModuleName} Response", testStepParser, correlationId, ScanTag.GetResponseScanTag(testStepParser)); } else { requestApiModule = apiModule; responseApiModule = SearchApiModuleByScanTag(rootComponentFolder, testStepParser, requestSpecializationModule, responseSpecializationModule, SearchResponseModule); } FileLogger.Instance.Debug( $"Completed migration for WSE Module : '{wseModule.Name}' NodePath:'{wseModule.NodePath}'"); WseTestStepImporter wseTestStepMigrator = new WseTestStepImporter(); wseTestStepMigrator.MigrateTestSteps(rootComponentFolder, requestApiModule, responseApiModule, new List <XTestStep>() { teststep }, moduleType); } catch (Exception e) { FileLogger.Instance.Error(e); } } }
private ApiModule SearchResponseModule(TCObject rootComponentFolder, WseTestStepParser testStepParser) { return(ScanTag.SearchModuleByScanTag(rootComponentFolder, ScanTag.GetResponseScanTag(testStepParser))); }