public async Task GetInstanceDataForAlgo() { UploadStringDTO metadataForUploadedBinary = await UploadStringAlgo(); string algoID = metadataForUploadedBinary.AlgoId; GetPopulatedInstanceDataDTO getinstanceAlgo = new GetPopulatedInstanceDataDTO(); InstanceDataDTO instanceForAlgo = getinstanceAlgo.returnInstanceDataDTO(algoID); string url = ApiPaths.ALGO_STORE_ALGO_INSTANCE_DATA; var postInstanceDataResponse = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(instanceForAlgo), Method.POST); Assert.That(postInstanceDataResponse.Status == HttpStatusCode.OK); InstanceDataDTO postInstanceData = JsonUtils.DeserializeJson <InstanceDataDTO>(postInstanceDataResponse.ResponseJson); Dictionary <string, string> queryParmas = new Dictionary <string, string>() { { "algoId", postInstanceData.AlgoId }, { "instanceId", postInstanceData.InstanceId } }; var getInstanceDataResponse = await this.Consumer.ExecuteRequest(url, queryParmas, null, Method.GET); Assert.That(getInstanceDataResponse.Status == HttpStatusCode.OK); InstanceDataDTO getInstanceData = JsonUtils.DeserializeJson <InstanceDataDTO>(getInstanceDataResponse.ResponseJson); Assert.That(postInstanceData.AlgoClientId, Is.EqualTo(instanceForAlgo.AlgoClientId)); Assert.That(postInstanceData.AlgoId, Is.EqualTo(instanceForAlgo.AlgoId)); Assert.That(postInstanceData.InstanceName, Is.EqualTo(instanceForAlgo.InstanceName)); }
public async Task PostInstanceDataForAlgo() { UploadStringDTO metadataForUploadedBinary = await UploadStringAlgo(); string algoID = metadataForUploadedBinary.AlgoId; GetPopulatedInstanceDataDTO getinstanceAlgo = new GetPopulatedInstanceDataDTO(); InstanceDataDTO instanceForAlgo = getinstanceAlgo.returnInstanceDataDTO(algoID); string url = ApiPaths.ALGO_STORE_ALGO_INSTANCE_DATA; var postInstanceDataResponse = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(instanceForAlgo), Method.POST); Assert.That(postInstanceDataResponse.Status == HttpStatusCode.OK); InstanceDataDTO postInstanceData = JsonUtils.DeserializeJson <InstanceDataDTO>(postInstanceDataResponse.ResponseJson); Assert.That(postInstanceData.AlgoId, Is.EqualTo((instanceForAlgo.AlgoId))); Assert.That(postInstanceData.AlgoClientId, Is.EqualTo(instanceForAlgo.AlgoClientId)); Assert.That(postInstanceData.AlgoId, Is.EqualTo(instanceForAlgo.AlgoId)); Assert.That(postInstanceData.InstanceName, Is.EqualTo(instanceForAlgo.InstanceName)); ClientInstanceEntity instanceDataEntityExists = await ClientInstanceRepository.TryGetAsync(t => t.Id == postInstanceData.InstanceId) as ClientInstanceEntity; Assert.NotNull(instanceDataEntityExists); }
public async Task PostInvalidAlgoId() { UploadStringDTO metadataForUploadedBinary = await UploadStringAlgo(); string algoID = metadataForUploadedBinary.AlgoId; instanceForAlgo = GetPopulatedInstanceDataDTO.returnInstanceDataDTO("123 invalid algo id"); string url = ApiPaths.ALGO_STORE_ALGO_INSTANCE_DATA; var postInstanceDataResponse = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(instanceForAlgo), Method.POST); Assert.That(postInstanceDataResponse.Status, Is.EqualTo(HttpStatusCode.NotFound), "we should receive not found response code"); }
public async Task GetAllClientInstanceData() { UploadStringDTO metadataForUploadedBinary = await UploadStringAlgo(); string algoID = metadataForUploadedBinary.AlgoId; GetPopulatedInstanceDataDTO getinstanceAlgo = new GetPopulatedInstanceDataDTO(); InstanceDataDTO instanceForAlgo = getinstanceAlgo.returnInstanceDataDTO(algoID); string url = ApiPaths.ALGO_STORE_ALGO_INSTANCE_DATA; var postInstanceDataResponse = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(instanceForAlgo), Method.POST); Assert.That(postInstanceDataResponse.Status == HttpStatusCode.OK); InstanceDataDTO postInstanceData = JsonUtils.DeserializeJson <InstanceDataDTO>(postInstanceDataResponse.ResponseJson); Assert.That(postInstanceData.AlgoClientId, Is.EqualTo(instanceForAlgo.AlgoClientId)); Assert.That(postInstanceData.AlgoId, Is.EqualTo(instanceForAlgo.AlgoId)); Assert.That(postInstanceData.InstanceName, Is.EqualTo(instanceForAlgo.InstanceName)); ClientInstanceEntity instanceDataEntityExists = await ClientInstanceRepository.TryGetAsync(t => t.Id == postInstanceData.InstanceId) as ClientInstanceEntity; Assert.NotNull(instanceDataEntityExists); url = ApiPaths.ALGO_STORE_ALGO_GET_ALL_INSTANCE_DATA; Dictionary <string, string> queryParmas = new Dictionary <string, string>() { { "algoId", algoID } }; var responceAllClientInstance = await this.Consumer.ExecuteRequest(url, queryParmas, null, Method.GET); Assert.That(responceAllClientInstance.Status, Is.EqualTo(HttpStatusCode.OK)); Object responceClientGetAll = JsonUtils.DeserializeJson(responceAllClientInstance.ResponseJson); List <InstanceDataDTO> listAllClinetObjects = Newtonsoft.Json.JsonConvert.DeserializeObject <List <InstanceDataDTO> >(responceClientGetAll.ToString()); int mathcedKeysCounter = 0; foreach (InstanceDataDTO currentData in listAllClinetObjects) { bool Exists = currentData.InstanceId.Equals(postInstanceData.InstanceId); if (Exists) { mathcedKeysCounter++; } } Assert.That(mathcedKeysCounter, Is.EqualTo(1)); }
public async Task PostInstanceDataOnlyWithMetadata() { UploadStringDTO metadataForUploadedBinary = await UploadStringAlgo(); string algoID = metadataForUploadedBinary.AlgoId; GetPopulatedInstanceDataDTO getinstanceAlgo = new GetPopulatedInstanceDataDTO(); InstanceDataDTO instanceForAlgo = getinstanceAlgo.returnInstanceDataDTO(algoID); string url = ApiPaths.ALGO_STORE_ALGO_INSTANCE_DATA; var postInstanceDataResponse = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(instanceForAlgo), Method.POST); Assert.That(postInstanceDataResponse.Status == HttpStatusCode.OK); }
public async Task PostInvalidVolume() { UploadStringDTO metadataForUploadedBinary = await UploadStringAlgo(); string algoID = metadataForUploadedBinary.AlgoId; instanceForAlgo = GetPopulatedInstanceDataDTO.returnInstanceDataDTONegativeVolume(algoID); string url = ApiPaths.ALGO_STORE_ALGO_INSTANCE_DATA; var postInstanceDataResponse = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(instanceForAlgo), Method.POST); AlgoErrorDTO postInstanceDataResponseDTO = JsonUtils.DeserializeJson <AlgoErrorDTO>(postInstanceDataResponse.ResponseJson); Assert.That(postInstanceDataResponse.Status, Is.EqualTo(HttpStatusCode.BadRequest), "we should receive bad request response code"); Assert.That(postInstanceDataResponseDTO.ErrorMessage, Does.Contain("Code:1000-ValidationError Message"), "we should receive validation erorr for invalid volume"); }
public async Task PostInvalidInstanceTradedAsset() { UploadStringDTO metadataForUploadedBinary = await UploadStringAlgo(); string algoID = metadataForUploadedBinary.AlgoId; instanceForAlgo = GetPopulatedInstanceDataDTO.returnInstanceDataDTOInvalidTradedAsset(algoID); string url = ApiPaths.ALGO_STORE_ALGO_INSTANCE_DATA; var postInstanceDataResponse = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(instanceForAlgo), Method.POST); AlgoErrorDTO postInstanceDataResponseDTO = JsonUtils.DeserializeJson <AlgoErrorDTO>(postInstanceDataResponse.ResponseJson); Assert.That(postInstanceDataResponse.Status, Is.EqualTo(HttpStatusCode.BadRequest), "should be bad response erorr code"); Assert.That(postInstanceDataResponseDTO.ErrorMessage, Does.Contain("ValidationError Message:Asset <USD> is not valid for asset pair <BTCEUR>"), "we should receive erorr for the invalid traded asset"); }
public async Task PostInvalidInstanceAssetPair() { UploadStringDTO metadataForUploadedBinary = await UploadStringAlgo(); string algoID = metadataForUploadedBinary.AlgoId; instanceForAlgo = GetPopulatedInstanceDataDTO.returnInstanceDataDTOInvalidAssetPair(algoID); string url = ApiPaths.ALGO_STORE_ALGO_INSTANCE_DATA; var postInstanceDataResponse = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(instanceForAlgo), Method.POST); AlgoErrorDTO postInstanceDataResponseDTO = JsonUtils.DeserializeJson <AlgoErrorDTO>(postInstanceDataResponse.ResponseJson); Assert.That(postInstanceDataResponse.Status, Is.EqualTo(HttpStatusCode.InternalServerError), "responce should equals internal server erorr"); Assert.That(postInstanceDataResponseDTO.ErrorMessage, Does.Contain("NotFound from asset service calling AssetPairGetWithHttpMessagesAsync"), "we should receive erorr for not found asset pair"); }
public async Task <List <BuilInitialDataObjectDTO> > UploadSomeBaseMetaData(int nuberDto) { string url = ApiPaths.ALGO_STORE_METADATA; string message; List <MetaDataDTO> metadataList = new List <MetaDataDTO>(); List <MetaDataResponseDTO> responceMetadataList = new List <MetaDataResponseDTO>(); for (int i = 0; i < nuberDto; i++) { MetaDataDTO metadata = new MetaDataDTO() { Name = Helpers.RandomString(13), Description = Helpers.RandomString(13) }; metadataList.Add(metadata); } foreach (var metadata in metadataList) { var response = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(metadata), Method.POST); message = $"{url} returned status: {response.Status} and response: {response.ResponseJson}. Expected: {HttpStatusCode.OK}"; Assert.That(response.Status, Is.EqualTo(HttpStatusCode.OK), message); MetaDataResponseDTO responceMetaData = JsonUtils.DeserializeJson <MetaDataResponseDTO>(response.ResponseJson); responceMetadataList.Add(responceMetaData); } for (int i = 0; i < nuberDto; i++) { url = ApiPaths.ALGO_STORE_UPLOAD_STRING; UploadStringDTO stringDTO = new UploadStringDTO() { AlgoId = responceMetadataList[i].Id, Data = this.CSharpAlgoString }; var response = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(stringDTO), Method.POST); Assert.That(response.Status, Is.EqualTo(HttpStatusCode.NoContent)); instanceForAlgo = GetPopulatedInstanceDataDTO.returnInstanceDataDTO(stringDTO.AlgoId); url = ApiPaths.ALGO_STORE_ALGO_INSTANCE_DATA; var postInstanceDataResponse = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(instanceForAlgo), Method.POST); message = $"{url} returned status: {postInstanceDataResponse.Status} and response: {postInstanceDataResponse.ResponseJson}. Expected: {HttpStatusCode.OK}"; Assert.That(postInstanceDataResponse.Status, Is.EqualTo(HttpStatusCode.OK), message); postInstanceData = JsonUtils.DeserializeJson <InstanceDataDTO>(postInstanceDataResponse.ResponseJson); url = ApiPaths.ALGO_STORE_DEPLOY_BINARY; DeployBinaryDTO deploy = new DeployBinaryDTO() { AlgoId = stringDTO.AlgoId, InstanceId = postInstanceData.InstanceId, }; var deployBynaryResponse = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(deploy), Method.POST); message = $"{url} returned status: {deployBynaryResponse.Status} and response: {deployBynaryResponse.ResponseJson}. Expected: {HttpStatusCode.OK}"; Assert.That(postInstanceDataResponse.Status, Is.EqualTo(HttpStatusCode.OK)); BuilInitialDataObjectDTO tempDataDTO = new BuilInitialDataObjectDTO() { AlgoId = stringDTO.AlgoId, InstanceId = postInstanceData.InstanceId, Name = responceMetadataList[i].Name, Description = responceMetadataList[i].Description }; initialDTOObjectsList.Add(tempDataDTO); } return(initialDTOObjectsList); }
public async Task DeployStringAlgo() { string url = ApiPaths.ALGO_STORE_METADATA; MetaDataDTO metadata = new MetaDataDTO() { Name = Helpers.RandomString(13), Description = Helpers.RandomString(13) }; var response = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(metadata), Method.POST); MetaDataResponseDTO responceMetaData = JsonUtils.DeserializeJson <MetaDataResponseDTO>(response.ResponseJson); url = ApiPaths.ALGO_STORE_UPLOAD_STRING; UploadStringDTO stringDTO = new UploadStringDTO() { AlgoId = responceMetaData.Id, Data = this.CSharpAlgoString }; var responsetemp = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(stringDTO), Method.POST); Assert.True(responsetemp.Status == System.Net.HttpStatusCode.NoContent); GetPopulatedInstanceDataDTO getinstanceAlgo = new GetPopulatedInstanceDataDTO(); InstanceDataDTO instanceForAlgo = getinstanceAlgo.returnInstanceDataDTO(stringDTO.AlgoId); url = ApiPaths.ALGO_STORE_ALGO_INSTANCE_DATA; var postInstanceDataResponse = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(instanceForAlgo), Method.POST); Assert.That(postInstanceDataResponse.Status == System.Net.HttpStatusCode.OK); InstanceDataDTO postInstanceData = JsonUtils.DeserializeJson <InstanceDataDTO>(postInstanceDataResponse.ResponseJson); url = ApiPaths.ALGO_STORE_DEPLOY_BINARY; DeployBinaryDTO deploy = new DeployBinaryDTO() { AlgoId = stringDTO.AlgoId, InstanceId = postInstanceData.InstanceId, }; var deployBynaryResponse = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(deploy), Method.POST); Assert.That(postInstanceDataResponse.Status == System.Net.HttpStatusCode.OK); url = ApiPaths.ALGO_STORE_CASCADE_DELETE; int retryCounter = 0; CascadeDeleteDTO editMetaData = new CascadeDeleteDTO() { AlgoId = postInstanceData.AlgoId, InstanceId = postInstanceData.InstanceId }; var responceCascadeDelete = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(editMetaData), Method.POST); // Currently we can not send cascade delete to kubernatees if he has not build the algo before that thorus not found and we leave data while (responceCascadeDelete.Status.Equals(System.Net.HttpStatusCode.NotFound) && retryCounter <= 30) { System.Threading.Thread.Sleep(10000); responceCascadeDelete = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(editMetaData), Method.POST); retryCounter++; } Assert.That(responceCascadeDelete.Status == System.Net.HttpStatusCode.NoContent); }