public void ConfigurationViewModel_CheckIfActionIsAllowed()
        {
            var viewModel = new StartLiveLinkWindow.BuildConfigurationViewModel(CreateBuildConfiguration("Config", configuration =>
            {
                configuration.SetComponent(new GeneralSettings());
                configuration.SetComponent(new SceneList {
                    BuildCurrentScene = true
                });
                configuration.SetComponent(new MockClassicBuildProfile());
                configuration.SetComponent(new OutputBuildDirectory {
                    OutputDirectory = "TestConfigurationBuilds"
                });
                configuration.SetComponent(new ClassicScriptingSettings());
            }));

            Assert.That(viewModel.IsActionAllowed(StartLiveLinkWindow.StartMode.Build, out _), Is.True);
            Assert.That(viewModel.IsActionAllowed(StartLiveLinkWindow.StartMode.BuildAndRun, out _), Is.True);
            Assert.That(viewModel.IsActionAllowed(StartLiveLinkWindow.StartMode.RunLatestBuild, out var reason), Is.False);
            Assert.That(reason, Is.EqualTo("No previous build has been found for this configuration."));

            viewModel = new StartLiveLinkWindow.BuildConfigurationViewModel(CreateBuildConfiguration("Config", configuration =>
            {
                configuration.SetComponent(new GeneralSettings());
                configuration.SetComponent(new SceneList {
                    BuildCurrentScene = true
                });
            }));

            Assert.That(viewModel.IsActionAllowed(StartLiveLinkWindow.StartMode.Build, out _), Is.False);
            Assert.That(viewModel.IsActionAllowed(StartLiveLinkWindow.StartMode.BuildAndRun, out _), Is.False);
            Assert.That(viewModel.IsActionAllowed(StartLiveLinkWindow.StartMode.RunLatestBuild, out _), Is.False);
        }
        public void ConfigurationViewModel_CheckIfActionIsAllowed()
        {
            var pipeline  = BuildPipeline.LoadAsset(StartLiveLinkWindow.kDefaultLiveLinkBuildPipelineAssetPath);
            var viewModel = new StartLiveLinkWindow.BuildConfigurationViewModel(CreateBuildConfiguration("Config", configuration =>
            {
                configuration.SetComponent(new GeneralSettings());
                configuration.SetComponent(new SceneList {
                    BuildCurrentScene = true
                });
                configuration.SetComponent(new ClassicBuildProfile
                {
#if UNITY_2020_1_OR_NEWER
                    Pipeline = new LazyLoadReference <BuildPipeline> {
                        asset = pipeline
                    },
#else
                    Pipeline = pipeline,
#endif
                    Target = BuildTarget.Android
                });
                configuration.SetComponent(new OutputBuildDirectory {
                    OutputDirectory = "TestConfigurationBuilds"
                });
                configuration.SetComponent(new ClassicScriptingSettings());
            }));

            Assert.That(viewModel.IsActionAllowed(StartLiveLinkWindow.StartMode.Build, out _), Is.True);
            Assert.That(viewModel.IsActionAllowed(StartLiveLinkWindow.StartMode.BuildAndRun, out _), Is.True);
            Assert.That(viewModel.IsActionAllowed(StartLiveLinkWindow.StartMode.RunLatestBuild, out var reason), Is.False);
            Assert.That(reason, Is.EqualTo("No previous build has been found for this configuration."));

            viewModel = new StartLiveLinkWindow.BuildConfigurationViewModel(CreateBuildConfiguration("Config", configuration =>
            {
                configuration.SetComponent(new GeneralSettings());
                configuration.SetComponent(new SceneList {
                    BuildCurrentScene = true
                });
            }));

            Assert.That(viewModel.IsActionAllowed(StartLiveLinkWindow.StartMode.Build, out _), Is.False);
            Assert.That(viewModel.IsActionAllowed(StartLiveLinkWindow.StartMode.BuildAndRun, out _), Is.False);
            Assert.That(viewModel.IsActionAllowed(StartLiveLinkWindow.StartMode.RunLatestBuild, out _), Is.False);
        }