Example #1
0
        protected virtual void StartDynamo(TestSessionConfiguration testConfig)
        {
            preloader = new Preloader(testConfig.DynamoCorePath, testConfig.RequestedLibraryVersion);
            preloader.Preload();

            Model = DynamoModel.Start(
                new DynamoModel.DefaultStartConfiguration()
            {
                StartInTestMode     = true,
                PathResolver        = pathResolver,
                GeometryFactoryPath = preloader.GeometryFactoryPath
            });

            ViewModel = DynamoViewModel.Start(
                new DynamoViewModel.StartConfiguration()
            {
                DynamoModel = Model
            });

            //create the view
            View = new DynamoView(ViewModel);
            View.Show();

            SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
        }
Example #2
0
        protected override void StartDynamo(TestSessionConfiguration testConfig)
        {
            // Add Dynamo Core location to the PATH system environment variable.
            // This is to make sure dependencies(e.g.Helix assemblies) can be located.
            var path = Environment.GetEnvironmentVariable("Path", EnvironmentVariableTarget.Process) + ";" + testConfig.DynamoCorePath;

            Environment.SetEnvironmentVariable("Path", path, EnvironmentVariableTarget.Process);

            var preloader = new Preloader(testConfig.DynamoCorePath, new[] { testConfig.RequestedLibraryVersion2 });

            preloader.Preload();

            var preloadedLibraries = new List <string>();

            GetLibrariesToPreload(preloadedLibraries);

            if (preloadedLibraries.Any())
            {
                if (pathResolver == null)
                {
                    pathResolver = new TestPathResolver();
                }

                var pr = pathResolver as TestPathResolver;
                foreach (var preloadedLibrary in preloadedLibraries.Distinct())
                {
                    pr.AddPreloadLibraryPath(preloadedLibrary);
                }
            }

            Model = DynamoModel.Start(
                new DynamoModel.DefaultStartConfiguration()
            {
                StartInTestMode     = true,
                PathResolver        = pathResolver,
                GeometryFactoryPath = preloader.GeometryFactoryPath,
                UpdateManager       = this.UpdateManager,
                ProcessMode         = TaskProcessMode.Synchronous
            });

            Model.EvaluationCompleted += Model_EvaluationCompleted;

            ViewModel = DynamoViewModel.Start(
                new DynamoViewModel.StartConfiguration()
            {
                DynamoModel      = Model,
                Watch3DViewModel =
                    HelixWatch3DViewModel.TryCreateHelixWatch3DViewModel(
                        null,
                        new Watch3DViewModelStartupParams(Model),
                        Model.Logger)
            });

            //create the view
            View = new DynamoView(ViewModel);
            View.Show();

            SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
        }
Example #3
0
        protected override void StartDynamo(TestSessionConfiguration testConfig)
        {
            base.StartDynamo(testConfig);

            //create the view
            View = new DynamoView(ViewModel);
            View.Show();

            SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
        }
