public void Simulate() { var request = new SimulationRequestModel { ProjectId = 1, ResourceId = 4, StatisticalEngineId = 1, CreatedBy = "test user" }; var expectedResult = new SimulationResponseModel() { NoOfModels = 120, TimeInSeconds = 600 }; var projectService = new Mock <ISimulationService>(); projectService.Setup(service => service.Simulate(request.ProjectId, request.ResourceId, request.StatisticalEngineId, request.CreatedBy)) .Returns(expectedResult); var controller = new SimulationController(projectService.Object); var actualResult = controller.Simulate(request); Assert.Equal(expectedResult.NoOfModels, actualResult.Value.NoOfModels); Assert.Equal(expectedResult.TimeInSeconds, actualResult.Value.TimeInSeconds); }
public void Simulate() { var expectedResult = new SimulationResponseModel() { NoOfModels = 120, TimeInSeconds = 600 }; var simulationService = new Mock <ISimulationService>(); simulationService.Setup(service => service.Simulate(1, 4, 1, "test user")) .Returns(expectedResult); var actualResult = simulationService.Object.Simulate(1, 4, 1, "test user"); Assert.NotNull(actualResult); Assert.Equal(expectedResult.NoOfModels, actualResult.NoOfModels); Assert.Equal(expectedResult.TimeInSeconds, actualResult.TimeInSeconds); }
/// <summary> /// Create Queue and Save Models into PostgresSql /// </summary> /// <param name="statisticalEngineType"></param> /// <param name="engineModels"></param> /// <param name="projectSimulationId"></param> /// <param name="resourceId"></param> /// <returns></returns> private SimulationResponseModel SimulateModel(string schemaFileName, List <string> engineModels, int projectSimulationId, int resourceId) { var response = new SimulationResponseModel { ErrorMessages = new List <IList <string> >() }; long modelCount = 0; try { foreach (var engineModel in engineModels) { var simulateModelResponse = simulationModelService.SimulateModel(schemaFileName, engineModel); if (simulateModelResponse.ErrorMessages == null) { //create queue and add message if (simulationModelService.CreateSimulationQueue(simulateModelResponse.QueueMessage)) { //create data into SimulationModel var data = JObject.Parse(engineModel); var simulationModelId = (Guid)data["msgId"]; simulationModelService.CreateSimulationData(engineModel, simulationModelId, projectSimulationId, resourceId); modelCount++; } } else { response.ErrorMessages.Add(simulateModelResponse.ErrorMessages); } } response.NoOfModels = modelCount; response.TimeInSeconds = 5 * (int)modelCount; return(response); } catch (Exception simulateModelException) { throw new Exception(SimulationException.SIMULATE_MODEL_ERROR_MSG, simulateModelException); } }
/// <summary> /// Generate Simulation Models /// </summary> /// <param name="projectId"></param> /// <param name="resourceId"></param> /// <param name="statisticalEngineId"></param> /// <returns></returns> private SimulationResponseModel GenerateSimulationModels(int projectId, int resourceId, int statisticalEngineId, int projectSimulationId) { try { var response = new SimulationResponseModel(); var inputAdvisor = GetProjectJsonObject(projectId, resourceId); var statisticalEngine = GetStatisticalEngineDetails(statisticalEngineId); string simulationReceivedTime = DateTime.UtcNow.ToString(Constants.SIMULATION_RECEIVED_DATE_FORMAT); var models = CreateSimulationModels(inputAdvisor, statisticalEngine, simulationReceivedTime); //Create queue and save models response = SimulateModel(statisticalEngine.Rows[0]["schemafilename"].ToString(), models, projectSimulationId, resourceId); //update model count UpdateProjectSimulationModelCount(projectSimulationId, models.Count()); return(response); } catch (Exception generateSimulationModelsException) { throw new Exception(SimulationException.GENERATE_SIMULATION_MODELS_EXCEPTION, generateSimulationModelsException); } }