diff --git a/.github/workflows/dynamoNet6.0_linux_build.yml b/.github/workflows/dynamoNet6.0_linux_build.yml index bfde356800a..9b1d9e5e73b 100644 --- a/.github/workflows/dynamoNet6.0_linux_build.yml +++ b/.github/workflows/dynamoNet6.0_linux_build.yml @@ -9,12 +9,8 @@ jobs: uses: actions/checkout@v2 with: path: Dynamo - repository: DynamoDS/Dynamo - ref: master - name: Setup dotnet uses: actions/setup-dotnet@v3 - with: - dotnet-version: '6.0.x' - name: Install dependencies for linux runtime run: dotnet restore ${{ github.workspace }}/Dynamo/src/DynamoCore.net6.sln -p:Platform=NET60_Linux --runtime=linux-x64 @@ -27,11 +23,12 @@ jobs: cd "${{ github.workspace }}/Dynamo/bin/NET60_Linux/Release" echo "***Locating DynamoCLI for Linux!***" test "./DynamoCLI.exe" && echo "DynamoCLI exists!" -#TODO_NET6 - return to this when we can build subset of tests in net6/7/8 -# - name: Run smoke tests -# run: | -# cd "${{ github.workspace }}/Dynamo/bin/NET60_Linux/Release" -# echo "***Running Smoke tests on linux***" -# dotnet test DynamoCoreTests.dll --test-adapter-path ~/.nuget/packages/nunittestadapter/2.3.0/build/ --filter TestCategory=SmokeTest + - name: Run smoke tests + run: | + cd "${{ github.workspace }}/Dynamo/bin/NET60_Linux/Release" + echo "***Running Smoke tests on linux***" + #TODO unfortunately dotnet does not find any tests in this assembly. + #dotnet test DynamoCoreTests.dll --filter "TestCategory~UnitTest" + diff --git a/extern/Python/CPython_netstd20/Python.Included.SciPy.dll b/extern/Python/CPython_netstd20/Python.Included.SciPy.dll new file mode 100644 index 00000000000..696b999b5fc Binary files /dev/null and b/extern/Python/CPython_netstd20/Python.Included.SciPy.dll differ diff --git a/extern/Python/CPython_netstd20/Python.Included.dll b/extern/Python/CPython_netstd20/Python.Included.dll index 0aade66e153..5c2da304ee7 100644 Binary files a/extern/Python/CPython_netstd20/Python.Included.dll and b/extern/Python/CPython_netstd20/Python.Included.dll differ diff --git a/extern/Python/CPython_netstd20/Python.Runtime.dll b/extern/Python/CPython_netstd20/Python.Runtime.dll index 20bf6682104..1342471417e 100644 Binary files a/extern/Python/CPython_netstd20/Python.Runtime.dll and b/extern/Python/CPython_netstd20/Python.Runtime.dll differ diff --git a/src/DynamoApplications/StartupUtils.cs b/src/DynamoApplications/StartupUtils.cs index 62ca831c3df..ebe47abea24 100644 --- a/src/DynamoApplications/StartupUtils.cs +++ b/src/DynamoApplications/StartupUtils.cs @@ -38,7 +38,7 @@ internal class CMDLineOptions [Option('x', "ConvertFile", Required = false, HelpText = "When used in combination with the 'O' flag, opens a .dyn file from the specified path and converts it to .json." + "File will have the .json extension and be located in the same directory as the original file.")] public bool ConvertFile { get; set; } - [Option('g', "Geometry", Required = false, HelpText = "Instruct Dynamo to output geometry from all evaluations to a json file at this path.")] + [Option( "Geometry", Required = false, HelpText = "Instruct Dynamo to output geometry from all evaluations to a json file at this path.")] public string GeometryFilePath { get; set; } = String.Empty; [Option('i', "Import", Required = false, HelpText = "Instruct Dynamo to import an assembly as a node library.This argument should be a filepath to a single.dll" + " - if you wish to import multiple dlls - list the dlls separated by a space: -i 'assembly1.dll' 'assembly2.dll'")] @@ -223,10 +223,9 @@ public static CommandLineArguments Parse(string[] args) .Add("hn=|HN=|hostname", "Identify Dynamo variation associated with host", hn => hostname = hn) .Add("si=|SI=|sessionId", "Identify Dynamo host analytics session id", si => sessionId = si) .Add("pi=|PI=|parentId", "Identify Dynamo host analytics parent id", pi => parentId = pi) - .Add("da|DA|disableAnalytics", "Disables analytics in Dynamo for the process liftime", da => disableAnalytics = da != null) + .Add("da|DA|disableAnalytics|DisableAnalytics", "Disables analytics in Dynamo for the process liftime", da => disableAnalytics = da != null) .Add("cr=|CR=|cerLocation", "Specify the crash error report tool location on disk ", cr => cerLocation = cr) .Add("s|S|service mode", "Service mode, bypasses certain Dynamo launch steps for maximum startup performance", s => serviceMode = s != null); - optionsSet.Parse(args); if (showHelp) diff --git a/src/DynamoCLI/Program.cs b/src/DynamoCLI/Program.cs index 76df1dd6e55..4d11087f13f 100644 --- a/src/DynamoCLI/Program.cs +++ b/src/DynamoCLI/Program.cs @@ -113,7 +113,7 @@ private static DynamoModel StartupDynamo(StartupUtils.CommandLineArguments cmdLi model.ShutdownCompleted += (m) => { ShutDown(); }; - cmdLineArgs.ImportedPaths.ToList().ForEach(path => + cmdLineArgs.ImportedPaths?.ToList().ForEach(path => { CommandLineRunner.ImportAssembly(model, path); }); diff --git a/src/DynamoCore.net6.sln b/src/DynamoCore.net6.sln index 9adbce93f8c..1626a11a6d1 100644 --- a/src/DynamoCore.net6.sln +++ b/src/DynamoCore.net6.sln @@ -93,6 +93,16 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Watch3DNodeModels", "Librar EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Migrations", "Migrations\Migrations.csproj", "{06B9E5B0-7C50-4351-9D88-E159DC25755F}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{5B9B5B6B-0BA7-4606-B8E5-70C958346D57}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestServices", "..\test\Libraries\TestServices\TestServices.csproj", "{6CD0F0CF-8199-49F9-B0EA-0B9598B44419}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DSOffice", "Libraries\DSOffice\DSOffice.csproj", "{9B4FDC96-E2F9-4B8F-894A-4294405D50E7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DynamoCoreTests", "..\test\DynamoCoreTests\DynamoCoreTests.csproj", "{472084ED-1067-4B2C-8737-3839A6143EB2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FFITarget", "..\test\Engine\FFITarget\FFITarget.csproj", "{C70FE632-5500-4C57-B3D6-9B5574137551}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -569,6 +579,70 @@ Global {06B9E5B0-7C50-4351-9D88-E159DC25755F}.Release|NET60_Windows.Build.0 = Release|NET60_Windows {06B9E5B0-7C50-4351-9D88-E159DC25755F}.Release|x64.ActiveCfg = Release|x64 {06B9E5B0-7C50-4351-9D88-E159DC25755F}.Release|x64.Build.0 = Release|x64 + {6CD0F0CF-8199-49F9-B0EA-0B9598B44419}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6CD0F0CF-8199-49F9-B0EA-0B9598B44419}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6CD0F0CF-8199-49F9-B0EA-0B9598B44419}.Debug|NET60_Linux.ActiveCfg = Debug|NET60_Linux + {6CD0F0CF-8199-49F9-B0EA-0B9598B44419}.Debug|NET60_Linux.Build.0 = Debug|NET60_Linux + {6CD0F0CF-8199-49F9-B0EA-0B9598B44419}.Debug|NET60_Windows.ActiveCfg = Debug|NET60_Windows + {6CD0F0CF-8199-49F9-B0EA-0B9598B44419}.Debug|NET60_Windows.Build.0 = Debug|NET60_Windows + {6CD0F0CF-8199-49F9-B0EA-0B9598B44419}.Debug|x64.ActiveCfg = Debug|x64 + {6CD0F0CF-8199-49F9-B0EA-0B9598B44419}.Debug|x64.Build.0 = Debug|x64 + {6CD0F0CF-8199-49F9-B0EA-0B9598B44419}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6CD0F0CF-8199-49F9-B0EA-0B9598B44419}.Release|Any CPU.Build.0 = Release|Any CPU + {6CD0F0CF-8199-49F9-B0EA-0B9598B44419}.Release|NET60_Linux.ActiveCfg = Release|NET60_Linux + {6CD0F0CF-8199-49F9-B0EA-0B9598B44419}.Release|NET60_Linux.Build.0 = Release|NET60_Linux + {6CD0F0CF-8199-49F9-B0EA-0B9598B44419}.Release|NET60_Windows.ActiveCfg = Release|NET60_Windows + {6CD0F0CF-8199-49F9-B0EA-0B9598B44419}.Release|NET60_Windows.Build.0 = Release|NET60_Windows + {6CD0F0CF-8199-49F9-B0EA-0B9598B44419}.Release|x64.ActiveCfg = Release|x64 + {6CD0F0CF-8199-49F9-B0EA-0B9598B44419}.Release|x64.Build.0 = Release|x64 + {9B4FDC96-E2F9-4B8F-894A-4294405D50E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9B4FDC96-E2F9-4B8F-894A-4294405D50E7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9B4FDC96-E2F9-4B8F-894A-4294405D50E7}.Debug|NET60_Linux.ActiveCfg = Debug|NET60_Linux + {9B4FDC96-E2F9-4B8F-894A-4294405D50E7}.Debug|NET60_Linux.Build.0 = Debug|NET60_Linux + {9B4FDC96-E2F9-4B8F-894A-4294405D50E7}.Debug|NET60_Windows.ActiveCfg = Debug|NET60_Windows + {9B4FDC96-E2F9-4B8F-894A-4294405D50E7}.Debug|NET60_Windows.Build.0 = Debug|NET60_Windows + {9B4FDC96-E2F9-4B8F-894A-4294405D50E7}.Debug|x64.ActiveCfg = Debug|x64 + {9B4FDC96-E2F9-4B8F-894A-4294405D50E7}.Debug|x64.Build.0 = Debug|x64 + {9B4FDC96-E2F9-4B8F-894A-4294405D50E7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9B4FDC96-E2F9-4B8F-894A-4294405D50E7}.Release|Any CPU.Build.0 = Release|Any CPU + {9B4FDC96-E2F9-4B8F-894A-4294405D50E7}.Release|NET60_Linux.ActiveCfg = Release|NET60_Linux + {9B4FDC96-E2F9-4B8F-894A-4294405D50E7}.Release|NET60_Linux.Build.0 = Release|NET60_Linux + {9B4FDC96-E2F9-4B8F-894A-4294405D50E7}.Release|NET60_Windows.ActiveCfg = Release|NET60_Windows + {9B4FDC96-E2F9-4B8F-894A-4294405D50E7}.Release|NET60_Windows.Build.0 = Release|NET60_Windows + {9B4FDC96-E2F9-4B8F-894A-4294405D50E7}.Release|x64.ActiveCfg = Release|x64 + {9B4FDC96-E2F9-4B8F-894A-4294405D50E7}.Release|x64.Build.0 = Release|x64 + {472084ED-1067-4B2C-8737-3839A6143EB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {472084ED-1067-4B2C-8737-3839A6143EB2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {472084ED-1067-4B2C-8737-3839A6143EB2}.Debug|NET60_Linux.ActiveCfg = Debug|NET60_Linux + {472084ED-1067-4B2C-8737-3839A6143EB2}.Debug|NET60_Linux.Build.0 = Debug|NET60_Linux + {472084ED-1067-4B2C-8737-3839A6143EB2}.Debug|NET60_Windows.ActiveCfg = Debug|NET60_Windows + {472084ED-1067-4B2C-8737-3839A6143EB2}.Debug|NET60_Windows.Build.0 = Debug|NET60_Windows + {472084ED-1067-4B2C-8737-3839A6143EB2}.Debug|x64.ActiveCfg = Debug|x64 + {472084ED-1067-4B2C-8737-3839A6143EB2}.Debug|x64.Build.0 = Debug|x64 + {472084ED-1067-4B2C-8737-3839A6143EB2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {472084ED-1067-4B2C-8737-3839A6143EB2}.Release|Any CPU.Build.0 = Release|Any CPU + {472084ED-1067-4B2C-8737-3839A6143EB2}.Release|NET60_Linux.ActiveCfg = Release|NET60_Linux + {472084ED-1067-4B2C-8737-3839A6143EB2}.Release|NET60_Linux.Build.0 = Release|NET60_Linux + {472084ED-1067-4B2C-8737-3839A6143EB2}.Release|NET60_Windows.ActiveCfg = Release|NET60_Windows + {472084ED-1067-4B2C-8737-3839A6143EB2}.Release|NET60_Windows.Build.0 = Release|NET60_Windows + {472084ED-1067-4B2C-8737-3839A6143EB2}.Release|x64.ActiveCfg = Release|x64 + {472084ED-1067-4B2C-8737-3839A6143EB2}.Release|x64.Build.0 = Release|x64 + {C70FE632-5500-4C57-B3D6-9B5574137551}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C70FE632-5500-4C57-B3D6-9B5574137551}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C70FE632-5500-4C57-B3D6-9B5574137551}.Debug|NET60_Linux.ActiveCfg = Debug|NET60_Linux + {C70FE632-5500-4C57-B3D6-9B5574137551}.Debug|NET60_Linux.Build.0 = Debug|NET60_Linux + {C70FE632-5500-4C57-B3D6-9B5574137551}.Debug|NET60_Windows.ActiveCfg = Debug|NET60_Windows + {C70FE632-5500-4C57-B3D6-9B5574137551}.Debug|NET60_Windows.Build.0 = Debug|NET60_Windows + {C70FE632-5500-4C57-B3D6-9B5574137551}.Debug|x64.ActiveCfg = Debug|x64 + {C70FE632-5500-4C57-B3D6-9B5574137551}.Debug|x64.Build.0 = Debug|x64 + {C70FE632-5500-4C57-B3D6-9B5574137551}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C70FE632-5500-4C57-B3D6-9B5574137551}.Release|Any CPU.Build.0 = Release|Any CPU + {C70FE632-5500-4C57-B3D6-9B5574137551}.Release|NET60_Linux.ActiveCfg = Release|NET60_Linux + {C70FE632-5500-4C57-B3D6-9B5574137551}.Release|NET60_Linux.Build.0 = Release|NET60_Linux + {C70FE632-5500-4C57-B3D6-9B5574137551}.Release|NET60_Windows.ActiveCfg = Release|NET60_Windows + {C70FE632-5500-4C57-B3D6-9B5574137551}.Release|NET60_Windows.Build.0 = Release|NET60_Windows + {C70FE632-5500-4C57-B3D6-9B5574137551}.Release|x64.ActiveCfg = Release|x64 + {C70FE632-5500-4C57-B3D6-9B5574137551}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -597,6 +671,10 @@ Global {D6279651-D099-4F8D-A319-5BF12ED9F269} = {FA7BE306-A3B0-45FA-9D87-0C69E6932C13} {31183026-DE70-49CB-BC7C-0DFD0A088F62} = {FA7BE306-A3B0-45FA-9D87-0C69E6932C13} {06B9E5B0-7C50-4351-9D88-E159DC25755F} = {FA7BE306-A3B0-45FA-9D87-0C69E6932C13} + {6CD0F0CF-8199-49F9-B0EA-0B9598B44419} = {5B9B5B6B-0BA7-4606-B8E5-70C958346D57} + {9B4FDC96-E2F9-4B8F-894A-4294405D50E7} = {FA7BE306-A3B0-45FA-9D87-0C69E6932C13} + {472084ED-1067-4B2C-8737-3839A6143EB2} = {5B9B5B6B-0BA7-4606-B8E5-70C958346D57} + {C70FE632-5500-4C57-B3D6-9B5574137551} = {5B9B5B6B-0BA7-4606-B8E5-70C958346D57} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {89CB19C6-BF0A-4E6A-BFDA-79D143EAB59D} diff --git a/src/DynamoCore/Properties/AssemblyInfo.cs b/src/DynamoCore/Properties/AssemblyInfo.cs index a3782696fc3..386b03e9544 100644 --- a/src/DynamoCore/Properties/AssemblyInfo.cs +++ b/src/DynamoCore/Properties/AssemblyInfo.cs @@ -51,4 +51,5 @@ [assembly: InternalsVisibleTo("ExportSampleImagesViewExtension")] [assembly: InternalsVisibleTo("DocumentationBrowserViewExtension")] + [assembly: TypeForwardedTo(typeof(Dynamo.Scheduler.Disposable))] diff --git a/src/DynamoInstall/Release.xsl b/src/DynamoInstall/Release.xsl index 9fd6a7ef5e0..fa96f110c4c 100644 --- a/src/DynamoInstall/Release.xsl +++ b/src/DynamoInstall/Release.xsl @@ -14,7 +14,8 @@ - + + @@ -88,4 +89,4 @@ - \ No newline at end of file + diff --git a/src/Libraries/DSCPython/DSCPython.csproj b/src/Libraries/DSCPython/DSCPython.csproj index bbc48bed2e4..fe5c80ae70a 100644 --- a/src/Libraries/DSCPython/DSCPython.csproj +++ b/src/Libraries/DSCPython/DSCPython.csproj @@ -9,18 +9,25 @@ DSCPython DSCPython + + + - + False ..\..\..\extern\Python\CPython_netstd20\Python.Included.dll - + + False + ..\..\..\extern\Python\CPython_netstd20\Python.Included.SciPy.dll + + False ..\..\..\extern\Python\CPython_netstd20\Python.Runtime.dll - + False ..\..\..\extern\Python\Python.Included.dll diff --git a/src/Libraries/DSOffice/DSOffice.csproj b/src/Libraries/DSOffice/DSOffice.csproj index 007f3923ad2..8bb0140f2dc 100644 --- a/src/Libraries/DSOffice/DSOffice.csproj +++ b/src/Libraries/DSOffice/DSOffice.csproj @@ -1,4 +1,4 @@ - + @@ -10,11 +10,13 @@ DSOffice $(OutputPath)\$(UICulture)\DSOffice.xml + + + runtime + + - - runtime - @@ -72,7 +74,7 @@ - + diff --git a/src/Libraries/DSOffice/Excel.cs b/src/Libraries/DSOffice/Excel.cs index 7f39b484bdf..b0be74a4bfe 100644 --- a/src/Libraries/DSOffice/Excel.cs +++ b/src/Libraries/DSOffice/Excel.cs @@ -5,7 +5,9 @@ using System.IO; using System.Linq; using System.Runtime.InteropServices; +#if NETFRAMEWORK using Microsoft.Office.Interop.Excel; +#endif using DynamoServices; using Autodesk.DesignScript.Runtime; using Dynamo.Graph.Nodes; @@ -15,6 +17,7 @@ namespace DSOffice { +#if NETFRAMEWORK internal class ExcelCloseEventArgs : EventArgs { public ExcelCloseEventArgs(bool saveWorkbooks = true) @@ -341,7 +344,7 @@ internal static object[][] WriteData(string filePath, string sheetName, int star [IsVisibleInDynamoLibrary(false)] public class WorkSheet { - #region Helper methods +#region Helper methods private static object[][] ConvertToJaggedArray(object[,] input, bool convertToString = false) { @@ -447,7 +450,7 @@ private static object[][] ConvertToJaggedArray(object[,] input, bool convertToSt return output; } - #endregion +#endregion /// /// Returns data from given worksheet (GetDataFromExcelWorksheet node) /// @@ -703,7 +706,7 @@ internal WorkSheet GetWorksheetByName(string sheetName) } } - +#endif /// /// Methods for Import/Export category. /// @@ -806,6 +809,7 @@ public static IList ImportCSV(string filePath, bool transpose = false) if (transpose) return CSVdatalist; else return DSCore.List.Transpose(CSVdatalist); } +#if NETFRAMEWORK /// /// Read data from a Microsoft Excel spreadsheet. Data is read by row and @@ -869,7 +873,7 @@ public static object[][] ExportToExcel(string filePath, string sheetName, int st { return Excel.WriteData(filePath, sheetName, startRow, startColumn, data, overWrite, writeAsString); } - +#endif /// /// Read data from a Microsoft Excel spreadsheet by using the Open XML standard. /// Data is read by row and returned in a series of lists by row. diff --git a/src/Libraries/DesignScriptBuiltin/Dictionary.cs b/src/Libraries/DesignScriptBuiltin/Dictionary.cs index 830850c1f73..851cdd6efe7 100644 --- a/src/Libraries/DesignScriptBuiltin/Dictionary.cs +++ b/src/Libraries/DesignScriptBuiltin/Dictionary.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Linq; @@ -129,6 +129,7 @@ public override string ToString() result.Append("}"); return result.ToString(); } + } } } diff --git a/src/PythonMigrationViewExtension/Properties/AssemblyInfo.cs b/src/PythonMigrationViewExtension/Properties/AssemblyInfo.cs index 82d553967fd..fe488676663 100644 --- a/src/PythonMigrationViewExtension/Properties/AssemblyInfo.cs +++ b/src/PythonMigrationViewExtension/Properties/AssemblyInfo.cs @@ -1,4 +1,4 @@ -using System.Reflection; +using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; @@ -13,4 +13,4 @@ // Visible to DynamoCoreWpfTests dll for unit testing [assembly: InternalsVisibleTo("IronPythonTests")] -[assembly: InternalsVisibleTo("DynamoCoreTests")] \ No newline at end of file +[assembly: InternalsVisibleTo("DynamoPythonTests")] diff --git a/src/VisualizationTests/Setups.cs b/src/VisualizationTests/Setups.cs new file mode 100644 index 00000000000..22276870cc1 --- /dev/null +++ b/src/VisualizationTests/Setups.cs @@ -0,0 +1,43 @@ +using System; +using System.IO; +using System.Reflection; +using Dynamo.Utilities; +using NUnit.Framework; + +[SetUpFixture] +public class Setup +{ + private AssemblyHelper assemblyHelper; + +#if NETFRAMEWORK + [SetUp] +#elif NET6_0_OR_GREATER + [OneTimeSetUp] +#endif + public void RunBeforeAllTests() + { + var assemblyPath = Assembly.GetExecutingAssembly().Location; + var moduleRootFolder = new DirectoryInfo(assemblyPath).Parent; + + var resolutionPaths = new[] + { + // These tests need "CoreNodeModels.dll" under "nodes" folder. + Path.Combine(moduleRootFolder.FullName, "nodes"), + Path.Combine(moduleRootFolder.Parent.Parent.Parent.FullName, "test", "test_dependencies") + }; + + assemblyHelper = new AssemblyHelper(moduleRootFolder.FullName, resolutionPaths); + AppDomain.CurrentDomain.AssemblyResolve += assemblyHelper.ResolveAssembly; + } + +#if NETFRAMEWORK + [TearDown] +#elif NET6_0_OR_GREATER + [OneTimeTearDown] +#endif + public void RunAfterAllTests() + { + AppDomain.CurrentDomain.AssemblyResolve -= assemblyHelper.ResolveAssembly; + assemblyHelper = null; + } +} diff --git a/src/VisualizationTests/WpfVisualizationTests.csproj b/src/VisualizationTests/WpfVisualizationTests.csproj index ef04aad6eaa..e5d38963898 100644 --- a/src/VisualizationTests/WpfVisualizationTests.csproj +++ b/src/VisualizationTests/WpfVisualizationTests.csproj @@ -1,4 +1,4 @@ - + @@ -16,7 +16,7 @@ - + @@ -26,7 +26,7 @@ - + ..\..\extern\prism\Microsoft.Practices.Prism.dll diff --git a/test/DynamoCoreTests/AnalyticsTests.cs b/test/DynamoCoreTests/AnalyticsTests.cs index 6ff9dece639..cea6d131354 100644 --- a/test/DynamoCoreTests/AnalyticsTests.cs +++ b/test/DynamoCoreTests/AnalyticsTests.cs @@ -1,4 +1,4 @@ -using System; +using System; using Autodesk.Analytics.Core; using Autodesk.Analytics.Events; using Dynamo.Configuration; @@ -136,7 +136,7 @@ protected override Mock MockClient() var client = new Mock(CurrentDynamoModel) { CallBase = true }; var session = MockAnalyticsSession(); client.Setup(c => c.Session).Returns(session); - return Mock.Get(client.Object); + return client.As(); } private IAnalyticsSession MockAnalyticsSession() diff --git a/test/DynamoCoreTests/AstBuildFailTest.cs b/test/DynamoCoreTests/AstBuildFailTest.cs index 9bdc717447c..43086c640f5 100644 --- a/test/DynamoCoreTests/AstBuildFailTest.cs +++ b/test/DynamoCoreTests/AstBuildFailTest.cs @@ -1,4 +1,4 @@ -using System.IO; +using System.IO; using Dynamo.Graph.Nodes; using NUnit.Framework; @@ -7,7 +7,7 @@ namespace Dynamo.Tests [TestFixture] internal class AstBuildFailTest : DynamoModelTestBase { - [Test] + [Test,Category("FailureNET6")]//this currently fails because the node is in TestUINodes.dll. public void TestAstBuildException() { // This dyn file contains a node which will throw an exception diff --git a/test/DynamoCoreTests/Configuration/ExecutionSessionTests.cs b/test/DynamoCoreTests/Configuration/ExecutionSessionTests.cs index b7dec027d99..474d64894d8 100644 --- a/test/DynamoCoreTests/Configuration/ExecutionSessionTests.cs +++ b/test/DynamoCoreTests/Configuration/ExecutionSessionTests.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using Dynamo.Events; using NUnit.Framework; @@ -21,8 +21,11 @@ protected override void GetLibrariesToPreload(List libraries) libraries.Add("FunctionObject.ds"); base.GetLibrariesToPreload(libraries); } - +#if NET6_0_OR_GREATER + [OneTimeSetUp] +#elif NETFRAMEWORK [TestFixtureSetUp] +#endif public void FixtureSetup() { ExecutionEvents.GraphPostExecution += ExecutionEvents_GraphPostExecution; @@ -51,8 +54,12 @@ private void ExecutionEvents_GraphPreExecution(Session.IExecutionSession session packagePaths = ExecutionEvents.ActiveSession.GetParameterValue(Session.ParameterKeys.PackagePaths) as IEnumerable; } - + +#if NET6_0_OR_GREATER + [OneTimeTearDown] +#elif NETFRAMEWORK [TestFixtureTearDown] +#endif public void TearDown() { ExecutionEvents.GraphPostExecution -= ExecutionEvents_GraphPostExecution; diff --git a/test/DynamoCoreTests/Configuration/PreferenceSettingsTests.cs b/test/DynamoCoreTests/Configuration/PreferenceSettingsTests.cs index 356aa218003..3d8f9fd9a53 100644 --- a/test/DynamoCoreTests/Configuration/PreferenceSettingsTests.cs +++ b/test/DynamoCoreTests/Configuration/PreferenceSettingsTests.cs @@ -4,12 +4,10 @@ using Dynamo.Models; using NUnit.Framework; using System.Linq; -using System.Xml; using System; using Dynamo.Interfaces; using System.Reflection; using Dynamo.Utilities; -using Dynamo.ViewModels; namespace Dynamo.Tests.Configuration { @@ -417,30 +415,6 @@ public void TestImportCopySettings() Assert.IsTrue(checkEquality.SamePropertyValues.Count == checkEquality.Properties.Count); } - /// - /// Checks that we are serializing and deserializing the PreferenceSettings.DefaultScaleFactor in DynamoSettings.xml correctly - /// - [Test] - [Category("UnitTests")] - public void TestImportDefaultScaleFactor() - { - string settingDirectory = Path.Combine(TestDirectory, "settings"); - string newSettingslFilePath = Path.Combine(settingDirectory, "DynamoSettings-NewSettings.xml"); - - var defaultSettings = new PreferenceSettings(); - defaultSettings.DefaultScaleFactor = GeometryScalingOptions.ConvertUIToScaleFactor((int)GeometryScaleSize.ExtraLarge); - - //Save in the DynamoSettings.xml the DefaultScaleFactor = 4 - defaultSettings.Save(newSettingslFilePath); - - //Reload the saved settings file - var updatedSettings = PreferenceSettings.Load(newSettingslFilePath); - int UIIndex = GeometryScalingOptions.ConvertScaleFactorToUI((int)updatedSettings.DefaultScaleFactor); - - //Validates that the content of DefaultScaleFactor match with ExtraLarge (4) - Assert.IsTrue(UIIndex == (int)GeometryScaleSize.ExtraLarge); - } - [Test] [Category("UnitTests")] public void TestTaintedFile() diff --git a/test/DynamoCoreTests/Crypto/DynamoCyptoTests.cs b/test/DynamoCoreTests/Crypto/DynamoCyptoTests.cs index a47766e944a..306fe6719f2 100644 --- a/test/DynamoCoreTests/Crypto/DynamoCyptoTests.cs +++ b/test/DynamoCoreTests/Crypto/DynamoCyptoTests.cs @@ -1,8 +1,11 @@ -using System.IO; +using System.IO; using System.Reflection; using System.Security.Cryptography.X509Certificates; using NUnit.Framework; +//TODO Get rid of these tests, DynamoSign and DynamoCrypto. +#if NETFRAMEWORK + namespace DynamoCrypto { [TestFixture] @@ -77,3 +80,5 @@ private static byte[] AssertCertAndPublicKey() } } } + +#endif diff --git a/test/DynamoCoreTests/DSEvaluationModelTest.cs b/test/DynamoCoreTests/DSEvaluationModelTest.cs index 1f2972b4097..046660b8deb 100644 --- a/test/DynamoCoreTests/DSEvaluationModelTest.cs +++ b/test/DynamoCoreTests/DSEvaluationModelTest.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -362,7 +362,7 @@ public void CBN_Dynamic_Array_433() AssertValue("a", null); } - [Ignore] //Ignored because empty code block nodes should not exist + [Ignore("empty codeblocks should not exist")] //Ignored because empty code block nodes should not exist public void Regress722() { //http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-722 diff --git a/test/DynamoCoreTests/DummyNodeTests.cs b/test/DynamoCoreTests/DummyNodeTests.cs index 5f64a3f0a59..99e0c0b55fc 100644 --- a/test/DynamoCoreTests/DummyNodeTests.cs +++ b/test/DynamoCoreTests/DummyNodeTests.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -98,8 +98,8 @@ public void IfDeserializationThrowsDummyNodeStillCreated() var exceptionCount = 0; var handler = new ResolveEventHandler((o, e) => { - var i = e.Name.IndexOf(","); - if (i == -1) + + if (e.Name.Contains("UNKNOWNASSEMBLY")) { exceptionCount = exceptionCount + 1; throw new Exception("TestingTesting"); @@ -114,7 +114,12 @@ public void IfDeserializationThrowsDummyNodeStillCreated() Assert.AreEqual(1, CurrentDynamoModel.CurrentWorkspace.Nodes.OfType().Count()); var dummyNode = CurrentDynamoModel.CurrentWorkspace.Nodes.OfType().First(); + //runtime behavior has changed for assembly resolve handlers that throw exceptions. +#if NET6_0_OR_GREATER + Assert.AreEqual(2, exceptionCount); +#elif NETFRAMEWORK Assert.AreEqual(1, exceptionCount); +#endif AppDomain.CurrentDomain.AssemblyResolve -= handler; } @@ -184,4 +189,4 @@ public void DummyNodesWarningMessageTest() Assert.AreEqual(nodeModelDummyNode.GetDescription(), "Node of type 'SampleLibraryUI.Examples.DropDownExample', from assembly 'SampleLibraryUI', cannot be resolved."); } } -} \ No newline at end of file +} diff --git a/test/DynamoCoreTests/DynamoCoreTests.csproj b/test/DynamoCoreTests/DynamoCoreTests.csproj index e4226ec0e3a..6f69ccc440f 100644 --- a/test/DynamoCoreTests/DynamoCoreTests.csproj +++ b/test/DynamoCoreTests/DynamoCoreTests.csproj @@ -15,7 +15,27 @@ - + + + + + + + + {96643e77-c786-498c-aaa9-80e449854ce9} + DynamoCrypto + + + + + + + + + + + + all compile; build; native; contentfiles; analyzers; buildtransitive @@ -24,9 +44,14 @@ all compile; build; native; contentfiles; analyzers; buildtransitive - - - + + + + + + + + @@ -34,27 +59,15 @@ - - - - - - - - - - + + {7858FA8C-475F-4B8E-B468-1F8200778CF8} DynamoCore False - - {96643e77-c786-498c-aaa9-80e449854ce9} - DynamoCrypto - - + {47533b7c-0e1a-44a4-8511-b438645f052a} DynamoPackages @@ -110,11 +123,7 @@ DynamoServices False - - {10AF430D-0D3A-49CE-A63D-848912959745} - PythonMigrationViewExtension - - + {263fa9c1-f81e-4a8e-95e0-8cdae20f177b} DynamoShapeManager @@ -122,19 +131,10 @@ {c70fe632-5500-4c57-b3d6-9b5574137551} FFITarget - - {89563cd0-509b-40a5-8728-9d3ec6fe8410} - SystemTestServices - - + {6cd0f0cf-8199-49f9-b0ea-0b9598b44419} TestServices - - {ED1EA294-1BA1-45D6-A669-ECD2E24E21A9} - TestUINodes - False - @@ -147,12 +147,32 @@ - - - - - - - + + + + + + + + + + + + + + + + + + + - \ No newline at end of file + + + + + + + + + diff --git a/test/DynamoCoreTests/Graph/Workspaces/WorkspaceModelTests.cs b/test/DynamoCoreTests/Graph/Workspaces/WorkspaceModelTests.cs index 8b06717d103..518c41b2433 100644 --- a/test/DynamoCoreTests/Graph/Workspaces/WorkspaceModelTests.cs +++ b/test/DynamoCoreTests/Graph/Workspaces/WorkspaceModelTests.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -270,12 +270,12 @@ public void UpdateModelValueInvalidParameters() //Case: Empty Guid list var ex1 = Assert.Throws(() => workspace.UpdateModelValue(new List(), "property name", "value")); //Checks that not only the exception type is correct but also the message - Assert.AreEqual(string.Format(Resources.ArgumentNullException,"modelGuids"), ex1.Message); + Assert.AreEqual(new ArgumentNullException("modelGuids").Message, ex1.Message); //Case: Null Guid list var ex2 = Assert.Throws(() => workspace.UpdateModelValue(null, "property name", "value")); //Checks that not only the exception type is correct but also the message - Assert.AreEqual(string.Format(Resources.ArgumentNullException, "modelGuids"), ex2.Message); + Assert.AreEqual(new ArgumentNullException("modelGuids").Message, ex2.Message); //Case: No model found in workspace with given Guids var guidList = new List{ Guid.NewGuid() }; diff --git a/test/DynamoCoreTests/HomgeneousListTests.cs b/test/DynamoCoreTests/HomgeneousListTests.cs index bdaf73762c7..3337e7ce5a2 100644 --- a/test/DynamoCoreTests/HomgeneousListTests.cs +++ b/test/DynamoCoreTests/HomgeneousListTests.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using Dynamo.Events; using NUnit.Framework; @@ -26,8 +26,11 @@ protected override void GetLibrariesToPreload(List libraries) libraries.Add("FunctionObject.ds"); base.GetLibrariesToPreload(libraries); } - +#if NET6_0_OR_GREATER + [OneTimeSetUp] +#elif NETFRAMEWORK [TestFixtureSetUp] +#endif public void FixtureSetup() { ExecutionEvents.GraphPostExecution += ExecutionEvents_GraphPostExecution; @@ -63,7 +66,11 @@ public void TestMethodResolutionforHeterogeneousListInputs() }); } +#if NET6_0_OR_GREATER + [OneTimeTearDown] +#elif NETFRAMEWORK [TestFixtureTearDown] +#endif public void TearDown() { ExecutionEvents.GraphPostExecution -= ExecutionEvents_GraphPostExecution; diff --git a/test/DynamoCoreTests/Logging/AnalyticsServiceTest.cs b/test/DynamoCoreTests/Logging/AnalyticsServiceTest.cs index 02381617382..f4add2669fe 100644 --- a/test/DynamoCoreTests/Logging/AnalyticsServiceTest.cs +++ b/test/DynamoCoreTests/Logging/AnalyticsServiceTest.cs @@ -85,7 +85,7 @@ public void TestOnWorkspaceAdded() public class DynamoAnalyticsDisableTest { - [Test] + [Test,Category("FailureNET6")]//TODO this test requires finding ASM using the registry, will not run on linux. public void DisableAnalytics() { var versions = new List(){ @@ -107,10 +107,11 @@ public void DisableAnalytics() { Assert.DoesNotThrow(() => { - dynamoCLI = Process.Start(Path.Combine(coreDirectory, "DynamoCLI.exe"), $"-gp \"{locatedPath}\" -k -da -o \"{openPath}\" "); - Thread.Sleep(5000);// Wait 5 seconds to open the dyn + dynamoCLI = Process.Start(Path.Combine(coreDirectory, "DynamoCLI.exe"), $"--GeometryPath \"{locatedPath}\" -k --DisableAnalytics -o \"{openPath}\" "); + Thread.Sleep(5000);// Wait 5 seconds to open the dyn + Assert.IsFalse(dynamoCLI.HasExited); var dt = DataTarget.AttachToProcess(dynamoCLI.Id, false); var assemblies = dt .ClrVersions diff --git a/test/DynamoCoreTests/Logging/DynamoAnalyticsClientTest.cs b/test/DynamoCoreTests/Logging/DynamoAnalyticsClientTest.cs index 5de184c925c..b8b27c38f2a 100644 --- a/test/DynamoCoreTests/Logging/DynamoAnalyticsClientTest.cs +++ b/test/DynamoCoreTests/Logging/DynamoAnalyticsClientTest.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -141,8 +141,8 @@ public void Test_DynamoAnalytics_GetUserID() //Assert //We just check the consistence of the inserted registry value - Assert.IsNotNullOrEmpty(Registry.GetValue(keyName, "InstrumentationGUID", null) as string); - Assert.IsNotNullOrEmpty(guid); + Assert.That(Registry.GetValue(keyName, "InstrumentationGUID", null) as string, Is.Not.Null.Or.Empty); + Assert.That(guid, Is.Not.Null.Or.Empty); //The FileAction throws an ArgumentException when the action is not in the list (switch) Assert.Throws(() => Analytics.TrackFileOperationEvent(this.TempFolder, Actions.Copy, 5)); } diff --git a/test/DynamoCoreTests/Logging/FeatureFlagTests.cs b/test/DynamoCoreTests/Logging/FeatureFlagTests.cs index b03a3f07400..968d6b712a2 100644 --- a/test/DynamoCoreTests/Logging/FeatureFlagTests.cs +++ b/test/DynamoCoreTests/Logging/FeatureFlagTests.cs @@ -1,4 +1,4 @@ -using Dynamo.Utilities; +using Dynamo.Utilities; using NUnit.Framework; using System; using System.Diagnostics; @@ -60,7 +60,14 @@ public void FeatureFlagsShouldMessageLoggedShouldContainAllLogs() testflagsManager.CacheAllFlags(); testflagsManager.MessageLogged -= TestflagsManager_MessageLogged; - Assert.AreEqual("LD startup: testmode true, no LD connection. LD startup time: 0 <<<<>>>>feature flag exe starting<<<<>>>>{\"TestFlag1\":true,\"TestFlag2\":\"I am a string\",\"graphics-primitive-instancing\":true}<<<<>>>>", log); + //json ordering cannot be controlled between .net target versions. + StringAssert.StartsWith("LD startup: testmode true, no LD connection. LD startup time:" , log); + StringAssert.Contains("<<<<>>>>feature flag exe starting<<<<>>>>",log); + StringAssert.Contains("\"TestFlag1\":true", log); + StringAssert.Contains("\"TestFlag2\":\"I am a string\"", log); + StringAssert.Contains("\"graphics-primitive-instancing\":true", log); + StringAssert.EndsWith("<<<<>>>>", log); + } private void DynamoFeatureFlagsManager_FlagsRetrieved() diff --git a/test/DynamoCoreTests/MigrationTestFramework.cs b/test/DynamoCoreTests/MigrationTestFramework.cs index 1e129620077..3a60cdb39a4 100644 --- a/test/DynamoCoreTests/MigrationTestFramework.cs +++ b/test/DynamoCoreTests/MigrationTestFramework.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.IO; using System.Reflection; using NUnit.Framework; @@ -30,7 +30,7 @@ public void Regressions(string dynamoFilePath) { //ensure that the incoming arguments are not empty or null //if a dyn file is found in the regression tests directory - Assert.IsNotNullOrEmpty(dynamoFilePath, "Dynamo file path is invalid or missing."); + Assert.That(dynamoFilePath, Is.Not.Null.Or.Empty, "Dynamo file path is invalid or missing."); //open the dyn file OpenModel(dynamoFilePath); @@ -62,6 +62,12 @@ static List SetupMigrationTests() { if (fileInfo.FullName.Contains("FAILURE")) continue; +#if NET6_0_OR_GREATER + var filenameLowerInvariant = fileInfo.FullName.ToLowerInvariant(); + //TODO_NET6 excel nodes and legacy unitUI nodes not built for net6. + if (filenameLowerInvariant.Contains("excel") || filenameLowerInvariant.Contains("testmigration_core_input.dyn") ) + continue; +#endif testParameters.Add(fileInfo.FullName); } diff --git a/test/DynamoCoreTests/Models/DynamoModelEventsTest.cs b/test/DynamoCoreTests/Models/DynamoModelEventsTest.cs index a20683220a0..117151d4b50 100644 --- a/test/DynamoCoreTests/Models/DynamoModelEventsTest.cs +++ b/test/DynamoCoreTests/Models/DynamoModelEventsTest.cs @@ -7,7 +7,6 @@ using Dynamo.Graph.Connectors; using Dynamo.Graph.Nodes; using Dynamo.Models; -using Dynamo.Wpf.Utilities; using NUnit.Framework; using DynCmd = Dynamo.Models.DynamoModel; diff --git a/test/DynamoCoreTests/NodeConstructionTests.cs b/test/DynamoCoreTests/NodeConstructionTests.cs index 52a5512f740..72cd9df80cd 100644 --- a/test/DynamoCoreTests/NodeConstructionTests.cs +++ b/test/DynamoCoreTests/NodeConstructionTests.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Linq; using Dynamo.Graph.Nodes; diff --git a/test/DynamoCoreTests/NodeMigrationTests.cs b/test/DynamoCoreTests/NodeMigrationTests.cs index 9cd922565a0..e028e1d9258 100644 --- a/test/DynamoCoreTests/NodeMigrationTests.cs +++ b/test/DynamoCoreTests/NodeMigrationTests.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.IO; using System.Linq; using System.Xml; @@ -10,7 +10,6 @@ using Dynamo.PackageManager; using NUnit.Framework; using PythonNodeModels; -using SystemTestServices; namespace Dynamo.Tests { @@ -65,7 +64,7 @@ public void TestMigration_Core_Functions() TestMigration("TestMigration_Core_Functions.dyn"); } - [Test] + [Test,Category("FailureNET6")] public void TestMigration_Core_Input() { TestMigration("TestMigration_Core_Input.dyn"); @@ -108,7 +107,7 @@ public void TestMigration_Core_Watch() TestMigration("TestMigration_Core_Watch.dyn"); } - [Test] + [Test, Category("FailureNET6")] public void TestMigration_Excel() { TestMigration("TestMigration_Excel.dyn"); @@ -119,7 +118,7 @@ public void TestMigration_File_Directory() { TestMigration("TestMigration_File_Directory.dyn"); } - + [Test] public void TestMigration_ImportExportCSV() { @@ -138,12 +137,13 @@ public void TestMigration_DSCore_Math() TestMigration("TestMigration_DSCore_Math.dyn"); } - [Test] + [Test,Category("FailureNET6")] public void TestMigration_InputOutput_Excel() { TestMigration("TestMigration_InputOutput_Excel.dyn"); } - + //TODO_MSIL pull csv nodes into their own file with a partial class? + //or mark excel methods windows only. [Test] public void TestMigration_InputOutput_File() { @@ -2154,7 +2154,7 @@ public void LibraryTestPythonScript() "caef9f81-c9a6-47aa-92c9-dc3b8fd6f7d7").Script); } - [Test] + [Test,Category("FailureNET6")] public void LibraryTestExcelRead() { OpenModel(GetDynPath("LibraryTestExcelRead.dyn")); @@ -2251,7 +2251,7 @@ public void TestSaveDontCorruptForDeprecatedNodes() public void TestPackageNodeMigrationForJSONGraphs() { // Define package loading reference paths - var dir = SystemTestBase.GetTestDirectory(ExecutingDirectory); + var dir = TestDirectory; var pkgDir = Path.Combine(dir, "pkgs\\MigrationTesting"); var legacyGraph = Path.Combine(pkgDir, "extra\\LegacyPackageSampleGraph.dyn"); var pkgMan = this.CurrentDynamoModel.GetPackageManagerExtension(); diff --git a/test/DynamoCoreTests/Nodes/CustomDropdownTests.cs b/test/DynamoCoreTests/Nodes/CustomDropdownTests.cs index 5bf69089fca..7a0f01a95e3 100644 --- a/test/DynamoCoreTests/Nodes/CustomDropdownTests.cs +++ b/test/DynamoCoreTests/Nodes/CustomDropdownTests.cs @@ -10,7 +10,6 @@ using NUnit.Framework; -using SystemTestServices; namespace Dynamo.Tests.Nodes { @@ -31,7 +30,7 @@ protected override void GetLibrariesToPreload(List libraries) public void OpenJsonDYNWithCorrectMenuItems() { // Define package loading reference path - string dir = SystemTestBase.GetTestDirectory(ExecutingDirectory); + string dir = TestDirectory; string pkgDir = Path.Combine(dir, "pkgs\\Dynamo Samples"); PackageManagerExtension pkgMan = CurrentDynamoModel.GetPackageManagerExtension(); PackageLoader loader = pkgMan.PackageLoader; @@ -60,7 +59,7 @@ public void OpenJsonDYNWithCorrectMenuItems() public void OpenJsonDYNWithCorrectSelectedItem() { // Define package loading reference path - string dir = SystemTestBase.GetTestDirectory(ExecutingDirectory); + string dir = TestDirectory; string pkgDir = Path.Combine(dir, "pkgs\\Dynamo Samples"); PackageManagerExtension pkgMan = CurrentDynamoModel.GetPackageManagerExtension(); PackageLoader loader = pkgMan.PackageLoader; @@ -83,4 +82,4 @@ public void OpenJsonDYNWithCorrectSelectedItem() Assert.AreEqual("Two", selectedItem); } } -} \ No newline at end of file +} diff --git a/test/DynamoCoreTests/Nodes/DictionaryTests.cs b/test/DynamoCoreTests/Nodes/DictionaryTests.cs index e20b9f207b4..8481c4f2a5d 100644 --- a/test/DynamoCoreTests/Nodes/DictionaryTests.cs +++ b/test/DynamoCoreTests/Nodes/DictionaryTests.cs @@ -79,7 +79,7 @@ public void EmptyDictionaryToString() Assert.AreEqual(dict.ToString(), "{}"); } - [Test] + [Test,Category("FailureNET6")] public void Dictionary_ListOfValues_ReturnedAsExpected() { var dynFilePath = Path.Combine(TestDirectory, @"core\dictionary\Dictionary.Values2.dyn"); @@ -88,6 +88,8 @@ public void Dictionary_ListOfValues_ReturnedAsExpected() var validationData1 = new List { "foo" }; var validationData2 = new object[] { 1, new[] { 1, 2 } }; + //TODO NET6 unsure if we can control this - NET6 sometimes returns dictionary values in different orders + //we may need to sort dictionary values to retain runtime behavior with net48. AssertPreviewValue("f64c1972520144d7a6d342937584c47e", validationData2); AssertPreviewValue("bc957838571c4c56af2bb714f9f40bd7", validationData1); } diff --git a/test/DynamoCoreTests/Nodes/DropDownTests.cs b/test/DynamoCoreTests/Nodes/DropDownTests.cs index 555c3b54229..5d97749facb 100644 --- a/test/DynamoCoreTests/Nodes/DropDownTests.cs +++ b/test/DynamoCoreTests/Nodes/DropDownTests.cs @@ -1,11 +1,10 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; using CoreNodeModels; using Dynamo.PackageManager; using NUnit.Framework; -using SystemTestServices; namespace Dynamo.Tests.Nodes { @@ -23,7 +22,7 @@ protected override void GetLibrariesToPreload(List libraries) public void OpenJsonDYNwithSelectionNode() { // Define package loading reference path - var dir = SystemTestBase.GetTestDirectory(ExecutingDirectory); + var dir = TestDirectory; var pkgDir = Path.Combine(dir, "pkgs\\Dynamo Samples"); var pkgMan = this.CurrentDynamoModel.GetPackageManagerExtension(); var loader = pkgMan.PackageLoader; @@ -49,7 +48,7 @@ public void OpenJsonDYNwithSelectionNode() public void OpenJsonDYNwithSelectionNodeAndWrongSelectionIndexSerialized() { // Define package loading reference path - var dir = SystemTestBase.GetTestDirectory(ExecutingDirectory); + var dir = TestDirectory; var pkgDir = Path.Combine(dir, "pkgs\\Dynamo Samples"); var pkgMan = this.CurrentDynamoModel.GetPackageManagerExtension(); var loader = pkgMan.PackageLoader; @@ -73,10 +72,11 @@ public void OpenJsonDYNwithSelectionNodeAndWrongSelectionIndexSerialized() } [Test] + [Category("FailureNET6")] public void OpenXmlDYNwithSelectionNode() { // Define package loading reference path - var dir = SystemTestBase.GetTestDirectory(ExecutingDirectory); + var dir = TestDirectory; var pkgDir = Path.Combine(dir, "pkgs\\Dynamo Samples"); var pkgMan = this.CurrentDynamoModel.GetPackageManagerExtension(); var loader = pkgMan.PackageLoader; @@ -85,6 +85,7 @@ public void OpenXmlDYNwithSelectionNode() // Load the sample package loader.LoadPackages(new List {pkg}); // Assert expected package was loaded + //TODO_NET6 following package cannot be loaded as depends on wpf. Assert.AreEqual(pkg.Name, "Dynamo Samples"); // Run the graph with correct info serialized, node should deserialize to correct selection @@ -102,10 +103,11 @@ public void OpenXmlDYNwithSelectionNode() /// with invalid SelectedIndex but valid SelectedString can still be opened correctly /// [Test] + [Category("FailureNET6")] public void OpenXmlDYNwithInvalidSelectedIndex() { // Define package loading reference path - var dir = SystemTestBase.GetTestDirectory(ExecutingDirectory); + var dir = TestDirectory; var pkgDir = Path.Combine(dir, "pkgs\\Dynamo Samples"); var pkgMan = this.CurrentDynamoModel.GetPackageManagerExtension(); var loader = pkgMan.PackageLoader; @@ -114,6 +116,7 @@ public void OpenXmlDYNwithInvalidSelectedIndex() // Load the sample package loader.LoadPackages(new List {pkg}); // Assert expected package was loaded + //TODO_NET6 following package cannot be loaded as depends on wpf. Assert.AreEqual(pkg.Name, "Dynamo Samples"); // Run the graph with correct info serialized, node should deserialize to correct selection @@ -131,10 +134,11 @@ public void OpenXmlDYNwithInvalidSelectedIndex() /// with negative SelectedIndex can still be opened correctly /// [Test] + [Category("FailureNET6")] public void OpenXmlDYNwithInvalidSelectedIndex2() { // Define package loading reference path - var dir = SystemTestBase.GetTestDirectory(ExecutingDirectory); + var dir = TestDirectory; var pkgDir = Path.Combine(dir, "pkgs\\Dynamo Samples"); var pkgMan = this.CurrentDynamoModel.GetPackageManagerExtension(); var loader = pkgMan.PackageLoader; @@ -151,6 +155,7 @@ public void OpenXmlDYNwithInvalidSelectedIndex2() var node = CurrentDynamoModel.CurrentWorkspace.Nodes.FirstOrDefault(); // No selection selected + //TODO_NET6 following package cannot be loaded as depends on wpf. Assert.AreEqual(-1, node.GetType().GetProperty("SelectedIndex").GetValue(node)); Assert.AreEqual(String.Empty, node.GetType().GetProperty("SelectedString").GetValue(node)); } @@ -160,10 +165,11 @@ public void OpenXmlDYNwithInvalidSelectedIndex2() /// with SelectedIndex larger than item count can still be opened correctly /// [Test] + [Category("FailureNET6")] public void OpenXmlDYNwithInvalidSelectedIndex3() { // Define package loading reference path - var dir = SystemTestBase.GetTestDirectory(ExecutingDirectory); + var dir = TestDirectory; var pkgDir = Path.Combine(dir, "pkgs\\Dynamo Samples"); var pkgMan = this.CurrentDynamoModel.GetPackageManagerExtension(); var loader = pkgMan.PackageLoader; @@ -175,6 +181,7 @@ public void OpenXmlDYNwithInvalidSelectedIndex3() Assert.AreEqual(pkg.Name, "Dynamo Samples"); // Run the graph with correct info serialized, node should deserialize to correct selection + //TODO_NET6 following package cannot be loaded as depends on wpf. string path = Path.Combine(TestDirectory, "pkgs", "Dynamo Samples", "extra", "DropDownSample_1Dot3_InvalidSelectedIndex3.dyn"); RunModel(path); @@ -188,7 +195,7 @@ public void OpenXmlDYNwithInvalidSelectedIndex3() public void PopulateItemsShouldNotChangeSelectedIndex() { // Define package loading reference path - var dir = SystemTestBase.GetTestDirectory(ExecutingDirectory); + var dir = TestDirectory; var pkgDir = Path.Combine(dir, "pkgs\\Dynamo Samples"); var pkgMan = this.CurrentDynamoModel.GetPackageManagerExtension(); var loader = pkgMan.PackageLoader; @@ -218,7 +225,7 @@ public void PopulateItemsShouldNotChangeSelectedIndex() public void GetSelectedStringFromItemShouldReturnString() { // Define package loading reference path - var dir = SystemTestBase.GetTestDirectory(ExecutingDirectory); + var dir = TestDirectory; var pkgDir = Path.Combine(dir, "pkgs\\Dynamo Samples"); var pkgMan = this.CurrentDynamoModel.GetPackageManagerExtension(); var loader = pkgMan.PackageLoader; diff --git a/test/DynamoCoreTests/Nodes/StringTests.cs b/test/DynamoCoreTests/Nodes/StringTests.cs index 1629f02a3fd..e4db34851b4 100644 --- a/test/DynamoCoreTests/Nodes/StringTests.cs +++ b/test/DynamoCoreTests/Nodes/StringTests.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.IO; using System.Linq; using CoreNodeModels; @@ -500,7 +500,7 @@ public void TestStringCaseNormalInput() #region to string test cases - [Ignore] + [Ignore("unknown reason")] public void TestToStringEmptyInput() { string testFilePath = Path.Combine(localDynamoStringTestFolder, "TestToString_emptyString.dyn"); @@ -510,7 +510,7 @@ public void TestToStringEmptyInput() } - [Ignore] + [Ignore("unknown reason")] public void TestToStringFileInput() { string testFilePath = Path.Combine(localDynamoStringTestFolder, "TestToString_fromFile.dyn"); @@ -520,7 +520,7 @@ public void TestToStringFileInput() } - [Ignore] + [Ignore("unknown reason")] public void TestToStringFunctionInput() { string testFilePath = Path.Combine(localDynamoStringTestFolder, "TestToString_fromFunction.dyn"); @@ -530,7 +530,7 @@ public void TestToStringFunctionInput() } - [Ignore] + [Ignore("unknown reason")] public void TestToStringNormalInput() { string testFilePath = Path.Combine(localDynamoStringTestFolder, "TestToString_normal.dyn"); diff --git a/test/DynamoCoreTests/PackageDependencyTests.cs b/test/DynamoCoreTests/PackageDependencyTests.cs index 9d69bd72c7c..817290a2105 100644 --- a/test/DynamoCoreTests/PackageDependencyTests.cs +++ b/test/DynamoCoreTests/PackageDependencyTests.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -94,7 +94,7 @@ public void ZeroTouchPackageDependencyIsCollectedAndSerialized() Assert.AreEqual(package.Nodes.Select(n => n.ToString("N")), nodes); } - [Test] + [Test,Category("FailureNET6")] public void NodeModelPackageDependencyIsCollected() { // Load JSON file graph @@ -117,6 +117,7 @@ public void NodeModelPackageDependencyIsCollected() var packageDependencies = currentws.NodeLibraryDependencies; Assert.AreEqual(1, packageDependencies.Count); var package = packageDependencies.First(); + //TODO_NET6 following package cannot be loaded as depends on wpf. Assert.AreEqual(new PackageDependencyInfo("Dynamo Samples", new Version("2.0.0")), package); Assert.AreEqual(1, package.Nodes.Count); @@ -451,7 +452,7 @@ public void PackageDependenciesUpdatedWhenCustomNodeResolvedByNewPackage() Assert.AreEqual(pi, packageDependencies.First()); } - [Test] + [Test,Category("FailureNET6")] public void PackageDependencyStatechangeTestAfterLoadingPackage() { // Before loading the clockworkpackage,veify the package dependency states. @@ -479,6 +480,8 @@ public void PackageDependencyStatechangeTestAfterLoadingPackage() Assert.AreEqual(new PackageDependencyInfo("Clockwork for Dynamo 1.x", new Version("1.33.0")), thirdPackage); Assert.AreEqual(PackageDependencyState.Missing, thirdPackage.State); + //TODO_NET6 following package cannot be loaded as depends on wpf. + // Check for Loaded package state PackageDependencyInfo lastPackage = (PackageDependencyInfo) packageDependenciesList.Last(); Assert.AreEqual(new PackageDependencyInfo("Dynamo Samples", new Version("2.0.0")), lastPackage); diff --git a/test/DynamoCoreTests/PresetsTests.cs b/test/DynamoCoreTests/PresetsTests.cs index f1b9457b7e7..a55bf41ff3f 100644 --- a/test/DynamoCoreTests/PresetsTests.cs +++ b/test/DynamoCoreTests/PresetsTests.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -344,7 +344,7 @@ public void CanCreateStatesAndSave() Assert.IsTrue(File.Exists(newPath)); } - [Test, Ignore] + [Test, Ignore("unknown reason")] public void CanSaveAndLoadStateWithMissingNodesWithoutLosingThem() { var model = CurrentDynamoModel; diff --git a/test/DynamoCoreTests/Properties/AssemblyInfo.cs b/test/DynamoCoreTests/Properties/AssemblyInfo.cs index 98a3608feb2..24f47be7129 100644 --- a/test/DynamoCoreTests/Properties/AssemblyInfo.cs +++ b/test/DynamoCoreTests/Properties/AssemblyInfo.cs @@ -1,6 +1,7 @@ -using System.Reflection; +using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; +using System.Threading; using NUnit.Framework; // General Information about an assembly is controlled through the following @@ -8,8 +9,11 @@ // associated with an assembly. [assembly: AssemblyTitle("DynamoCoreTests")] [assembly: AssemblyCulture("")] -[assembly: RequiresSTA] - +#if NET6_0_OR_GREATER +[assembly: Apartment(ApartmentState.STA)] +#elif NETFRAMEWORK + [assembly: RequiresSTA] +#endif // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("1a12b389-dc06-4114-ac45-2e0903cab66d")] [assembly: InternalsVisibleTo("DynamoCoreTests")] diff --git a/test/DynamoCoreTests/SchedulerTests.cs b/test/DynamoCoreTests/SchedulerTests.cs index fc6174a328a..89b9d0a4bfd 100644 --- a/test/DynamoCoreTests/SchedulerTests.cs +++ b/test/DynamoCoreTests/SchedulerTests.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -419,8 +419,12 @@ public void TimeStampGenerator00() /// mechanism avoids concurrent calls to DynamoScheduler.NextTimeStamp /// from getting the same time-stamp value. /// - /// + /// +#if NETFRAMEWORK [Test, RequiresMTA] +#elif NET6_0_OR_GREATER + [Test, Apartment(ApartmentState.MTA)] +#endif [Category("UnitTests")] public void TimeStampGenerator01() { diff --git a/test/DynamoCoreTests/SerializationTests.cs b/test/DynamoCoreTests/SerializationTests.cs index a64bb166c3f..b43ea0c05d8 100644 --- a/test/DynamoCoreTests/SerializationTests.cs +++ b/test/DynamoCoreTests/SerializationTests.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Threading; using CoreNodeModels; +using DesignScript.Builtin; using Dynamo.Engine; using Dynamo.Engine.NodeToCode; using Dynamo.Events; @@ -19,7 +20,6 @@ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using NUnit.Framework; -using TestUINodes; namespace Dynamo.Tests { @@ -293,7 +293,12 @@ public static void CompareWorkspaceModels(serializationTestUtils.WorkspaceCompar // When values are geometry, sometimes the creation // of the string representation for forming this message // fails. - Assert.AreEqual(valueA, valueB, +#if NET6_0_OR_GREATER + Assert.That(valueA, Is.EqualTo(valueB).Using(DynamoDictionaryEquality), + +#elif NETFRAMEWORK + Assert.That(valueA, Is.EqualTo(valueB), +#endif string.Format("Node Type:{0} value, {1} is not equal to {2}", a.NodeTypeMap[kvp.Key], valueA, valueB)); } @@ -311,6 +316,12 @@ public static void CompareWorkspaceModels(serializationTestUtils.WorkspaceCompar } } + internal static bool DynamoDictionaryEquality(Dictionary a, Dictionary b) + { + return (bool)a?.Keys.SequenceEqual(b?.Keys) && (bool)a?.Values.SequenceEqual(b?.Values); + } + + public static void CompareWorkspacesDifferentGuids(serializationTestUtils.WorkspaceComparisonData a, serializationTestUtils.WorkspaceComparisonData b, Dictionary modelGuidsToIDmap) @@ -399,7 +410,12 @@ public static void CompareWorkspacesDifferentGuids(serializationTestUtils.Worksp // When values are geometry, sometimes the creation // of the string representation for forming this message // fails. - Assert.AreEqual(valueA, valueB, +#if NET6_0_OR_GREATER + Assert.That(valueA, Is.EqualTo(valueB).Using(DynamoDictionaryEquality), + +#elif NETFRAMEWORK + Assert.That(valueA, Is.EqualTo(valueB), +#endif string.Format("Node Type:{0} value, {1} is not equal to {2}", a.NodeTypeMap[kvp.Key], valueA, valueB)); } @@ -561,7 +577,7 @@ public override bool Equals(object obj) } } } - #endregion +#endregion /* The Serialization tests compare the results of a workspace opened and executed from its * original .dyn format, to one converted to json, deserialized and executed. In the process, @@ -592,7 +608,11 @@ protected override void GetLibrariesToPreload(List libraries) base.GetLibrariesToPreload(libraries); } +#if NETFRAMEWORK [TestFixtureSetUp] +#elif NET6_0_OR_GREATER + [OneTimeSetUp] +#endif public void FixtureSetup() { ExecutionEvents.GraphPostExecution += ExecutionEvents_GraphPostExecution; @@ -631,7 +651,11 @@ public void FixtureSetup() } } +#if NETFRAMEWORK [TestFixtureTearDown] +#elif NET6_0_OR_GREATER + [OneTimeTearDown] +#endif public void TearDown() { ExecutionEvents.GraphPostExecution -= ExecutionEvents_GraphPostExecution; @@ -880,34 +904,6 @@ public void ColorPaletteNodeInputDataSerializationTest() } - - [Test] - public void SelectionNodeInputDataSerializationTest() - { - // Arrange - var filePath = Path.Combine(TestDirectory, @"core\NodeInputOutputData\selectionNodeInputData.dyn"); - if (!File.Exists(filePath)) - { - var savePath = Path.ChangeExtension(filePath, null); - var selectionHelperMock = new Mock>(MockBehavior.Strict); - var selectionNode = new SelectionConcrete(SelectionType.Many, SelectionObjectType.Element, "testMessage", "testPrefix", selectionHelperMock.Object); - selectionNode.Name = "selectionTestName"; - selectionNode.IsSetAsInput = true; - - this.CurrentDynamoModel.CurrentWorkspace.AddAndRegisterNode(selectionNode); - ConvertCurrentWorkspaceToJsonAndSave(this.CurrentDynamoModel, savePath); - } - - // Act - // Assert - DoWorkspaceOpenAndCompare( - filePath, - jsonFolderName, - ConvertCurrentWorkspaceToJsonAndSave, - serializationTestUtils.CompareWorkspaceModels, - serializationTestUtils.SaveWorkspaceComparisonData); - } - [Test, Category("JsonTestExclude")] public void FunctionNodeLoadsWhenSignatureChanges() { @@ -935,7 +931,7 @@ public void AllTypesSerialize() serializationTestUtils.SaveWorkspaceComparisonData); } - public object[] FindWorkspaces() + public static object[] FindWorkspaces() { var di = new DirectoryInfo(TestDirectory); var fis = di.GetFiles("*.dyn", SearchOption.AllDirectories); @@ -1201,7 +1197,7 @@ private void DoWorkspaceOpenAndCompare(string filePath, string dirName, private static string ConvertCurrentWorkspaceToJsonAndSave(DynamoModel model, string filePathBase) { var json = model.CurrentWorkspace.ToJson(model.EngineController); - Assert.IsNotNullOrEmpty(json); + Assert.That(json, Is.Not.Null.Or.Empty); var tempPath = Path.GetTempPath(); var jsonFolder = Path.Combine(tempPath, jsonFolderName); @@ -1227,7 +1223,7 @@ private string ConvertCurrentWorkspaceToNonGuidJsonAndSave(DynamoModel model, st json = serializationTestUtils.replaceModelIdsWithNonGuids(json, model.CurrentWorkspace, modelsGuidToIdMap); - Assert.IsNotNullOrEmpty(json); + Assert.That(json, Is.Not.Null.Or.Empty); var tempPath = Path.GetTempPath(); var jsonFolder = Path.Combine(tempPath, jsonNonGuidFolderName); diff --git a/test/DynamoCoreTests/Setup.cs b/test/DynamoCoreTests/Setup.cs index 23d9269a451..60f6ebdf7f6 100644 --- a/test/DynamoCoreTests/Setup.cs +++ b/test/DynamoCoreTests/Setup.cs @@ -1,17 +1,19 @@ -using System; +using System; using System.IO; using System.Reflection; using Dynamo.Utilities; using NUnit.Framework; -namespace Dynamo.Tests -{ [SetUpFixture] public class Setup { private AssemblyHelper assemblyHelper; +#if NETFRAMEWORK [SetUp] +#elif NET6_0_OR_GREATER + [OneTimeSetUp] +#endif public void RunBeforeAllTests() { var assemblyPath = Assembly.GetExecutingAssembly().Location; @@ -28,11 +30,14 @@ public void RunBeforeAllTests() AppDomain.CurrentDomain.AssemblyResolve += assemblyHelper.ResolveAssembly; } +#if NETFRAMEWORK [TearDown] +#elif NET6_0_OR_GREATER + [OneTimeTearDown] +#endif public void RunAfterAllTests() { AppDomain.CurrentDomain.AssemblyResolve -= assemblyHelper.ResolveAssembly; assemblyHelper = null; } } -} diff --git a/test/DynamoCoreTests/UnitTestBase.cs b/test/DynamoCoreTests/UnitTestBase.cs index 9aed32412f2..8e4eccfe1ad 100644 --- a/test/DynamoCoreTests/UnitTestBase.cs +++ b/test/DynamoCoreTests/UnitTestBase.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Configuration; using System.IO; using System.Reflection; @@ -65,7 +65,10 @@ public static string TestDirectory public virtual void Setup() { SetupDirectories(); +#if NETFRAMEWORK + DSOffice.ExcelInterop.ShowOnStartup = false; +#endif if (assemblyHelper == null) { diff --git a/test/DynamoCoreTests/UnitsOfMeasureTests.cs b/test/DynamoCoreTests/UnitsOfMeasureTests.cs index ddb6c53dda2..6652dc7a42e 100644 --- a/test/DynamoCoreTests/UnitsOfMeasureTests.cs +++ b/test/DynamoCoreTests/UnitsOfMeasureTests.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using DynamoUnits; @@ -756,7 +756,6 @@ public void CanMapOverUnits() } } } - internal class ForgeUnitsTests : UnitTestBase { [SetUp] @@ -1045,7 +1044,7 @@ public void ParseExpressionIncompatible() { Assert.That(() => { DynamoUnits.Utilities.ParseExpression("3mm"); }, Throws.Exception); } - [Test, Category("UnitTests")] + [Test, Category("UnitTests"), Category("FailureNET6")] public void GetAll () { Assert.Greater(DynamoUnits.Utilities.GetAllUnits().Count(), 0); diff --git a/test/DynamoCoreTests/Updates/UpdatesTests.cs b/test/DynamoCoreTests/Updates/UpdatesTests.cs index a4714e71ee3..ed2581e4fa5 100644 --- a/test/DynamoCoreTests/Updates/UpdatesTests.cs +++ b/test/DynamoCoreTests/Updates/UpdatesTests.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using Dynamo.Logging; @@ -151,7 +151,7 @@ public void UpdateManagerPropertiesTest() //UpdateFileLocation _ = new UpdateManager(new UpdateManagerConfiguration()); // For a new UpdateManager, the UpdateFileLocation property is not initialized. - Assert.IsNullOrEmpty(updateManager.UpdateFileLocation); + Assert.That(updateManager.UpdateFileLocation, Is.Null.Or.Empty); } [Test] diff --git a/test/DynamoCoreTests/Utilities/UtilitiesTests.cs b/test/DynamoCoreTests/Utilities/UtilitiesTests.cs index 628a89639dc..36cf471d284 100644 --- a/test/DynamoCoreTests/Utilities/UtilitiesTests.cs +++ b/test/DynamoCoreTests/Utilities/UtilitiesTests.cs @@ -1,7 +1,8 @@ using System; +using System.Collections; +using System.Collections.Generic; using Dynamo.Utilities; using NUnit.Framework; -using SharpDX.Text; namespace Dynamo.Tests.Core { @@ -51,7 +52,7 @@ public void ResourceLoaderLoadManyTest() Assert.IsNotEmpty(ResourceLoader.Load(typeof(TestResource), resourceNames)); //Empty string when one of the parameters is null - Assert.AreEqual(string.Empty, ResourceLoader.Load(null, resourceNames)); + Assert.AreEqual(new List(), ResourceLoader.Load(null, resourceNames)); //Asking for a property that does not exist resourceNames = new string[] { "Test", "Test2" }; diff --git a/test/DynamoCoreWpfTests/CoreUITests.cs b/test/DynamoCoreWpfTests/CoreUITests.cs index a8881414beb..6bb49e27488 100644 --- a/test/DynamoCoreWpfTests/CoreUITests.cs +++ b/test/DynamoCoreWpfTests/CoreUITests.cs @@ -753,6 +753,28 @@ public void PreferenceSettingsConnectorTypeRevertsToBezier() Assert.That(Model.PreferenceSettings.ConnectorType == ConnectorType.POLYLINE); Assert.That(Model.ConnectorType == ConnectorType.BEZIER); } + /// + /// Checks that we are serializing and deserializing the PreferenceSettings.DefaultScaleFactor in DynamoSettings.xml correctly + /// + [Test] + public void TestImportDefaultScaleFactor() + { + string settingDirectory = Path.Combine(GetTestDirectory(ExecutingDirectory), "settings"); + string newSettingslFilePath = Path.Combine(settingDirectory, "DynamoSettings-NewSettings.xml"); + + var defaultSettings = new PreferenceSettings(); + defaultSettings.DefaultScaleFactor = GeometryScalingOptions.ConvertUIToScaleFactor((int)GeometryScaleSize.ExtraLarge); + + //Save in the DynamoSettings.xml the DefaultScaleFactor = 4 + defaultSettings.Save(newSettingslFilePath); + + //Reload the saved settings file + var updatedSettings = PreferenceSettings.Load(newSettingslFilePath); + int UIIndex = GeometryScalingOptions.ConvertScaleFactorToUI((int)updatedSettings.DefaultScaleFactor); + + //Validates that the content of DefaultScaleFactor match with ExtraLarge (4) + Assert.IsTrue(UIIndex == (int)GeometryScaleSize.ExtraLarge); + } private void RestartTestSetup(bool startInTestMode) { diff --git a/test/DynamoCoreWpfTests/DynamoCoreWpfTests.csproj b/test/DynamoCoreWpfTests/DynamoCoreWpfTests.csproj index f1fd5e662dc..3b300d08a67 100644 --- a/test/DynamoCoreWpfTests/DynamoCoreWpfTests.csproj +++ b/test/DynamoCoreWpfTests/DynamoCoreWpfTests.csproj @@ -1,4 +1,4 @@ - + @@ -16,7 +16,7 @@ - + all @@ -36,7 +36,7 @@ - + ..\..\extern\prism\Microsoft.Practices.Prism.dll diff --git a/test/DynamoCoreWpfTests/SerializationTests.cs b/test/DynamoCoreWpfTests/SerializationTests.cs index 7b1108da70a..58113ffd1b9 100644 --- a/test/DynamoCoreWpfTests/SerializationTests.cs +++ b/test/DynamoCoreWpfTests/SerializationTests.cs @@ -21,6 +21,7 @@ using Dynamo.ViewModels; using Dynamo.Wpf.ViewModels.Core; using Dynamo.Wpf.ViewModels.Watch3D; +using Moq; using Newtonsoft.Json.Linq; using NUnit.Framework; using TestUINodes; @@ -1145,6 +1146,33 @@ public void SelectionNodesHaveCorrectInputDataTypes() Assert.AreEqual(NodeInputTypes.selectionInput, data.Type); Assert.AreEqual(NodeInputTypes.hostSelection, data.Type2); } + [Test] + public void SelectionNodeInputDataSerializationTest() + { + // Arrange + var filePath = Path.Combine(TestDirectory, @"core\NodeInputOutputData\selectionNodeInputData.dyn"); + if (!File.Exists(filePath)) + { + var savePath = Path.ChangeExtension(filePath, null); + var selectionHelperMock = new Mock>(MockBehavior.Strict); + var selectionNode = new SelectionConcrete(SelectionType.Many, SelectionObjectType.Element, "testMessage", "testPrefix", selectionHelperMock.Object); + selectionNode.Name = "selectionTestName"; + selectionNode.IsSetAsInput = true; + + ViewModel.Model.CurrentWorkspace.AddAndRegisterNode(selectionNode); + ConvertCurrentWorkspaceViewToJsonAndSave(ViewModel, savePath); + } + + // Act + // Assert + DoWorkspaceOpenAndCompareView( + filePath, + jsonFolderName, + ConvertCurrentWorkspaceViewToJsonAndSave, + //TODO(MJK) potentially just use compareworkspacedata if test fails. + CompareWorkspaceViews, + serializationTestUtils.SaveWorkspaceComparisonData); + } public object[] FindWorkspaces() { diff --git a/test/DynamoCoreWpfTests/Setup.cs b/test/DynamoCoreWpfTests/Setup.cs index 2cd0e4b9b1f..b6803f74426 100644 --- a/test/DynamoCoreWpfTests/Setup.cs +++ b/test/DynamoCoreWpfTests/Setup.cs @@ -1,11 +1,10 @@ -using System; +using System; using System.IO; using System.Reflection; using Dynamo.Utilities; using NUnit.Framework; -namespace DynamoCoreWpfTests -{ + [SetUpFixture] public class Setup { @@ -15,15 +14,17 @@ public class Setup public void RunBeforeAllTests() { var assemblyPath = Assembly.GetExecutingAssembly().Location; - var moduleRootFolder = Path.GetDirectoryName(assemblyPath); + var moduleRootFolder = new DirectoryInfo(assemblyPath).Parent; var resolutionPaths = new[] { // These tests need "CoreNodeModelsWpf.dll" under "nodes" folder. - Path.Combine(moduleRootFolder, "nodes") + Path.Combine(moduleRootFolder.FullName, "nodes"), + Path.Combine(moduleRootFolder.Parent.Parent.Parent.FullName, "test", "test_dependencies") + }; - assemblyHelper = new AssemblyHelper(moduleRootFolder, resolutionPaths); + assemblyHelper = new AssemblyHelper(moduleRootFolder.FullName, resolutionPaths); AppDomain.CurrentDomain.AssemblyResolve += assemblyHelper.ResolveAssembly; } @@ -34,4 +35,3 @@ public void RunAfterAllTests() assemblyHelper = null; } } -} diff --git a/test/DynamoCoreTests/UpdateInputNodeModelTest.cs b/test/DynamoCoreWpfTests/UpdateInputNodeModelTests.cs similarity index 94% rename from test/DynamoCoreTests/UpdateInputNodeModelTest.cs rename to test/DynamoCoreWpfTests/UpdateInputNodeModelTests.cs index f04602bfe9d..fc2dec578b6 100644 --- a/test/DynamoCoreTests/UpdateInputNodeModelTest.cs +++ b/test/DynamoCoreWpfTests/UpdateInputNodeModelTests.cs @@ -1,4 +1,4 @@ -using NUnit.Framework; +using NUnit.Framework; using System.Collections.Generic; using System.IO; @@ -14,7 +14,7 @@ protected override void GetLibrariesToPreload(List libraries) base.GetLibrariesToPreload(libraries); } - + //This test depends on the TestUINodes.dll - which depends on DynamoCoreWPF. [Test] public void TestUpdateInputNodeModel() { diff --git a/test/Engine/FFITarget/FFITarget.csproj b/test/Engine/FFITarget/FFITarget.csproj index 88548720974..6f3a73d8e80 100644 --- a/test/Engine/FFITarget/FFITarget.csproj +++ b/test/Engine/FFITarget/FFITarget.csproj @@ -1,4 +1,4 @@ - + @@ -12,17 +12,19 @@ ..\..\..\bin\AnyCPU\Debug\en-US\FFITarget.xml + + + + + + + + + + + - - - - - - - - - - + @@ -40,4 +42,4 @@ PreserveNewest - \ No newline at end of file + diff --git a/test/Engine/ProtoTest/ProtoTest.csproj b/test/Engine/ProtoTest/ProtoTest.csproj index c510d668f8a..2f6a7dec7ed 100644 --- a/test/Engine/ProtoTest/ProtoTest.csproj +++ b/test/Engine/ProtoTest/ProtoTest.csproj @@ -1,4 +1,4 @@ - + @@ -23,7 +23,7 @@ - + diff --git a/test/Engine/ProtoTestFx/ProtoTestFx.csproj b/test/Engine/ProtoTestFx/ProtoTestFx.csproj index 1106df29abf..02c31566d74 100644 --- a/test/Engine/ProtoTestFx/ProtoTestFx.csproj +++ b/test/Engine/ProtoTestFx/ProtoTestFx.csproj @@ -1,4 +1,4 @@ - + @@ -22,7 +22,7 @@ - + diff --git a/test/Libraries/AnalysisTests/AnalysisTests.csproj b/test/Libraries/AnalysisTests/AnalysisTests.csproj index 4422b8a65ac..77a290777d3 100644 --- a/test/Libraries/AnalysisTests/AnalysisTests.csproj +++ b/test/Libraries/AnalysisTests/AnalysisTests.csproj @@ -1,4 +1,4 @@ - + @@ -13,7 +13,7 @@ - + diff --git a/test/Libraries/CommandLineTests/CommandLineTests.csproj b/test/Libraries/CommandLineTests/CommandLineTests.csproj index d12967df048..8269ed44ce4 100644 --- a/test/Libraries/CommandLineTests/CommandLineTests.csproj +++ b/test/Libraries/CommandLineTests/CommandLineTests.csproj @@ -1,4 +1,4 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/test/Libraries/CoreNodesTests/CoreNodesTests.csproj b/test/Libraries/CoreNodesTests/CoreNodesTests.csproj index c2d5a5bd667..33fc638b76c 100644 --- a/test/Libraries/CoreNodesTests/CoreNodesTests.csproj +++ b/test/Libraries/CoreNodesTests/CoreNodesTests.csproj @@ -1,4 +1,4 @@ - + @@ -12,11 +12,11 @@ DSCoreNodesTests - + - + diff --git a/test/Libraries/CoreNodesTests/Setup.cs b/test/Libraries/CoreNodesTests/Setup.cs index e525d97c30f..9f140db8e9f 100644 --- a/test/Libraries/CoreNodesTests/Setup.cs +++ b/test/Libraries/CoreNodesTests/Setup.cs @@ -1,11 +1,10 @@ -using System; +using System; using System.IO; using System.Reflection; using Dynamo.Utilities; using NUnit.Framework; -namespace DSCoreNodesTests -{ + [SetUpFixture] public class Setup { @@ -15,15 +14,17 @@ public class Setup public void SetUp() { var assemblyPath = Assembly.GetExecutingAssembly().Location; - var moduleRootFolder = Path.GetDirectoryName(assemblyPath); + var moduleRootFolder = new DirectoryInfo(assemblyPath).Parent; var resolutionPaths = new[] { // These tests need "CoreNodeModels.dll" under "nodes" folder. - Path.Combine(moduleRootFolder, "nodes") + Path.Combine(moduleRootFolder.FullName, "nodes"), + Path.Combine(moduleRootFolder.Parent.Parent.Parent.FullName, "test", "test_dependencies") + }; - assemblyHelper = new AssemblyHelper(moduleRootFolder, resolutionPaths,true); + assemblyHelper = new AssemblyHelper(moduleRootFolder.FullName, resolutionPaths,true); AppDomain.CurrentDomain.AssemblyResolve += assemblyHelper.ResolveAssembly; } @@ -34,4 +35,3 @@ public void TearDown() assemblyHelper = null; } } -} diff --git a/test/Libraries/DataBridgeTests/DataBridgeTests.csproj b/test/Libraries/DataBridgeTests/DataBridgeTests.csproj index c3b1deb42bc..39dbd1e8bf6 100644 --- a/test/Libraries/DataBridgeTests/DataBridgeTests.csproj +++ b/test/Libraries/DataBridgeTests/DataBridgeTests.csproj @@ -1,4 +1,4 @@ - + @@ -14,7 +14,7 @@ - + @@ -48,6 +48,7 @@ {89563cd0-509b-40a5-8728-9d3ec6fe8410} SystemTestServices + diff --git a/test/Libraries/DynamoMSOfficeTests/DynamoMSOfficeTests.csproj b/test/Libraries/DynamoMSOfficeTests/DynamoMSOfficeTests.csproj index be895fc928e..799879f40c9 100644 --- a/test/Libraries/DynamoMSOfficeTests/DynamoMSOfficeTests.csproj +++ b/test/Libraries/DynamoMSOfficeTests/DynamoMSOfficeTests.csproj @@ -1,4 +1,4 @@ - + @@ -14,7 +14,7 @@ - + @@ -63,6 +63,7 @@ {89563cd0-509b-40a5-8728-9d3ec6fe8410} SystemTestServices + diff --git a/test/Libraries/DynamoPythonTests/DynamoPythonTests.csproj b/test/Libraries/DynamoPythonTests/DynamoPythonTests.csproj index ae7ada97a51..421a847a502 100644 --- a/test/Libraries/DynamoPythonTests/DynamoPythonTests.csproj +++ b/test/Libraries/DynamoPythonTests/DynamoPythonTests.csproj @@ -1,4 +1,4 @@ - + @@ -14,11 +14,11 @@ - + - + ..\..\..\extern\prism\Microsoft.Practices.Prism.dll False @@ -68,6 +68,7 @@ DynamoServices False + {472084ed-1067-4b2c-8737-3839a6143eb2} DynamoCoreTests @@ -88,6 +89,7 @@ SystemTestServices False + diff --git a/test/DynamoCoreTests/PythonMigrationAssistantTests.cs b/test/Libraries/DynamoPythonTests/PythonMigrationTests.cs similarity index 98% rename from test/DynamoCoreTests/PythonMigrationAssistantTests.cs rename to test/Libraries/DynamoPythonTests/PythonMigrationTests.cs index d34c8f0a91c..5e8f3e87695 100644 --- a/test/DynamoCoreTests/PythonMigrationAssistantTests.cs +++ b/test/Libraries/DynamoPythonTests/PythonMigrationTests.cs @@ -1,9 +1,10 @@ -using System; +using System; using Dynamo.PythonMigration.MigrationAssistant; using NUnit.Framework; -namespace Dynamo.Tests +namespace DynamoPythonTests { + [TestFixture] public class PythonMigrationAssistantTests { [Test] diff --git a/test/Libraries/DynamoUtilitiesTests/DynamoUtilitiesTests.csproj b/test/Libraries/DynamoUtilitiesTests/DynamoUtilitiesTests.csproj index fffa581fd5a..11b1d3e79d9 100644 --- a/test/Libraries/DynamoUtilitiesTests/DynamoUtilitiesTests.csproj +++ b/test/Libraries/DynamoUtilitiesTests/DynamoUtilitiesTests.csproj @@ -1,4 +1,4 @@ - + @@ -10,10 +10,10 @@ DynamoUtilitiesTests - + - + diff --git a/test/Libraries/DynamoUtilitiesTests/Setup.cs b/test/Libraries/DynamoUtilitiesTests/Setup.cs new file mode 100644 index 00000000000..22276870cc1 --- /dev/null +++ b/test/Libraries/DynamoUtilitiesTests/Setup.cs @@ -0,0 +1,43 @@ +using System; +using System.IO; +using System.Reflection; +using Dynamo.Utilities; +using NUnit.Framework; + +[SetUpFixture] +public class Setup +{ + private AssemblyHelper assemblyHelper; + +#if NETFRAMEWORK + [SetUp] +#elif NET6_0_OR_GREATER + [OneTimeSetUp] +#endif + public void RunBeforeAllTests() + { + var assemblyPath = Assembly.GetExecutingAssembly().Location; + var moduleRootFolder = new DirectoryInfo(assemblyPath).Parent; + + var resolutionPaths = new[] + { + // These tests need "CoreNodeModels.dll" under "nodes" folder. + Path.Combine(moduleRootFolder.FullName, "nodes"), + Path.Combine(moduleRootFolder.Parent.Parent.Parent.FullName, "test", "test_dependencies") + }; + + assemblyHelper = new AssemblyHelper(moduleRootFolder.FullName, resolutionPaths); + AppDomain.CurrentDomain.AssemblyResolve += assemblyHelper.ResolveAssembly; + } + +#if NETFRAMEWORK + [TearDown] +#elif NET6_0_OR_GREATER + [OneTimeTearDown] +#endif + public void RunAfterAllTests() + { + AppDomain.CurrentDomain.AssemblyResolve -= assemblyHelper.ResolveAssembly; + assemblyHelper = null; + } +} diff --git a/test/Libraries/GeometryColorTests/GeometryColorTests.csproj b/test/Libraries/GeometryColorTests/GeometryColorTests.csproj index 03f7ad4ed88..b87a91c66d3 100644 --- a/test/Libraries/GeometryColorTests/GeometryColorTests.csproj +++ b/test/Libraries/GeometryColorTests/GeometryColorTests.csproj @@ -1,4 +1,4 @@ - + @@ -13,7 +13,7 @@ - + diff --git a/test/Libraries/IronPythonTests/IronPythonTests.csproj b/test/Libraries/IronPythonTests/IronPythonTests.csproj index 3bf87612046..c708545a2a2 100644 --- a/test/Libraries/IronPythonTests/IronPythonTests.csproj +++ b/test/Libraries/IronPythonTests/IronPythonTests.csproj @@ -1,4 +1,4 @@ - + @@ -19,7 +19,7 @@ - + ..\..\..\extern\prism\Microsoft.Practices.Prism.dll False diff --git a/test/Libraries/NodeServicesTest/DynamoServicesTests.csproj b/test/Libraries/NodeServicesTest/DynamoServicesTests.csproj index df5079ac174..34195be3c13 100644 --- a/test/Libraries/NodeServicesTest/DynamoServicesTests.csproj +++ b/test/Libraries/NodeServicesTest/DynamoServicesTests.csproj @@ -1,4 +1,4 @@ - + @@ -14,7 +14,7 @@ - + diff --git a/test/Libraries/PackageManagerTests/PackageManagerTests.csproj b/test/Libraries/PackageManagerTests/PackageManagerTests.csproj index adfbe0d7742..4a5f1872ab4 100644 --- a/test/Libraries/PackageManagerTests/PackageManagerTests.csproj +++ b/test/Libraries/PackageManagerTests/PackageManagerTests.csproj @@ -1,4 +1,4 @@ - + @@ -14,12 +14,12 @@ all compile; build; native; contentfiles; analyzers; buildtransitive - + - + diff --git a/test/Libraries/PackageManagerTests/Setup.cs b/test/Libraries/PackageManagerTests/Setup.cs new file mode 100644 index 00000000000..30367acf666 --- /dev/null +++ b/test/Libraries/PackageManagerTests/Setup.cs @@ -0,0 +1,43 @@ +using Dynamo.Utilities; +using NUnit.Framework; +using System; +using System.IO; +using System.Reflection; + + [SetUpFixture] + public class Setup + { + private AssemblyHelper assemblyHelper; + +#if NETFRAMEWORK + [SetUp] +#elif NET6_0_OR_GREATER + [OneTimeSetUp] +#endif + public void RunBeforeAllTests() + { + var assemblyPath = Assembly.GetExecutingAssembly().Location; + var moduleRootFolder = new DirectoryInfo(assemblyPath).Parent; + + var resolutionPaths = new[] + { + // These tests need "CoreNodeModels.dll" under "nodes" folder. + Path.Combine(moduleRootFolder.FullName, "nodes"), + Path.Combine(moduleRootFolder.Parent.Parent.Parent.FullName, "test", "test_dependencies") + }; + + assemblyHelper = new AssemblyHelper(moduleRootFolder.FullName, resolutionPaths); + AppDomain.CurrentDomain.AssemblyResolve += assemblyHelper.ResolveAssembly; + } + +#if NETFRAMEWORK + [TearDown] +#elif NET6_0_OR_GREATER + [OneTimeTearDown] +#endif + public void RunAfterAllTests() + { + AppDomain.CurrentDomain.AssemblyResolve -= assemblyHelper.ResolveAssembly; + assemblyHelper = null; + } + } diff --git a/test/Libraries/SystemTestServices/Properties/AssemblyInfo.cs b/test/Libraries/SystemTestServices/Properties/AssemblyInfo.cs index 9f2e1d3b979..13df5aec6cf 100644 --- a/test/Libraries/SystemTestServices/Properties/AssemblyInfo.cs +++ b/test/Libraries/SystemTestServices/Properties/AssemblyInfo.cs @@ -1,5 +1,7 @@ -using System.Reflection; +using System.Reflection; +using System.Runtime.CompilerServices; using System.Runtime.InteropServices; +using Dynamo.Tests; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information @@ -7,3 +9,6 @@ [assembly: AssemblyTitle("SystemTestServices")] [assembly: AssemblyCulture("")] [assembly: Guid("93906b16-5bb7-43cb-92d8-3672f94e0496")] + + +[assembly: TypeForwardedToAttribute(typeof(TestExtensions))] diff --git a/test/Libraries/SystemTestServices/SystemTestServices.csproj b/test/Libraries/SystemTestServices/SystemTestServices.csproj index 4764475c403..7c5650ad6ed 100644 --- a/test/Libraries/SystemTestServices/SystemTestServices.csproj +++ b/test/Libraries/SystemTestServices/SystemTestServices.csproj @@ -1,4 +1,4 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/test/Libraries/TestServices/GeometricTestBase.cs b/test/Libraries/TestServices/GeometricTestBase.cs index 073f2a7e353..d0cfcb90a8c 100644 --- a/test/Libraries/TestServices/GeometricTestBase.cs +++ b/test/Libraries/TestServices/GeometricTestBase.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Reflection; @@ -7,10 +7,12 @@ using DynamoShapeManager; -using NUnit.Framework; namespace TestServices { +#if NETFRAMEWORK +using NUnit.Framework; + public class GeometricTestBase { private AssemblyResolver assemblyResolver; @@ -55,7 +57,7 @@ protected virtual TestSessionConfiguration GetTestSessionConfiguration() return new TestSessionConfiguration(); } } - +#endif /// /// This is a temporary session class which is only used for nodes that are using Geometries. /// When ProtoGeometry is loaded, the static instance GeometryFactory will be constructed which diff --git a/test/Libraries/SystemTestServices/TestExtensions.cs b/test/Libraries/TestServices/TestExtensions.cs similarity index 94% rename from test/Libraries/SystemTestServices/TestExtensions.cs rename to test/Libraries/TestServices/TestExtensions.cs index 6ce39b271b4..5827960166b 100644 --- a/test/Libraries/SystemTestServices/TestExtensions.cs +++ b/test/Libraries/TestServices/TestExtensions.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Linq; using Dynamo.Graph.Nodes; using Dynamo.Graph.Nodes.ZeroTouch; @@ -45,7 +45,7 @@ public static T FirstNodeFromWorkspace(this WorkspaceModel model) where T : N public static NodeModel GetDSFunctionNodeFromWorkspace(this WorkspaceModel model, string nodeName) { return model.Nodes.FirstOrDefault(node => node is DSFunction && - node.Name == nodeName); + node.Name == nodeName); } } -} \ No newline at end of file +} diff --git a/test/Libraries/TestServices/TestServices.csproj b/test/Libraries/TestServices/TestServices.csproj index c0e57c2449d..58ac3c60f15 100644 --- a/test/Libraries/TestServices/TestServices.csproj +++ b/test/Libraries/TestServices/TestServices.csproj @@ -1,4 +1,4 @@ - + @@ -9,11 +9,18 @@ TestServices TestServices + + + + + + + - - - - + + + + @@ -38,4 +45,4 @@ DynamoShapeManager - \ No newline at end of file + diff --git a/test/Libraries/WorkflowTests/WorkflowTests.csproj b/test/Libraries/WorkflowTests/WorkflowTests.csproj index 1abb1c290d1..b331860e4f9 100644 --- a/test/Libraries/WorkflowTests/WorkflowTests.csproj +++ b/test/Libraries/WorkflowTests/WorkflowTests.csproj @@ -1,4 +1,4 @@ - + @@ -11,9 +11,9 @@ - + - + @@ -51,6 +51,7 @@ {89563cd0-509b-40a5-8728-9d3ec6fe8410} SystemTestServices + diff --git a/test/System/IntegrationTests/IntegrationTests.csproj b/test/System/IntegrationTests/IntegrationTests.csproj index 3a421ac30a9..9cd014772e3 100644 --- a/test/System/IntegrationTests/IntegrationTests.csproj +++ b/test/System/IntegrationTests/IntegrationTests.csproj @@ -1,4 +1,4 @@ - + @@ -14,7 +14,7 @@ - + diff --git a/test/TestUINodes/TestUINodes.csproj b/test/TestUINodes/TestUINodes.csproj index df33e8d00aa..c986ed15748 100644 --- a/test/TestUINodes/TestUINodes.csproj +++ b/test/TestUINodes/TestUINodes.csproj @@ -19,7 +19,7 @@ - + diff --git a/test/Tools/NodeDocumentationMarkdownGeneratorTests/NodeDocumentationMarkdownGeneratorTests.csproj b/test/Tools/NodeDocumentationMarkdownGeneratorTests/NodeDocumentationMarkdownGeneratorTests.csproj index 0b6fafd1f00..10ef4178bc4 100644 --- a/test/Tools/NodeDocumentationMarkdownGeneratorTests/NodeDocumentationMarkdownGeneratorTests.csproj +++ b/test/Tools/NodeDocumentationMarkdownGeneratorTests/NodeDocumentationMarkdownGeneratorTests.csproj @@ -1,4 +1,4 @@ - + @@ -12,7 +12,7 @@ - + diff --git a/test/ViewExtensionLibraryTests/Setup.cs b/test/ViewExtensionLibraryTests/Setup.cs new file mode 100644 index 00000000000..85180f405da --- /dev/null +++ b/test/ViewExtensionLibraryTests/Setup.cs @@ -0,0 +1,37 @@ +using System; +using System.IO; +using System.Reflection; +using Dynamo.Utilities; +using NUnit.Framework; + + +[SetUpFixture] +public class Setup +{ + private AssemblyHelper assemblyHelper; + + [SetUp] + public void SetUp() + { + var assemblyPath = Assembly.GetExecutingAssembly().Location; + var moduleRootFolder = new DirectoryInfo(assemblyPath).Parent; + + var resolutionPaths = new[] + { + // These tests need "CoreNodeModels.dll" under "nodes" folder. + Path.Combine(moduleRootFolder.FullName, "nodes"), + Path.Combine(moduleRootFolder.Parent.Parent.Parent.FullName, "test", "test_dependencies") + + }; + + assemblyHelper = new AssemblyHelper(moduleRootFolder.FullName, resolutionPaths, true); + AppDomain.CurrentDomain.AssemblyResolve += assemblyHelper.ResolveAssembly; + } + + [TearDown] + public void TearDown() + { + AppDomain.CurrentDomain.AssemblyResolve -= assemblyHelper.ResolveAssembly; + assemblyHelper = null; + } +} diff --git a/test/ViewExtensionLibraryTests/ViewExtensionLibraryTests.csproj b/test/ViewExtensionLibraryTests/ViewExtensionLibraryTests.csproj index ed362765945..e13ffbc12a4 100644 --- a/test/ViewExtensionLibraryTests/ViewExtensionLibraryTests.csproj +++ b/test/ViewExtensionLibraryTests/ViewExtensionLibraryTests.csproj @@ -1,4 +1,4 @@ - + @@ -10,11 +10,11 @@ ViewExtensionLibraryTests - + + - - + ..\..\extern\prism\Microsoft.Practices.Prism.dll False @@ -72,11 +72,7 @@ - - - - - + \ No newline at end of file diff --git a/test/core/MigrationLog_nodeLocationTest.xml b/test/core/MigrationLog_nodeLocationTest.xml new file mode 100644 index 00000000000..775d16e013b --- /dev/null +++ b/test/core/MigrationLog_nodeLocationTest.xml @@ -0,0 +1,7 @@ + + + + Create List + + + \ No newline at end of file