/// <summary>
        /// Initialization of the package; this method is called right after the package is sited, so this is the place
        /// where you can put all the initialization code that rely on services provided by VisualStudio.
        /// </summary>
        protected override void Initialize()
        {
            ThreadHelper.ThrowIfNotOnUIThread();
            VsHelper.Initialize(this);
            ScriptGenAssemblyCache.TryClearCache();

            _buildEvents = VsHelper.Current.Dte.Events.BuildEvents;
            _buildEvents.OnBuildBegin += BuildEvents_OnBuildBegin;
            _buildEvents.OnBuildDone  += BuildEvents_OnBuildDone;
            AddConfigCommand.Initialize(this);
            GenerateScriptsCommand.Initialize(this);
            InstallNugetPackageCommand.Initialize(this);
            ClearCacheCommand.Initialize(this);
            base.Initialize();
        }
        public void ShouldAddConfigurationVariables(string arguments,
                                                    [Frozen] Mock <IApplicationConfiguration> applicationConfiguration,
                                                    [Frozen] Mock <IAppHarborClient> client,
                                                    AddConfigCommand command, string applicationId)
        {
            applicationConfiguration.Setup(x => x.GetApplicationId()).Returns(applicationId);
            var configPairs = arguments.Split();

            command.Execute(configPairs);

            foreach (var configPair in configPairs)
            {
                var splitted = configPair.Split('=');
                client.Verify(x => x.CreateConfigurationVariable(applicationId, splitted[0], splitted[1]));
            }
        }
        protected async override System.Threading.Tasks.Task InitializeAsync(CancellationToken cancellationToken, IProgress <ServiceProgressData> progress)
        {
            ScriptGenAssemblyCache.TryClearCache();

            await JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken);

            VsHelper.Initialize(this);
            _buildEvents = VsHelper.Current.Dte.Events.BuildEvents;
            _buildEvents.OnBuildBegin += BuildEvents_OnBuildBegin;
            _buildEvents.OnBuildDone  += BuildEvents_OnBuildDone;
            AddConfigCommand.Initialize(this);
            GenerateScriptsCommand.Initialize(this);
            InstallNugetPackageCommand.Initialize(this);
            DebugInfoCommand.Initialize(this);
            await base.InitializeAsync(cancellationToken, progress);

            await UpgradeConfigCommand.InitializeAsync(this);
        }
 public void ShouldThrowIfNoArguments(AddConfigCommand command)
 {
     Assert.Throws <CommandException>(() => command.Execute(new string[0]));
 }