public void Constructor_ArgumentNullException_InstalledComponentsService()
        {
            // Arrange
            var aem = new AboutExtensionModel();
            var evs = Mock.Of <IExtensionVersionService>();
            IOperatingSystemAccess osa = null;

            // Act & Assert
            Assert.Throws <ArgumentNullException>(() => new AboutViewModel(aem, evs, osa));
        }
        public void Constructor_ArgumentNullException_AboutExtensionModel()
        {
            // Arrange
            AboutExtensionModel      aem = null;
            IExtensionVersionService evs = null;
            IOperatingSystemAccess   osa = null;

            // Act & Assert
            Assert.Throws <ArgumentNullException>(() => new AboutViewModel(aem, evs, osa));
        }
        public void Constructors_ArgumentNullException_OperatingSystemAccess()
        {
            // Arrange
            IOperatingSystemAccess            osa = null;
            IFileSystemAccess                 fsa = null;
            Func <ITableInformationViewModel> t   = null;

            // Act & Assert
            Assert.Throws <ArgumentNullException>(() => new PickTablesViewModel(osa, fsa, t));
        }
        public void Constructor_ArgumentNullException_ExtensionVersionService()
        {
            // Arrange
            var aem = new AboutExtensionModel();
            IExtensionVersionService    evs = null;
            IInstalledComponentsService ics = null;
            IOperatingSystemAccess      osa = null;
            IVisualStudioAccess         vsa = null;
            IMessenger m = null;

            // Act & Assert
            Assert.Throws <ArgumentNullException>(() => new AboutViewModel(aem, evs, ics, osa, vsa, m));
        }
        public AboutViewModel(
            AboutExtensionModel aboutExtensionModel,
            IExtensionVersionService extensionVersionService,
            IOperatingSystemAccess operatingSystemAccess)
        {
            this.aboutExtensionModel     = aboutExtensionModel ?? throw new ArgumentNullException(nameof(aboutExtensionModel));
            this.extensionVersionService = extensionVersionService ?? throw new ArgumentNullException(nameof(extensionVersionService));
            this.operatingSystemAccess   = operatingSystemAccess ?? throw new ArgumentNullException(nameof(operatingSystemAccess));

            this.aboutExtensionModel.PropertyChanged += AboutExtensionModelOnPropertyChanged;

            LoadedCommand          = new RelayCommand(Loaded_Executed);
            OkCommand              = new RelayCommand(Ok_Executed);
            OpenSourcesCommand     = new RelayCommand(OpenSources_Executed);
            OpenMarketplaceCommand = new RelayCommand(OpenMarketplace_Executed);
        }