/// <summary>
 /// Creates a GKE step complete with behavior and visuals.
 /// </summary>
 public GkeStepContent(
     IPublishDialog publishDialog,
     IGkeDataSource dataSource        = null,
     IApiManager apiManager           = null,
     Func <Project> pickProjectPrompt = null) : this()
 {
     ViewModel = new GkeStepViewModel(dataSource, apiManager, pickProjectPrompt, publishDialog);
 }
        public void TestCreateGkeDataSource_BuildsFromCurrentAccount()
        {
            CredentialStoreMock.SetupGet(cs => cs.CurrentGoogleCredential).Returns(_userAccount.GetGoogleCredential());

            IGkeDataSource result = _objectUnderTest.CreateGkeDataSource();

            Assert.That.DataSource(result).IsBuiltFrom(_userAccount);
        }
        /// <summary>
        /// Creates a GKE step complete with behavior and visuals.
        /// </summary>
        internal static GkeStepViewModel CreateStep(IGkeDataSource dataSource = null, IApiManager apiManager = null)
        {
            var content   = new GkeStepContent();
            var viewModel = new GkeStepViewModel(content, dataSource, apiManager);

            content.DataContext = viewModel;

            return(viewModel);
        }
        private GkeStepViewModel(GkeStepContent content, IGkeDataSource dataSource, IApiManager apiManager)
            : base(apiManager)
        {
            _content    = content;
            _dataSource = dataSource;

            CreateClusterCommand       = new ProtectedCommand(OnCreateClusterCommand, canExecuteCommand: false);
            RefreshClustersListCommand = new ProtectedCommand(OnRefreshClustersListCommand, canExecuteCommand: false);
            EnableApiCommand           = new ProtectedAsyncCommand(OnEnableApiCommandAsync);
        }