diff --git a/src/PollinationSDK.Tests/Api/JobsApiTests.cs b/src/PollinationSDK.Tests/Api/JobsApiTests.cs index 3308097c..e2405c8d 100644 --- a/src/PollinationSDK.Tests/Api/JobsApiTests.cs +++ b/src/PollinationSDK.Tests/Api/JobsApiTests.cs @@ -357,20 +357,21 @@ private JobInfo CreateTestJobInfo() } [Test] - public void CreateJobFromJobInfoTest() + public void TestPathArg() { - //var jsonFile = @"D:\Dev\Pollination\rhino-plugin\src\bin\jobInfo.json"; - //var json = System.IO.File.ReadAllText(jsonFile); - //var job = PollinationSDK.Wrapper.JobInfo.FromJson(json); - - //job.CheckArgumentsWithHandlers("rhino", "csharp"); - - //var dir = @"C:\Users\mingo\simulation\ttt"; - //job.SetLocalJob(dir, 2); + var jobInfo = CreateTestJobInfo(); + var model = Path.GetFullPath(@"../../../TestSample/two_rooms.hbjson"); + var pathArg = jobInfo.Job.Arguments.First().FirstOrDefault().Obj as JobPathArgument; + Assert.AreEqual(((pathArg.Source.Obj) as ProjectFolder).Path, model); + } + [Test] + public void CreateJobFromJobInfoTest() + { // create JobInfo var jobInfo = CreateTestJobInfo(); var dup = jobInfo.Duplicate(); + Assert.AreEqual(jobInfo.Job.Source, dup.Job.Source); Assert.AreEqual(jobInfo.Job.Arguments.Count, dup.Job.Arguments.Count); Assert.AreEqual(jobInfo.Recipe.Source, dup.Recipe.Source); diff --git a/src/PollinationSDK/Wrapper/InputArgumentValidator.cs b/src/PollinationSDK/Wrapper/InputArgumentValidator.cs index 9d7384db..65548046 100644 --- a/src/PollinationSDK/Wrapper/InputArgumentValidator.cs +++ b/src/PollinationSDK/Wrapper/InputArgumentValidator.cs @@ -48,9 +48,11 @@ public static object CheckAndValidate(PollinationSDK.Interface.Io.Inputs.IDag da public object CheckAndValidate(object value, HandlerChecker handlerChecker) { if (value == null) return null; - + if (this.DagInputAlias == null) return null; + // validate Alias input if (!this.ValidateWithAliasSpec(value)) return null; + // convert with handlers var obj = this.CheckInputWithHandler(value, handlerChecker); // validate input specs diff --git a/src/PollinationSDK/Wrapper/JobInfo.cs b/src/PollinationSDK/Wrapper/JobInfo.cs index e74fde4d..231b6f02 100644 --- a/src/PollinationSDK/Wrapper/JobInfo.cs +++ b/src/PollinationSDK/Wrapper/JobInfo.cs @@ -114,8 +114,13 @@ private List> CheckArgumentsWithHandlers(Lis if (isPath) { var pathArg = args.OfType().FirstOrDefault(_ => _.Name == item.Name); - currentArg = pathArg; - currentValue = pathArg?.Source; + + // only validate if a path is ProjectFolder type, there is no way to validate HTTPS or S3 link + if (pathArg?.Source?.Obj is ProjectFolder pf) + { + currentArg = pathArg; + currentValue = pf.Path; + } } else { @@ -124,6 +129,10 @@ private List> CheckArgumentsWithHandlers(Lis currentValue = valueArg?.Value; } + if (currentArg == null) + continue; + + var processedData = InputArgumentValidator.CheckAndValidate(item, platform, currentValue, handlerChecker); if (processedData == null) {