public void Should_UpdateAutoAcceptEulasProperty_When_AsyncPropertyUpdateCompleted()
        {
            var modalmock    = MoqFactory.Create <IModalService>();
            var endpointMock = MoqFactory.Create <IWuEndpoint>(MockBehavior.Loose);
            var serviceMock  = MoqFactory.Create <IWuRemoteService>();

            serviceMock.Setup(s => s.SetAutoAcceptEulas(true)).Returns(true);
            endpointMock.Setup(e => e.Service).Returns(serviceMock.Object);

            var uovm = new UpdateOverviewViewModel(modalmock.Object, endpointMock.Object);

            string           propName    = nameof(uovm.AutoAcceptEulas);
            ManualResetEvent propChanged = new ManualResetEvent(false);

            uovm.PropertyChanged += (s, e) =>
            {
                if (e.PropertyName != propName)
                {
                    Assert.Fail($"Update of unexpected property: {e.PropertyName}.");
                }
                propChanged.Set();
            };

            uovm.AutoAcceptEulas = true;

            if (propChanged.WaitOne(500))
            {
                serviceMock.Verify(s => s.SetAutoAcceptEulas(true), Times.Once);
                Assert.IsTrue(uovm.AutoAcceptEulas);
            }
            else
            {
                Assert.Fail("Property changed event is missing.");
            }
        }
        public void Should_FirePropertyChanged_When_RefeshAsyncCompleted()
        {
            var modalmock    = MoqFactory.Create <IModalService>();
            var endpointMock = MoqFactory.Create <IWuEndpoint>(MockBehavior.Loose);
            var uovm         = new UpdateOverviewViewModel(modalmock.Object, endpointMock.Object);

            endpointMock.Setup(e => e.Updates).Returns(new[] { new UpdateDescription() });
            endpointMock.Setup(e => e.Settings).Returns(new WuSettings(0, 0, 0, false, true));
            endpointMock.Setup(e => e.FQDN).Returns("mock1");

            List <string> propertiesToFire = new List <string>()
            {
                nameof(uovm.Hostname),
                nameof(uovm.AutoAcceptEulas),
                nameof(uovm.AutoSelectUpdates),
                nameof(uovm.Updates)
            };

            uovm.PropertyChanged += (s, e) => {
                if (propertiesToFire.Contains(e.PropertyName))
                {
                    propertiesToFire.Remove(e.PropertyName);
                }
                else
                {
                    Assert.Fail($"Property changed event for unexpected property {e.PropertyName} was fired.");
                }
            };

            uovm.RefreshAsync().Wait();
            Assert.IsFalse(propertiesToFire.Any());
        }
        public void Should_DisplayMessageBox_When_RefeshAsyncFailed()
        {
            var modalmock    = MoqFactory.Create <IModalService>(MockBehavior.Loose);
            var endpointMock = MoqFactory.Create <IWuEndpoint>(MockBehavior.Loose);
            var uovm         = new UpdateOverviewViewModel(modalmock.Object, endpointMock.Object);

            endpointMock.Setup(e => e.RefreshSettingsAsync()).Throws(new Exception());
            uovm.RefreshAsync().Wait();

            modalmock.Verify(m => m.ShowMessageBox(It.IsAny <string>(), It.IsAny <string>(), MessageType.Error));
        }
        public void Should_UpdateHostnameProperty_When_RefeshAsync()
        {
            var modalmock    = MoqFactory.Create <IModalService>();
            var endpointMock = MoqFactory.Create <IWuEndpoint>(MockBehavior.Loose);
            var uovm         = new UpdateOverviewViewModel(modalmock.Object, endpointMock.Object);

            endpointMock.Setup(e => e.Updates).Returns(new[] { new UpdateDescription() });
            endpointMock.Setup(e => e.Settings).Returns(new WuSettings(0, 0, 0, false, true));
            endpointMock.Setup(e => e.FQDN).Returns("mock1");
            Assert.IsNull(uovm.Hostname);
            uovm.RefreshAsync().Wait();
            Assert.AreEqual("mock1", uovm.Hostname);
        }
        public void Should_UpdateSettingsProperties_When_RefeshAsync()
        {
            var modalmock    = MoqFactory.Create <IModalService>();
            var endpointMock = MoqFactory.Create <IWuEndpoint>(MockBehavior.Loose);
            var uovm         = new UpdateOverviewViewModel(modalmock.Object, endpointMock.Object);

            endpointMock.Setup(e => e.Updates).Returns(new[] { new UpdateDescription() });
            endpointMock.Setup(e => e.Settings).Returns(new WuSettings(0, 0, 0, false, true));
            uovm.RefreshAsync().Wait();
            Assert.IsFalse(uovm.AutoAcceptEulas);
            Assert.IsTrue(uovm.AutoSelectUpdates);

            endpointMock.Setup(e => e.Settings).Returns(new WuSettings(0, 0, 0, true, false));
            uovm.RefreshAsync().Wait();
            Assert.IsTrue(uovm.AutoAcceptEulas);
            Assert.IsFalse(uovm.AutoSelectUpdates);
        }
Beispiel #6
0
        internal UpdateOverviewWindow(IWuEndpoint endpoint)
        {
            if (endpoint == null)
            {
                throw new ArgumentNullException(nameof(endpoint));
            }

            _endpoint = new WeakReference <IWuEndpoint>(endpoint);

            InitializeComponent();

            Model = new UpdateOverviewViewModel(ModalService, endpoint);

            HostNameLabel.Content = endpoint.FQDN;
            this.Title            = $"{endpoint.FQDN}: {this.Title}";
            Refresh();
        }
        public void Should_UpdateAvailableUpdatesProperty_When_RefeshAsync()
        {
            var modalmock    = MoqFactory.Create <IModalService>();
            var endpointMock = MoqFactory.Create <IWuEndpoint>(MockBehavior.Loose);

            endpointMock.Setup(e => e.Updates).Returns(new[] { new UpdateDescription()
                                                               {
                                                                   Title = "update1", ID = "update1"
                                                               }, new UpdateDescription()
                                                               {
                                                                   Title = "update2", ID = "update2"
                                                               } });
            endpointMock.Setup(e => e.Settings).Returns(new WuSettings(0, 0, 0, false, false));

            var uovm = new UpdateOverviewViewModel(modalmock.Object, endpointMock.Object);

            Assert.IsNull(uovm.Updates);

            uovm.RefreshAsync().Wait();

            Assert.AreEqual(2, uovm.Updates.Count());
            Assert.IsNotNull(uovm.Updates.Single(u => u.ID.Equals("update1")));
            Assert.IsNotNull(uovm.Updates.Single(u => u.ID.Equals("update2")));
        }