public void Should_NotAcceptEula_When_UpdateIsNotSelected()
        {
            UpdateSessionFake session = new UpdateSessionFake(true);

            var update1 = new UpdateFake("update1", false);
            var update2 = new UpdateFake("update2", false);

            session.SearcherMock.FakeSearchResult = CommonMocks.GetSearchResult(ToUpdateCollection(update1, update2));
            update1.EulaAccepted = false;
            update2.EulaAccepted = false;

            using (WuApiController wu = new WuApiController(session, UpdateCollectionFactory, SystemInfo))
            {
                wu.AutoAcceptEulas   = true;
                wu.AutoSelectUpdates = false;

                wu.BeginSearchUpdates();
                WaitForStateChange(wu, WuStateId.SearchCompleted);
                wu.SelectUpdate(update2.Identity.UpdateID);
                wu.BeginDownloadUpdates();
                WaitForStateChange(wu, WuStateId.DownloadCompleted);

                var updates = wu.GetAvailableUpdates();

                Assert.IsFalse(updates.Single(u => u.ID.Equals("update1")).SelectedForInstallation);
                Assert.IsFalse(updates.Single(u => u.ID.Equals("update1")).EulaAccepted);
                Assert.IsTrue(updates.Single(u => u.ID.Equals("update2")).EulaAccepted);
                Assert.IsTrue(updates.Single(u => u.ID.Equals("update2")).SelectedForInstallation);
            }
        }
        public void Should_ThrowException_When_UnselectUnkownUpdate()
        {
            UpdateSessionFake session = new UpdateSessionFake(true);

            using (WuApiController wu = new WuApiController(session, UpdateCollectionFactory, SystemInfo))
            {
                wu.SelectUpdate("update");
            }
        }
        public void Should_ThrowException_When_SelectUnkownUpdate()
        {
            UpdateSessionFake session = new UpdateSessionFake(true);

            var update1 = new UpdateFake("update1", false);

            session.SearcherMock.FakeSearchResult = CommonMocks.GetSearchResult(ToUpdateCollection(update1));

            using (WuApiController wu = new WuApiController(session, UpdateCollectionFactory, SystemInfo))
            {
                wu.BeginSearchUpdates();
                WaitForStateChange(wu, WuStateId.SearchCompleted);
                wu.SelectUpdate("update2");
            }
        }
        public void Should_MarkUpdateAsSelected_When_SelectUpdate()
        {
            UpdateSessionFake session = new UpdateSessionFake(true);

            var update1 = new UpdateFake("update1", false);

            session.SearcherMock.FakeSearchResult = CommonMocks.GetSearchResult(ToUpdateCollection(update1));

            using (WuApiController wu = new WuApiController(session, UpdateCollectionFactory, SystemInfo))
            {
                wu.BeginSearchUpdates();
                WaitForStateChange(wu, WuStateId.SearchCompleted);
                wu.SelectUpdate("update1");
                Assert.IsTrue(wu.GetAvailableUpdates().Single().SelectedForInstallation);
            }
        }