public async Task CheckStatisticsReturnsTradedAssetAndAssetTwoNames() { Dictionary <string, string> queryParams = new Dictionary <string, string>() { { "algoId", postInstanceData.AlgoId }, { "instanceId", postInstanceData.InstanceId } }; var instanceDataResponse = await Consumer.ExecuteRequest(algoInstanceDataPath, queryParams, null, Method.GET); Assert.That(instanceDataResponse.Status, Is.EqualTo(HttpStatusCode.OK)); // Wait up to 3 minutes for the algo to be started await AlgoStoreCommonSteps.WaitAlgoToStart(ClientInstanceRepository, postInstanceData); StatisticsDTO statistics = await AlgoStoreCommonSteps.GetStatisticsResponseAsync(Consumer, postInstanceData); // TODO: Update the test to use dynamic TradedAsset and AssetTwo // Assert statistics endpoint returns "TradedAssetName" and "AssetTwoName" Assert.That(statistics.TradedAssetName, Is.EqualTo("EUR")); Assert.That(statistics.AssetTwoName, Is.EqualTo("BTC")); // Stop the algo instance await AlgoStoreCommonSteps.StopAlgoInstance(Consumer, postInstanceData); }
public async Task CheckSummaryRowUpdatedWhenAlogIsStopped() { ClientInstanceEntity instanceDataEntityExists = await ClientInstanceRepository.TryGetAsync(t => t.Id == postInstanceData.InstanceId) as ClientInstanceEntity; Assert.NotNull(instanceDataEntityExists); Dictionary <string, string> queryParmas = new Dictionary <string, string>() { { "algoId", postInstanceData.AlgoId }, { "instanceId", postInstanceData.InstanceId } }; var instanceDataResponse = await this.Consumer.ExecuteRequest(algoInstanceDataPath, queryParmas, null, Method.GET); Assert.That(instanceDataResponse.Status, Is.EqualTo(HttpStatusCode.OK)); // Get initial statistics values from Azure AlgoInstanceStatisticsEntity initialAlgoInstanceStatisticsEntity = await AlgoInstanceStaticsticsRepository.TryGetAsync(t => t.InstanceId == postInstanceData.InstanceId && t.Id == "Summary") as AlgoInstanceStatisticsEntity; // Assert LastTradedAssetBalance and LastAssetTwoBalance equal InitialTradedAssetBalance and InitialAssetTwoBalance // Before an algo is started, LastTradedAssetBalance and LastAssetTwoBalance should be equal to InitialTradedAssetBalance and InitialAssetTwoBalance Assert.That(initialAlgoInstanceStatisticsEntity.InitialTradedAssetBalance, Is.EqualTo(initialAlgoInstanceStatisticsEntity.LastTradedAssetBalance)); Assert.That(initialAlgoInstanceStatisticsEntity.InitialAssetTwoBalance, Is.EqualTo(initialAlgoInstanceStatisticsEntity.LastAssetTwoBalance)); // Wait up to 3 minutes for the algo to be started await AlgoStoreCommonSteps.WaitAlgoToStart(ClientInstanceRepository, postInstanceData); // Get actual values from statistics endpoint 6 times within 1 minute StatisticsDTO statistics; for (int i = 0; i < 6; i++) { statistics = await AlgoStoreCommonSteps.GetStatisticsResponseAsync(Consumer, postInstanceData); } // Wait for 5 seconds before getting statistics values from Azure Wait.ForPredefinedTime(5000); // Get updated statistics values from Azure AlgoInstanceStatisticsEntity updatedAlgoInstanceStatisticsEntity = await AlgoInstanceStaticsticsRepository.TryGetAsync(t => t.InstanceId == postInstanceData.InstanceId && t.Id == "Summary") as AlgoInstanceStatisticsEntity; // Assert updated LastTradedAssetBalance and LastAssetTwoBalance does not equal InitialTradedAssetBalance and InitialAssetTwoBalance // In algo is not stopped, invoking statistics endpoint should update LastTradedAssetBalance and LastAssetTwoBalance Assert.That(updatedAlgoInstanceStatisticsEntity.LastTradedAssetBalance, Is.Not.EqualTo(updatedAlgoInstanceStatisticsEntity.InitialTradedAssetBalance)); Assert.That(updatedAlgoInstanceStatisticsEntity.LastAssetTwoBalance, Is.Not.EqualTo(updatedAlgoInstanceStatisticsEntity.InitialAssetTwoBalance)); // Assert InitialTradedAssetBalance and InitialAssetTwoBalance are not updated after invoking statistics endpoint Assert.That(updatedAlgoInstanceStatisticsEntity.InitialTradedAssetBalance, Is.EqualTo(initialAlgoInstanceStatisticsEntity.InitialTradedAssetBalance)); Assert.That(updatedAlgoInstanceStatisticsEntity.InitialAssetTwoBalance, Is.EqualTo(initialAlgoInstanceStatisticsEntity.InitialAssetTwoBalance)); // Stop the algo instance await AlgoStoreCommonSteps.StopAlgoInstance(Consumer, postInstanceData); // Get statistics values from Azure after the algo is stopped and before calling statistics endpoint AlgoInstanceStatisticsEntity afterStoppingAlgoInstanceStatisticsEntity = await AlgoInstanceStaticsticsRepository.TryGetAsync(t => t.InstanceId == postInstanceData.InstanceId && t.Id == "Summary") as AlgoInstanceStatisticsEntity; // Assert after stopping LastTradedAssetBalance and LastAssetTwoBalance does not equal updated LastTradedAssetBalance and LastAssetTwoBalance // After stopping an algo, statistics should be updated with the current values Assert.That(afterStoppingAlgoInstanceStatisticsEntity.LastTradedAssetBalance, Is.Not.EqualTo(updatedAlgoInstanceStatisticsEntity.LastTradedAssetBalance)); Assert.That(afterStoppingAlgoInstanceStatisticsEntity.LastAssetTwoBalance, Is.Not.EqualTo(updatedAlgoInstanceStatisticsEntity.LastAssetTwoBalance)); // Assert InitialTradedAssetBalance and InitialAssetTwoBalance are not updated after stoppong the algo Assert.That(afterStoppingAlgoInstanceStatisticsEntity.InitialTradedAssetBalance, Is.EqualTo(initialAlgoInstanceStatisticsEntity.InitialTradedAssetBalance)); Assert.That(afterStoppingAlgoInstanceStatisticsEntity.InitialAssetTwoBalance, Is.EqualTo(initialAlgoInstanceStatisticsEntity.InitialAssetTwoBalance)); // Wait for a minute and invoke statistics endpoint again statistics = await AlgoStoreCommonSteps.GetStatisticsResponseAsync(Consumer, postInstanceData, 60000); // Wait for 5 seconds before getting statistics values from Azure Wait.ForPredefinedTime(5000); // Get statistics values from Azure after calling statistics endpoint AlgoInstanceStatisticsEntity finalAlgoInstanceStatisticsEntity = await AlgoInstanceStaticsticsRepository.TryGetAsync(t => t.InstanceId == postInstanceData.InstanceId && t.Id == "Summary") as AlgoInstanceStatisticsEntity; // Assert final LastTradedAssetBalance and LastAssetTwoBalance equal LastTradedAssetBalance and LastAssetTwoBalance from after stopping the algo // After stopping an algo, invoking statistics endpoint should not update LastTradedAssetBalance and LastAssetTwoBalance Assert.That(finalAlgoInstanceStatisticsEntity.LastTradedAssetBalance, Is.EqualTo(afterStoppingAlgoInstanceStatisticsEntity.LastTradedAssetBalance)); Assert.That(finalAlgoInstanceStatisticsEntity.LastAssetTwoBalance, Is.EqualTo(afterStoppingAlgoInstanceStatisticsEntity.LastAssetTwoBalance)); // Assert InitialTradedAssetBalance and InitialAssetTwoBalance are not updated after stoppong the algo Assert.That(finalAlgoInstanceStatisticsEntity.InitialTradedAssetBalance, Is.EqualTo(initialAlgoInstanceStatisticsEntity.InitialTradedAssetBalance)); Assert.That(finalAlgoInstanceStatisticsEntity.InitialAssetTwoBalance, Is.EqualTo(initialAlgoInstanceStatisticsEntity.InitialAssetTwoBalance)); }