public void SubscribesToWindowActivated()
        {
            // Arrange

            var mocks   = new TestingMocks();
            var builder = new DteEventsSubscriberBuilder();

            var subscriber = builder.CreateDteEventsSubscriber();

            subscriber.SubscribeTo(mocks.Events2Mock.Object);

            var gotFocus  = Mock.Of <Window>();
            var lostFocus = Mock.Of <Window>();

            // Act

            mocks.WindowEventsMock.Raise(w =>
                                         w.WindowActivated += null,
                                         gotFocus,
                                         lostFocus);

            // Assert

            builder.WindowEventsServiceMock.Verify(w =>
                                                   w.WindowActivated(
                                                       gotFocus,
                                                       lostFocus));
        }
        public void SubscribesToProjectRenamed()
        {
            // Arrange

            var mocks   = new TestingMocks();
            var builder = new DteEventsSubscriberBuilder();

            var subscriber = builder.CreateDteEventsSubscriber();

            subscriber.SubscribeTo(mocks.Events2Mock.Object);

            var          project = Mock.Of <Project>();
            const string oldName = "OldName";

            // Act

            mocks.SolutionEventsMock.Raise(s =>
                                           s.ProjectRenamed += null,
                                           project,
                                           oldName);

            // Assert

            builder.SolutionEventsServiceMock.Verify(s =>
                                                     s.ProjectRenamed(project, oldName));
        }
        public void SubscribesToOpened()
        {
            // Arrange

            var mocks   = new TestingMocks();
            var builder = new DteEventsSubscriberBuilder();

            var subscriber = builder.CreateDteEventsSubscriber();

            subscriber.SubscribeTo(mocks.Events2Mock.Object);

            // Act

            mocks.SolutionEventsMock.Raise(s =>
                                           s.Opened += null);

            // Assert

            builder.SolutionEventsServiceMock.Verify(s =>
                                                     s.Opened());
        }
        public void SubscribesToWindowClosing()
        {
            // Arrange

            var mocks   = new TestingMocks();
            var builder = new DteEventsSubscriberBuilder();

            var subscriber = builder.CreateDteEventsSubscriber();

            subscriber.SubscribeTo(mocks.Events2Mock.Object);

            var window = Mock.Of <Window>();

            // Act

            mocks.WindowEventsMock.Raise(w =>
                                         w.WindowClosing += null,
                                         window);

            // Assert

            builder.WindowEventsServiceMock.Verify(w =>
                                                   w.WindowClosing(window));
        }
        public void SubscribesToItemRemoved()
        {
            // Arrange

            var mocks   = new TestingMocks();
            var builder = new DteEventsSubscriberBuilder();

            var subscriber = builder.CreateDteEventsSubscriber();

            subscriber.SubscribeTo(mocks.Events2Mock.Object);

            var projectItem = Mock.Of <ProjectItem>();

            // Act

            mocks.ProjectItemsEventsMock.Raise(p =>
                                               p.ItemRemoved += null,
                                               projectItem);

            // Assert

            builder.ProjectItemsEventsServiceMock.Verify(p =>
                                                         p.ItemRemoved(projectItem));
        }