public void ExecutionDtoExtensions_CreateResponseWriter_NotWasInternalService_And_EmitionTypesXML_Success() { //-------------------------------Arrange---------------------------------- var mockDataObject = new Mock <IDSFDataObject>(); var mockResource = new Mock <IWarewolfResource>(); mockResource.Setup(o => o.DataList).Returns(new StringBuilder("<DataList>the test string to be built</DataList>")); mockDataObject.Setup(o => o.Environment.HasErrors()).Returns(false); mockDataObject.Setup(o => o.ReturnType).Returns(EmitionTypes.XML); var dataListDataFormat = DataListFormat.CreateFormat("XML", EmitionTypes.XML, "application/xml"); var executionDto = new ExecutionDto { Resource = mockResource.Object, DataObject = mockDataObject.Object, ErrorResultTO = new ErrorResultTO(), DataListFormat = dataListDataFormat, }; var executionDtoExtensions = new ExecutionDtoExtensions(executionDto); //-------------------------------Act-------------------------------------- executionDtoExtensions.CreateResponseWriter(new StringResponseWriterFactory()); //-------------------------------Assert----------------------------------- Assert.AreEqual(expected: "<DataList />", actual: executionDto.PayLoad); }
private IResponseWriter DefaultExecutionResponse(ExecutionDto executionDto) { var allErrors = new ErrorResultTO(); var currentErrors = executionDto.DataObject.Environment?.Errors?.Union(executionDto.DataObject.Environment?.AllErrors); if (currentErrors != null) { foreach (var error in currentErrors) { if (error.Length > 0) { allErrors.AddError(error, true); } } } executionDto.Request = _esbExecuteRequest; executionDto.ErrorResultTO = allErrors; var executionDtoExtensions = new ExecutionDtoExtensions(executionDto); return(executionDtoExtensions.CreateResponseWriter(new StringResponseWriterFactory())); }
public void ExecutionDtoExtensions_CreateResponseWriter_WasInternalService_And_ExecuteMessageXML_PayLoadIsNullOrEmpty_Success() { //-------------------------------Arrange---------------------------------- var mockDataObject = new Mock <IDSFDataObject>(); mockDataObject.Setup(o => o.Environment.HasErrors()).Returns(false); var esbExecuteRequestMessage = "<xml>test message</xml>"; var jsonSerializer = new Dev2JsonSerializer(); var serExecuteMessage = jsonSerializer.Serialize(esbExecuteRequestMessage); var executionDto = new ExecutionDto { DataObject = mockDataObject.Object, DataListFormat = DataListFormat.CreateFormat("XML", EmitionTypes.XML, "application/xml"), ErrorResultTO = new ErrorResultTO(), Request = new EsbExecuteRequest { WasInternalService = true, ExecuteResult = new StringBuilder(serExecuteMessage) }, Serializer = jsonSerializer, }; var executionDtoExtensions = new ExecutionDtoExtensions(executionDto); //-------------------------------Act-------------------------------------- executionDtoExtensions.CreateResponseWriter(new StringResponseWriterFactory()); //-------------------------------Assert----------------------------------- Assert.AreEqual(expected: "\"<xml>test message</xml>\"", actual: executionDto.PayLoad); }
public void ExecutionDtoExtensions_CreateResponseWriter_WasInternalService_And_ExecuteMessageXML_Success() { //-------------------------------Arrange---------------------------------- var mockDataObject = new Mock <IDSFDataObject>(); mockDataObject.Setup(o => o.Environment.HasErrors()).Returns(false); var esbExecuteRequestMessage = "<xml>test message</xml>"; var executeMessage = new ExecuteMessage(); executeMessage.Message.Append(esbExecuteRequestMessage); var jsonSerializer = new Dev2JsonSerializer(); var serExecuteMessage = jsonSerializer.Serialize(executeMessage); var executionDto = new ExecutionDto { DataObject = mockDataObject.Object, ErrorResultTO = new ErrorResultTO(), Request = new EsbExecuteRequest { WasInternalService = true, ExecuteResult = new StringBuilder(serExecuteMessage) }, Serializer = jsonSerializer, }; var executionDtoExtensions = new ExecutionDtoExtensions(executionDto); //-------------------------------Act-------------------------------------- executionDtoExtensions.CreateResponseWriter(new StringResponseWriterFactory()); //-------------------------------Assert----------------------------------- Assert.AreEqual(expected: esbExecuteRequestMessage, actual: executionDto.PayLoad); }
public void ExecutionDtoExtensions_CreateResponseWriter_NotWasInternalService_And_IsDebug_Success() { //-------------------------------Arrange---------------------------------- var mockDataObject = new Mock <IDSFDataObject>(); mockDataObject.Setup(o => o.Environment.HasErrors()).Returns(false); mockDataObject.Setup(o => o.IsDebug).Returns(true); var dataListDataFormat = DataListFormat.CreateFormat("JSON", EmitionTypes.JSON, "application/json"); var executionDto = new ExecutionDto { Resource = null, DataObject = mockDataObject.Object, ErrorResultTO = new ErrorResultTO(), DataListFormat = dataListDataFormat, }; var executionDtoExtensions = new ExecutionDtoExtensions(executionDto); //-------------------------------Act-------------------------------------- executionDtoExtensions.CreateResponseWriter(new StringResponseWriterFactory()); //-------------------------------Assert----------------------------------- Assert.AreEqual(expected: string.Empty, actual: executionDto.PayLoad); }
public void ExecutionDtoExtensions_CreateResponseWriter_NotWasInternalService_And_EmitionTypesSWAGGER_Success() { //-------------------------------Arrange---------------------------------- var mockDataObject = new Mock <IDSFDataObject>(); var mockResource = new Mock <IWarewolfResource>(); mockResource.Setup(o => o.DataList).Returns(new StringBuilder("<DataList>the test string to be built</DataList>")); mockDataObject.Setup(o => o.Environment.HasErrors()).Returns(false); mockDataObject.Setup(o => o.ReturnType).Returns(EmitionTypes.SWAGGER); var dataListDataFormat = DataListFormat.CreateFormat("SWAGGER", EmitionTypes.SWAGGER, "application/json"); var webRequestTO = new WebRequestTO { WebServerUrl = "http://serverName:3142/public/resourceName.api" }; var executionDto = new ExecutionDto { Resource = mockResource.Object, DataObject = mockDataObject.Object, ErrorResultTO = new ErrorResultTO(), DataListFormat = dataListDataFormat, WebRequestTO = webRequestTO, }; var executionDtoExtensions = new ExecutionDtoExtensions(executionDto); //-------------------------------Act-------------------------------------- executionDtoExtensions.CreateResponseWriter(new StringResponseWriterFactory()); //-------------------------------Assert----------------------------------- Assert.AreEqual(expected: "{\r\n \"swagger\": 2,\r\n \"info\": {\r\n \"title\": null,\r\n \"description\": \"\",\r\n \"version\": \"1.0.0\"\r\n },\r\n \"host\": \":0/\",\r\n \"basePath\": \"/\",\r\n \"schemes\": [\r\n \"http\"\r\n ],\r\n \"produces\": [\r\n \"application/json\",\r\n \"application/xml\"\r\n ],\r\n \"paths\": {\r\n \"serviceName\": \"/public/resourceName.api\",\r\n \"get\": {\r\n \"summary\": \"\",\r\n \"description\": \"\",\r\n \"parameters\": []\r\n }\r\n },\r\n \"responses\": {\r\n \"200\": {\r\n \"schema\": {\r\n \"$ref\": \"#/definition/Output\"\r\n }\r\n }\r\n },\r\n \"definitions\": {\r\n \"Output\": {\r\n \"type\": \"object\",\r\n \"properties\": {}\r\n }\r\n }\r\n}", actual: executionDto.PayLoad); }
public void ExecutionDtoExtensions_CreateResponseWriter_NotWasInternalService_And_EmitionTypesSWAGGER_Success() { //-------------------------------Arrange---------------------------------- var mockDataObject = new Mock <IDSFDataObject>(); var mockResource = new Mock <IWarewolfResource>(); mockResource.Setup(resource => resource.ResourceName).Returns("resourceName"); var versionInfo = new VersionInfo { VersionNumber = "1.0" }; mockResource.Setup(resource => resource.VersionInfo).Returns(versionInfo); mockResource.Setup(o => o.DataList).Returns(new StringBuilder("<DataList>the test string to be built</DataList>")); mockDataObject.Setup(o => o.Environment.HasErrors()).Returns(false); mockDataObject.Setup(o => o.ReturnType).Returns(EmitionTypes.SWAGGER); var dataListDataFormat = DataListFormat.CreateFormat("SWAGGER", EmitionTypes.SWAGGER, "application/json"); var webRequestTO = new WebRequestTO { WebServerUrl = "http://serverName:3142/public/resourceName.api" }; var executionDto = new ExecutionDto { Resource = mockResource.Object, DataObject = mockDataObject.Object, ErrorResultTO = new ErrorResultTO(), DataListFormat = dataListDataFormat, WebRequestTO = webRequestTO, }; var executionDtoExtensions = new ExecutionDtoExtensions(executionDto); //-------------------------------Act-------------------------------------- executionDtoExtensions.CreateResponseWriter(new StringResponseWriterFactory()); //-------------------------------Assert----------------------------------- var expectedPayload = "{\r\n \"openapi\": \"3.0.1\",\r\n \"info\": {\r\n \"title\": \"resourceName\",\r\n \"description\": \"resourceName\",\r\n \"version\": \"1.0\"\r\n },\r\n \"servers\": [\r\n {\r\n \"url\": \"http://servername\"\r\n }\r\n ],\r\n \"paths\": {\r\n \"/public/resourceName\": {\r\n \"get\": {\r\n \"tags\": [\r\n \"\"\r\n ],\r\n \"description\": \"\",\r\n \"parameters\": [],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"Success\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"object\",\r\n \"properties\": {}\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}"; Assert.AreEqual(expected: expectedPayload, actual: executionDto.PayLoad); }
public void WebServerRequest_CreateResponseWriter() { var executionDto = new ExecutionDto(); var mock = new Mock <IDSFDataObject>(); mock.SetupGet(o => o.Environment).Returns(new ExecutionEnvironment()); mock.SetupGet(o => o.IsDebug).Returns(true); mock.SetupGet(o => o.RemoteInvoke).Returns(false); mock.SetupGet(o => o.RemoteNonDebugInvoke).Returns(false); executionDto.DataListFormat = DataListFormat.CreateFormat("JSON", EmitionTypes.JSON, "application/json"); executionDto.ErrorResultTO = new Data.TO.ErrorResultTO(); executionDto.DataObject = mock.Object; executionDto.Request = new Communication.EsbExecuteRequest(); executionDto.Request.WasInternalService = false; var executionDtoExtentions = new ExecutionDtoExtensions(executionDto); executionDtoExtentions.CreateResponseWriter(new StringResponseWriterFactory()); }
public override IResponseWriter BuildResponse(WebRequestTO webRequest, string serviceName) { var formatter = DataListFormat.CreateFormat("JSON", EmitionTypes.JSON, "application/json"); var executionDto = new ExecutionDto { WebRequestTO = webRequest, ServiceName = serviceName, DataObject = _dataObject, DataListIdGuid = _executionDataListId, WorkspaceID = _workspaceGuid, Resource = _resource, DataListFormat = formatter, PayLoad = _executePayload ?? string.Empty, Serializer = _serializer, }; var allErrors = new ErrorResultTO(); var currentErrors = executionDto.DataObject.Environment?.Errors?.Union(executionDto.DataObject.Environment?.AllErrors); if (currentErrors != null) { foreach (var error in currentErrors) { if (error.Length > 0) { allErrors.AddError(error, true); } } } executionDto.Request = _esbExecuteRequest; executionDto.ErrorResultTO = allErrors; if (executionDto.DataObject.ExecutionException is AccessDeniedException) { throw executionDto.DataObject.ExecutionException; } var executionDtoExtensions = new ExecutionDtoExtensions(executionDto); var resp = executionDtoExtensions.CreateResponse(); var content = resp.Content; if (!content.Contains("UserGroups")) { ThrowInternalServerError(); } var json = JsonConvert.DeserializeObject <UserGroupsResponse>(resp.Content); var userGroups = json?.UserGroups.ToList(); bool hasInvalidOutputs = false; hasInvalidOutputs = userGroups.Count == 0; foreach (var o in (userGroups)) { if (string.IsNullOrEmpty(o.Name) || string.IsNullOrWhiteSpace(o.Name)) { hasInvalidOutputs = true; break; } } return(hasInvalidOutputs ? ThrowInternalServerError() : CreateEncryptedResponse(resp.Content)); }
public override IResponseWriter BuildResponse(WebRequestTO webRequest, string serviceName) { var formatter = DataListFormat.CreateFormat("JSON", EmitionTypes.JSON, "application/json"); var executionDto = new ExecutionDto { WebRequestTO = webRequest, ServiceName = serviceName, DataObject = _dataObject, DataListIdGuid = _executionDataListId, WorkspaceID = _workspaceGuid, Resource = _resource, DataListFormat = formatter, PayLoad = _executePayload ?? string.Empty, Serializer = _serializer, }; var allErrors = new ErrorResultTO(); var currentErrors = executionDto.DataObject.Environment?.Errors?.Union(executionDto.DataObject.Environment?.AllErrors); if (currentErrors != null) { foreach (var error in currentErrors) { if (error.Length > 0) { allErrors.AddError(error, true); } } } executionDto.Request = _esbExecuteRequest; executionDto.ErrorResultTO = allErrors; if (executionDto.DataObject.ExecutionException is AccessDeniedException) { throw executionDto.DataObject.ExecutionException; } var executionDtoExtensions = new ExecutionDtoExtensions(executionDto); var resp = executionDtoExtensions.CreateResponse(); var content = resp.Content; if (!content.Contains("UserGroups")) { var dataObject = executionDto.DataObject; var emissionType = new Uri(dataObject.WebUrl).GetEmitionType(); var message = string.Format(ErrorResource.TokenNotAuthorizedToExecuteOuterWorkflowException, dataObject.ServiceName); Throw(emissionType, HttpStatusCode.Unauthorized, GlobalConstants.TOKEN_UNAUTHORIZED, message); } var json = JsonConvert.DeserializeObject <UserGroupsResponse>(resp.Content); var userGroups = json?.UserGroups.ToList(); var hasInvalidOutputs = userGroups?.Count == 0; if (userGroups != null) { foreach (var o in (userGroups)) { if (string.IsNullOrEmpty(o.Name) || string.IsNullOrWhiteSpace(o.Name)) { hasInvalidOutputs = true; break; } } } var webUrl = executionDto.WebRequestTO.WebServerUrl; return(hasInvalidOutputs ? Throw(new Uri(webUrl).GetEmitionType(), HttpStatusCode.BadRequest, GlobalConstants.BAD_REQUEST, "invalid login override workflow selected: outputs not valid") : CreateEncryptedResponse(new Uri(webUrl).GetEmitionType(), resp.Content)); }