private UpdateAvailableViewModel BuildViewModel(UpdateAvailableInteraction interaction)
        {
            var viewModel = new UpdateAvailableViewModel(_updateManagerTranslation, _processStarter, new ApplicationNameProvider("PDFCreator"));

            new InteractionHelper <UpdateAvailableInteraction>(viewModel, interaction);
            return(viewModel);
        }
        public void NothingIsExecuted_SetsResponseToLater()
        {
            var interaction = new UpdateAvailableInteraction("", "");
            var viewModel   = BuildViewModel(interaction);

            Assert.AreEqual(UpdateAvailableResponse.Later, interaction.Response);
            Assert.AreSame(interaction, viewModel.Interaction);
        }
        public void TestTranslations()
        {
            var updateUrl   = "http://update.local";
            var interaction = new UpdateAvailableInteraction(updateUrl, "1.0");
            var viewModel   = BuildViewModel(interaction);

            Assert.AreEqual(string.Format(_updateManagerTranslation.GetNewUpdateMessage("1.0"), interaction.AvailableVersion), viewModel.Text);
            Assert.AreEqual(_updateManagerTranslation.GetFormattedTitle(new ApplicationNameProvider("PDFCreator").ApplicationName), viewModel.Title);
        }
        public void InstallUpdateCommand_SetsResponseToSkipVersion()
        {
            var interaction = new UpdateAvailableInteraction("", "");
            var viewModel   = BuildViewModel(interaction);

            viewModel.InstallUpdateCommand.Execute(null);

            Assert.AreEqual(UpdateAvailableResponse.Install, interaction.Response);
        }
        public void AskLaterCommand_SetsResponseToLater()
        {
            var interaction = new UpdateAvailableInteraction("", "");
            var viewModel   = BuildViewModel(interaction);

            viewModel.AskLaterCommand.Execute(null);

            Assert.AreEqual(UpdateAvailableResponse.Later, interaction.Response);
        }
示例#6
0
        public void TestTranslations()
        {
            var updateUrl   = "http://update.local";
            var interaction = new UpdateAvailableInteraction(updateUrl, "1.0");
            var viewModel   = BuildViewModel(interaction);

            Assert.AreEqual("UpdateManager\\NewUpdateMessage", viewModel.Text);
            Assert.AreEqual("UpdateManager\\ApplicationUpdate", viewModel.Title);
        }
        public void WhatsNewCommand_ShowsWhatsNew()
        {
            var updateUrl   = "http://update.local";
            var interaction = new UpdateAvailableInteraction(updateUrl, "");
            var viewModel   = BuildViewModel(interaction);

            viewModel.WhatsNewCommand.Execute(null);

            _processStarter.Received(1).Start(updateUrl);
        }
        public void SetInteraction_RaisesPropertyChanged()
        {
            var updateUrl         = "http://update.local";
            var interaction       = new UpdateAvailableInteraction(updateUrl, "1.0");
            var viewModel         = BuildViewModel(interaction);
            var changedProperties = new List <string>();

            viewModel.PropertyChanged += (sender, args) => changedProperties.Add(args.PropertyName);

            viewModel.SetInteraction(interaction);

            var expectedProperties = new[] { nameof(viewModel.Interaction), nameof(viewModel.Text), nameof(viewModel.Title) };

            CollectionAssert.AreEquivalent(expectedProperties, changedProperties);
        }
示例#9
0
        private void LaunchNewUpdateForm(UpdateEventArgs eventArgs)
        {
            var interaction = new UpdateAvailableInteraction(Urls.PDFCreatorWhatsNewUrl, OnlineVersion.Version.ToString());

            _interactionInvoker.Invoke(interaction);

            switch (interaction.Response)
            {
            case UpdateAvailableResponse.Install:
                _updateLauncher.LaunchUpdate(OnlineVersion);
                break;

            case UpdateAvailableResponse.Skip:
                eventArgs.SkipVersion = true;
                break;
            }
        }