public void VerifyThatOptionEventAreProcessed()
        {
            var vm = new ProductTreeRibbonViewModel();

            CDPMessageBus.Current.SendMessage(new SessionEvent(this.session.Object, SessionStatus.Open));

            CDPMessageBus.Current.SendObjectChangeEvent(this.iteration, EventKind.Added);
            Assert.AreEqual(1, vm.OpenIterations.Count);
            Assert.AreEqual(1, vm.OpenIterations.First().SelectedOptions.Count);

            var option2 = new Option(Guid.NewGuid(), this.assembler.Cache, this.uri);

            option.Container = this.iteration;
            this.iteration.Option.Add(option2);

            CDPMessageBus.Current.SendObjectChangeEvent(option2, EventKind.Added);
            Assert.AreEqual(1, vm.OpenIterations.Count);
            Assert.AreEqual(2, vm.OpenIterations.First().SelectedOptions.Count);

            CDPMessageBus.Current.SendObjectChangeEvent(this.option, EventKind.Removed);
            Assert.AreEqual(1, vm.OpenIterations.Count);
            Assert.AreEqual(1, vm.OpenIterations.First().SelectedOptions.Count);

            CDPMessageBus.Current.SendObjectChangeEvent(option2, EventKind.Removed);
            Assert.AreEqual(0, vm.OpenIterations.Count);
        }
        public void VerifyThatIterationRemovedEventAreProcessed()
        {
            var vm = new ProductTreeRibbonViewModel();

            CDPMessageBus.Current.SendMessage(new SessionEvent(this.session.Object, SessionStatus.Open));
            CDPMessageBus.Current.SendObjectChangeEvent(this.option, EventKind.Added);

            CDPMessageBus.Current.SendObjectChangeEvent(this.iteration, EventKind.Removed);
            Assert.AreEqual(0, vm.OpenIterations.Count);
        }
        public void VerifyThatSessionEventAreCaught()
        {
            var vm = new ProductTreeRibbonViewModel();

            CDPMessageBus.Current.SendMessage(new SessionEvent(this.session.Object, SessionStatus.Open));
            Assert.AreEqual(1, vm.Sessions.Count);

            CDPMessageBus.Current.SendMessage(new SessionEvent(this.session.Object, SessionStatus.Closed));
            Assert.AreEqual(0, vm.Sessions.Count);
        }
        public void Verify_That_InstantiatePanelViewModel_Returns_Expected_ViewModel()
        {
            var viewmodel = ProductTreeRibbonViewModel.InstantiatePanelViewModel(
                this.option,
                this.session.Object,
                this.thingDialogNavigationService.Object,
                this.panelNavigationService.Object,
                this.dialogNavigationService.Object,
                this.pluginSettingsService.Object);

            Assert.That(viewmodel, Is.InstanceOf <ProductTreeViewModel>());
        }
        public void VerifyThatThereIsAMenuItemForEachSessionAndOptionCombination()
        {
            var vm = new ProductTreeRibbonViewModel();

            CDPMessageBus.Current.SendMessage(new SessionEvent(this.session.Object, SessionStatus.Open));
            CDPMessageBus.Current.SendObjectChangeEvent(this.iteration, EventKind.Added);
            var anotherPerson = new Person(Guid.NewGuid(), this.assembler2.Cache, this.uri2);

            this.session2.Setup(x => x.ActivePerson).Returns(anotherPerson);
            CDPMessageBus.Current.SendMessage(new SessionEvent(this.session2.Object, SessionStatus.Open));
            CDPMessageBus.Current.SendObjectChangeEvent(this.iteration2, EventKind.Added);

            Assert.AreEqual(2, vm.OpenIterations.Count);
            Assert.AreEqual(1, vm.OpenIterations.First().SelectedOptions.Count);
            Assert.AreEqual(1, vm.OpenIterations.Last().SelectedOptions.Count);
        }