public void Test_Validate_method(bool inputLayerValid, bool overlayLayerValid, bool distanceValid, bool predicateValid, int expectedResultCount) { Random random = new Random(); string inputLayer = "inputLayer" + random.Next(); string overlayLayer = "overlayLayer" + random.Next(); CheckPropertyValidation checkPropertyValidation = new CheckPropertyValidation(); Mock <IValidationFunctions> mockValidationFunctions = new Mock <IValidationFunctions>(); mockValidationFunctions.Setup(x => x.IsValidGeoJson(inputLayer)).Returns(inputLayerValid); mockValidationFunctions.Setup(x => x.IsValidGeoJson(overlayLayer)).Returns(overlayLayerValid); mockValidationFunctions.Setup(x => x.isDistanceValid(It.IsAny <string>())).Returns(distanceValid); mockValidationFunctions.Setup(x => x.isPredicateValid(It.IsAny <List <int> >(), It.IsAny <int>(), It.IsAny <int>())).Returns(predicateValid); SelectByLocationOperationParam selectByLocationOperationParam = new SelectByLocationOperationParam() { InputLayer = inputLayer, OverlayLayer = overlayLayer, Distance = "distance" + random.Next() }; IList <ValidationResult> result = checkPropertyValidation.myValidation(selectByLocationOperationParam, mockValidationFunctions); Assert.AreEqual(expectedResultCount, result.Count); }
public string buildSelectByLocationCommand(SelectByLocationOperationParam json, string scriptFolder, string scriptName, string inputLayerFile, string overlayLayerFile) { ICommandBuilder builder = createNewCommandBuilder(); builder.AddProgramName(scriptFolder + @"\" + scriptName); builder.SignleParameter(inputLayerFile); builder.SignleParameter(overlayLayerFile); string predicate = String.Join(",", json.predicate.ToArray()); builder.SignleParameter(predicate); if (json.Distance != null) { builder.SignleParameter(json.Distance.ToString()); } return(builder.GetResult()); }
[Consumes("application/json")] // supports only json public IActionResult Post(SelectByLocationOperationParam myJson) { var pathToScriptFolder = Configuration["pathToAnalysisScriptFolder"]; var scriptName = Configuration["AnalysisScriptNames:selectByLocationScript"]; var qgisPython = Configuration["ScriptRunners:qgisCmdPath"]; ResultObject output; using (var tempFiles1 = new TempFileCollection()) { string inputLayerFile = tempFiles1.AddExtension("geojson"); string overlayLayerFile = Path.ChangeExtension(Path.GetTempFileName(), "geojson"); tempFiles1.AddFile(overlayLayerFile, false); System.IO.File.WriteAllText(inputLayerFile, myJson.InputLayer.ToString()); System.IO.File.WriteAllText(overlayLayerFile, myJson.OverlayLayer.ToString()); string args = _creator.buildSelectByLocationCommand(myJson, pathToScriptFolder, scriptName, inputLayerFile, overlayLayerFile); output = _python.RunCMD(args, qgisPython); } return(_outputHandler.HandleQgisOutput(output)); }