Example #4
0
        protected override void StartDynamo(TestSessionConfiguration testConfig)
        {
            try
            {
                UpdateSystemPathForProcess();

                // create the transaction manager object
                TransactionManager.SetupManager(new AutomaticTransactionStrategy());

                // Note that there is another data member pathResolver in base class
                // SystemTestBase. That pathResolver will be used only in StartDynamo
                // of the base class, here a local instance of pathResolver is used.
                //
                var revitTestPathResolver = new RevitTestPathResolver();
                revitTestPathResolver.InitializePreloadedLibraries();

                DynamoRevit.RevitDynamoModel = RevitDynamoModel.Start(
                    new RevitDynamoModel.RevitStartConfiguration()
                {
                    StartInTestMode       = true,
                    GeometryFactoryPath   = DynamoRevit.GetGeometryFactoryPath(testConfig.DynamoCorePath),
                    DynamoCorePath        = testConfig.DynamoCorePath,
                    PathResolver          = revitTestPathResolver,
                    Context               = "Revit 2014",
                    SchedulerThread       = new TestSchedulerThread(),
                    PackageManagerAddress = "https://www.dynamopackages.com",
                    ExternalCommandData   = new DynamoRevitCommandData(RevitTestExecutive.CommandData),
                    ProcessMode           = RevitTaskProcessMode
                });

                Model = DynamoRevit.RevitDynamoModel;

                this.ViewModel = DynamoRevitViewModel.Start(
                    new DynamoViewModel.StartConfiguration()
                {
                    DynamoModel = DynamoRevit.RevitDynamoModel,
                });

                var vm3D = ViewModel.Watch3DViewModels.FirstOrDefault(vm => vm is RevitWatch3DViewModel);
                if (vm3D != null)
                {
                    vm3D.Active = false;
                }

                // Because the test framework does not work in the idle thread.
                // We need to trick Dynamo into believing that it's in the idle
                // thread already.
                IdlePromise.InIdleThread = true;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
        }
Example #5
0
        protected override void StartDynamo(TestSessionConfiguration testConfig)
        {
            var preloader = new Preloader(testConfig.DynamoCorePath, testConfig.RequestedLibraryVersion);

            preloader.Preload();

            var preloadedLibraries = new List <string>();

            GetLibrariesToPreload(preloadedLibraries);

            if (preloadedLibraries.Any())
            {
                if (pathResolver == null)
                {
                    pathResolver = new TestPathResolver();
                }

                var pr = pathResolver as TestPathResolver;
                foreach (var preloadedLibrary in preloadedLibraries.Distinct())
                {
                    pr.AddPreloadLibraryPath(preloadedLibrary);
                }
            }

            Model = DynamoModel.Start(
                new DynamoModel.DefaultStartConfiguration()
            {
                StartInTestMode     = true,
                PathResolver        = pathResolver,
                GeometryFactoryPath = preloader.GeometryFactoryPath,
                UpdateManager       = this.UpdateManager,
                ProcessMode         = TaskProcessMode.Synchronous
            });

            ViewModel = DynamoViewModel.Start(
                new DynamoViewModel.StartConfiguration()
            {
                DynamoModel      = Model,
                Watch3DViewModel =
                    HelixWatch3DViewModel.TryCreateHelixWatch3DViewModel(
                        null,
                        new Watch3DViewModelStartupParams(Model),
                        Model.Logger)
            });

            //create the view
            View = new DynamoView(ViewModel);
            View.Show();

            SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
        }
Example #6
0
        protected virtual void StartDynamo(TestSessionConfiguration testConfig)
        {
            preloader = new Preloader(testConfig.DynamoCorePath, testConfig.RequestedLibraryVersion);
            preloader.Preload();

            var preloadedLibraries = new List <string>();

            GetLibrariesToPreload(preloadedLibraries);

            if (preloadedLibraries.Any())
            {
                if (pathResolver == null)
                {
                    pathResolver = new TestPathResolver();
                }

                var pr = pathResolver as TestPathResolver;
                foreach (var preloadedLibrary in preloadedLibraries.Distinct())
                {
                    pr.AddPreloadLibraryPath(preloadedLibrary);
                }
            }

            Model = DynamoModel.Start(
                new DynamoModel.DefaultStartConfiguration()
            {
                StartInTestMode     = true,
                PathResolver        = pathResolver,
                GeometryFactoryPath = preloader.GeometryFactoryPath,
                UpdateManager       = this.UpdateManager
            });

            ViewModel = DynamoViewModel.Start(
                new DynamoViewModel.StartConfiguration()
            {
                DynamoModel = Model
            });

            //create the view
            View = new DynamoView(ViewModel);
            View.Show();

            SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
        }
        protected override void StartDynamo(TestSessionConfiguration testConfig)
        {
            try
            {
                UpdateSystemPathForProcess();

                // create the transaction manager object
                TransactionManager.SetupManager(new AutomaticTransactionStrategy());

                // Note that there is another data member pathResolver in base class
                // SystemTestBase. That pathResolver will be used only in StartDynamo
                // of the base class, here a local instance of pathResolver is used.
                //
                var commandData    = new DynamoRevitCommandData(RevitTestExecutive.CommandData);
                var userDataFolder = Path.Combine(Environment.GetFolderPath(
                                                      Environment.SpecialFolder.ApplicationData),
                                                  "Dynamo", "Dynamo Revit");
                var commonDataFolder = Path.Combine(Environment.GetFolderPath(
                                                        Environment.SpecialFolder.CommonApplicationData),
                                                    "Autodesk", "RVT " + commandData.Application.Application.VersionNumber, "Dynamo");

                // Set Path Resolver's user data folder and common data folder with DynamoRevit runtime.
                var pathResolverParams = new TestPathResolverParams()
                {
                    UserDataRootFolder   = userDataFolder,
                    CommonDataRootFolder = commonDataFolder
                };
                RevitTestPathResolver revitTestPathResolver = new RevitTestPathResolver(pathResolverParams);
                revitTestPathResolver.InitializePreloadedLibraries();

                // Get the preloaded DynamoRevit Custom Nodes, and Add them to Preload Libraries.
                var preloadedLibraries = new List <string>();
                GetLibrariesToPreload(preloadedLibraries);
                if (preloadedLibraries.Any())
                {
                    foreach (var preloadedLibrary in preloadedLibraries)
                    {
                        if (Directory.Exists(preloadedLibrary))
                        {
                            revitTestPathResolver.AddNodeDirectory(preloadedLibrary);
                        }
                        else if (File.Exists(preloadedLibrary))
                        {
                            revitTestPathResolver.AddPreloadLibraryPath(preloadedLibrary);
                        }
                    }
                }

                // Init DynamoTestPath to get DynamoSettings.xml which under user data folder
                PreferenceSettings.DynamoTestPath = string.Empty;
                //preload ASM and instruct dynamo to load that version of libG.
                var requestedLibGVersion = DynamoRevit.PreloadAsmFromRevit();

                DynamoRevit.RevitDynamoModel = RevitDynamoModel.Start(
                    new RevitDynamoModel.RevitStartConfiguration()
                {
                    StartInTestMode       = true,
                    GeometryFactoryPath   = DynamoRevit.GetGeometryFactoryPath(testConfig.DynamoCorePath, requestedLibGVersion),
                    DynamoCorePath        = testConfig.DynamoCorePath,
                    PathResolver          = revitTestPathResolver,
                    Context               = DynamoRevit.GetRevitContext(commandData),
                    SchedulerThread       = new TestSchedulerThread(),
                    PackageManagerAddress = "https://www.dynamopackages.com",
                    ExternalCommandData   = commandData,
                    ProcessMode           = RevitTaskProcessMode
                });

                Model = DynamoRevit.RevitDynamoModel;

                this.ViewModel = DynamoRevitViewModel.Start(
                    new DynamoViewModel.StartConfiguration()
                {
                    DynamoModel = DynamoRevit.RevitDynamoModel,
                });

                var vm3D = ViewModel.Watch3DViewModels.FirstOrDefault(vm => vm is RevitWatch3DViewModel);
                if (vm3D != null)
                {
                    vm3D.Active = false;
                }

                // Because the test framework does not work in the idle thread.
                // We need to trick Dynamo into believing that it's in the idle
                // thread already.
                IdlePromise.InIdleThread = true;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
        }