public void CloseSessionCommand_OneSession_SessionShouldBeDeleted()
        {
            var receiverMock = new Mock<IReceiver>();
            var analysisMock = new Mock<IAnalysis>();

            var mainViewModel = new MainViewModel();
            var closeSessionErrorMessageWasShown = false;

            SetField(mainViewModel, new Action(() => { closeSessionErrorMessageWasShown = true; }),
                     "_showCloseSessionErrorMessage");

            var informationEngine = GetField(mainViewModel, "_informationEngine") as InformationEngine;

            // ReSharper disable PossibleNullReferenceException
            informationEngine.AddSession(receiverMock.Object, analysisMock.Object);
            // ReSharper restore PossibleNullReferenceException

            mainViewModel.CloseSessionCommand.Execute(mainViewModel.SessionViewModels.First());

            mainViewModel.SessionViewModels.Count.Should().Be(0);
            closeSessionErrorMessageWasShown.Should().BeFalse();
        }
        public void Title_ReturnsCorrectTitle()
        {
            var mainViewModel = new MainViewModel();

            mainViewModel.Title.Should().Be("GraphalyzerPro");
        }
        public void InitializeReceiverCommand_EveryThingOk_NothingShouldBeHappen()
        {
            (new TestScheduler()).With(scheduler =>
                {
                    var mock = new Mock<IReceiver>();
                    mock.Setup(m => m.Initialize(It.IsAny<IInformationEngine>(), It.IsAny<Guid>()));

                    var mainViewModel = new MainViewModel();
                    var initializationErrorMessageWasShown = false;
                    SetField(mainViewModel, new Action(() => { initializationErrorMessageWasShown = true; }),
                             "_showInitializationErrorMessage");

                    mainViewModel.InitializeReceiverCommand.Execute(new Tuple<Guid, IReceiver>(Guid.NewGuid(),
                                                                                               mock.Object));

                    scheduler.AdvanceToMs(100);

                    initializationErrorMessageWasShown.Should().BeFalse();
                });
        }
        public void InitializeReceiverCommand_ExceptionThrownWithinInitialization_ExceptionShouldBeCatchedAndTheUserNotified()
        {
            (new TestScheduler()).With(scheduler =>
                {
                    var mock = new Mock<IReceiver>();
                    mock.Setup(m => m.Initialize(It.IsAny<IInformationEngine>(), It.IsAny<Guid>())).Throws<Exception>();

                    var mainViewModel = new MainViewModel();
                    var initializationErrorMessageWasShown = false;
                    SetField(mainViewModel, new Action(() => { initializationErrorMessageWasShown = true; }),
                             "_showInitializationErrorMessage");

                    mainViewModel.InitializeReceiverCommand.Execute(mock.Object);

                    scheduler.AdvanceToMs(100);

                    initializationErrorMessageWasShown.Should().BeTrue();
                }
                );
        }
        public void Constructor_InitialisesSessionViewModlesWithEmptyCollection()
        {
            var mainViewModel = new MainViewModel();

            mainViewModel.SessionViewModels.Any().Should().BeFalse();
        }