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

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

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

            update1.EulaAccepted = false;
            update1.Identity     = CommonMocks.GetUpdateIdentity("update1Id");
            update2.EulaAccepted = false;
            update2.Identity     = CommonMocks.GetUpdateIdentity("update2Id");

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

                wu.BeginSearchUpdates();
                WaitForStateChange(wu, WuStateId.SearchCompleted);

                var updates = wu.GetAvailableUpdates();

                Assert.IsNotNull(updates.Single(u => u.ID.Equals("update1Id")));
                Assert.IsNotNull(updates.Single(u => u.ID.Equals("update2Id")));

                wu.AcceptEula(updates.Single(u => u.ID.Equals("update1Id")));
                Assert.IsTrue(wu.GetAvailableUpdates().Single(u => u.ID.Equals("update1Id")).EulaAccepted);
                wu.AcceptEula(updates.Single(u => u.ID.Equals("update2Id")).ID);
                Assert.IsTrue(wu.GetAvailableUpdates().Single(u => u.ID.Equals("update2Id")).EulaAccepted);
            }
        }
        public void Should_NotAllowNull_When_RequestForAcceptEula()
        {
            UpdateSessionFake session = new UpdateSessionFake(true);

            using (WuApiController wu = new WuApiController(session, UpdateCollectionFactory, SystemInfo))
            {
                try
                {
                    UpdateDescription ud = null;
                    wu.AcceptEula(ud);
                    Assert.Fail("exception expected");
                }
                catch (ArgumentNullException) { }
                try
                {
                    string id = null;
                    wu.AcceptEula(id);
                    Assert.Fail("exception expected");
                }
                catch (ArgumentNullException) { }
                try
                {
                    string id = "";
                    wu.AcceptEula(id);
                    Assert.Fail("exception expected");
                }
                catch (ArgumentNullException) { }
                try
                {
                    string id = " ";
                    wu.AcceptEula(id);
                    Assert.Fail("exception expected");
                }
                catch (ArgumentNullException) { }
            }
        }
        public void Should_ThrowException_When_AcceptEulaOfUnkownUpdate()
        {
            UpdateSessionFake session = new UpdateSessionFake(true);

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

            session.SearcherMock.FakeSearchResult = CommonMocks.GetSearchResult(ToUpdateCollection(update1));
            update1.EulaAccepted = true;
            update1.Identity     = CommonMocks.GetUpdateIdentity("update1Id");

            using (WuApiController wu = new WuApiController(session, UpdateCollectionFactory, SystemInfo))
            {
                wu.AutoAcceptEulas = false;
                wu.BeginSearchUpdates();
                WaitForStateChange(wu, WuStateId.SearchCompleted);
                wu.AcceptEula("update2Id");
            }
        }