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_DetectWhenNotLiveLinkCompatible()
        {
            var liveLinkPipeline     = BuildPipeline.LoadAsset(StartLiveLinkWindow.kDefaultLiveLinkBuildPipelineAssetPath);
            var liveLinkMetaPipeline = BuildPipeline.LoadAsset(StartLiveLinkWindow.kWinLiveLinkBuildPipelineAssetPath);
            var nonLiveLinkPipeline  = BuildPipeline.LoadAsset("Packages/com.unity.entities/Unity.Entities.Hybrid/Assets/Hybrid.buildpipeline");
            var liveLink             = new StartLiveLinkWindow.BuildConfigurationViewModel(CreateBuildConfiguration("LiveLink", configuration =>
            {
                configuration.SetComponent(new GeneralSettings());
                configuration.SetComponent(new SceneList {
                    BuildCurrentScene = true
                });
                configuration.SetComponent(new ClassicBuildProfile {
                    Pipeline = liveLinkPipeline, Target = BuildTarget.Android
                });
                configuration.SetComponent(new OutputBuildDirectory {
                    OutputDirectory = "Builds"
                });
                configuration.SetComponent(new ClassicScriptingSettings());
            }));
            var metaLiveLink = new StartLiveLinkWindow.BuildConfigurationViewModel(CreateBuildConfiguration("LiveLink", configuration =>
            {
                configuration.SetComponent(new GeneralSettings());
                configuration.SetComponent(new SceneList {
                    BuildCurrentScene = true
                });
                configuration.SetComponent(new ClassicBuildProfile {
                    Pipeline = liveLinkMetaPipeline, Target = BuildTarget.Android
                });
                configuration.SetComponent(new OutputBuildDirectory {
                    OutputDirectory = "Builds"
                });
                configuration.SetComponent(new ClassicScriptingSettings());
            }));
            var nonLiveLink = new StartLiveLinkWindow.BuildConfigurationViewModel(CreateBuildConfiguration("NonLiveLink", configuration =>
            {
                configuration.SetComponent(new GeneralSettings());
                configuration.SetComponent(new SceneList {
                    BuildCurrentScene = true
                });
                configuration.SetComponent(new ClassicBuildProfile {
                    Pipeline = nonLiveLinkPipeline, Target = BuildTarget.Android
                });
                configuration.SetComponent(new OutputBuildDirectory {
                    OutputDirectory = "Builds"
                });
                configuration.SetComponent(new ClassicScriptingSettings());
            }));

            Assert.That(liveLink.IsLiveLinkCompatible, Is.True);
            Assert.That(metaLiveLink.IsLiveLinkCompatible, Is.True);
            Assert.That(nonLiveLink.IsLiveLinkCompatible, Is.False);
        }
Пример #3
0
        public void ConfigurationViewModel_DetectWhenNotLiveLinkCompatible()
        {
            var liveLink = new StartLiveLinkWindow.BuildConfigurationViewModel(CreateBuildConfiguration("LiveLink", configuration =>
            {
                configuration.SetComponent(new GeneralSettings());
                configuration.SetComponent(new LiveLink());
                configuration.SetComponent(new SceneList {
                    BuildCurrentScene = true
                });
                configuration.SetComponent(new ClassicBuildProfile {
                    Platform = Platform.Windows
                });
                configuration.SetComponent(new OutputBuildDirectory {
                    OutputDirectory = "Builds"
                });
                configuration.SetComponent(new ClassicScriptingSettings());
            }));
            var nonLiveLink = new StartLiveLinkWindow.BuildConfigurationViewModel(CreateBuildConfiguration("NonLiveLink", configuration =>
            {
                configuration.SetComponent(new GeneralSettings());
                configuration.SetComponent(new SceneList {
                    BuildCurrentScene = true
                });
                configuration.SetComponent(new ClassicBuildProfile {
                    Platform = Platform.Windows
                });
                configuration.SetComponent(new OutputBuildDirectory {
                    OutputDirectory = "Builds"
                });
                configuration.SetComponent(new ClassicScriptingSettings());
            }));
            var noProfile = new StartLiveLinkWindow.BuildConfigurationViewModel(CreateBuildConfiguration("NonLiveLink", configuration =>
            {
                configuration.SetComponent(new GeneralSettings());
                configuration.SetComponent(new LiveLink());
                configuration.SetComponent(new SceneList {
                    BuildCurrentScene = true
                });
                configuration.SetComponent(new OutputBuildDirectory {
                    OutputDirectory = "Builds"
                });
                configuration.SetComponent(new ClassicScriptingSettings());
            }));

            Assert.That(liveLink.IsLiveLinkCompatible, Is.True);
            Assert.That(nonLiveLink.IsLiveLinkCompatible, Is.False);
            Assert.That(noProfile.IsLiveLinkCompatible, 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);
        }