Example #1
0
        public void PropertyChanged_NotInvokedForEqualValues()
        {
            // Arrange
            var invokes = 0;
            var aem     = new AboutExtensionModel();

            aem.PropertyChanged += (sender, args) => invokes++;

            // Act
            aem.SqlServerCompact40GacVersion                  = null;
            aem.SqlServerCompact40DbProviderInstalled         = null;
            aem.SqlServerCompact40DdexProviderInstalled       = null;
            aem.SqlServerCompact40SimpleDdexProviderInstalled = null;
            aem.SqLiteAdoNetProviderVersion        = null;
            aem.SqLiteEf6DbProviderInstalled       = null;
            aem.SqLiteDdexProviderInstalled        = null;
            aem.SqlLiteSimpleDdexProviderInstalled = null;

            // Assert
            Assert.AreEqual(0, invokes);
            Assert.IsNull(aem.SqlServerCompact40GacVersion);
            Assert.IsNull(aem.SqlServerCompact40DbProviderInstalled);
            Assert.IsNull(aem.SqlServerCompact40DdexProviderInstalled);
            Assert.IsNull(aem.SqlServerCompact40SimpleDdexProviderInstalled);
            Assert.IsNull(aem.SqLiteAdoNetProviderVersion);
            Assert.IsNull(aem.SqLiteEf6DbProviderInstalled);
            Assert.IsNull(aem.SqLiteDdexProviderInstalled);
            Assert.IsNull(aem.SqlLiteSimpleDdexProviderInstalled);
        }
Example #2
0
        public void SetMissingComponentData_SetMissingValues()
        {
            // Arrange
            var vsaMock = new Mock <IVisualStudioAccess>();

            vsaMock.Setup(m => m.IsDdexProviderInstalled(It.IsAny <Guid>())).Returns(true);
            vsaMock.Setup(m => m.IsSqLiteDbProviderInstalled()).Returns(true);
            var sqlCe40Version = new Version(30, 0, 14);
            var fsaMock        = new Mock <IFileSystemAccess>();

            fsaMock.Setup(m => m.GetInstalledSqlCe40Version()).Returns(sqlCe40Version);
            var adoNetProviderVersion = new Version(50, 10);
            var dnaMock = new Mock <IDotNetAccess>();

            dnaMock.Setup(m => m.DoesDbProviderFactoryExist(It.IsNotNull <string>())).Returns(true);
            dnaMock.Setup(m => m.GetAssemblyVersion(It.IsNotNull <string>())).Returns(adoNetProviderVersion);
            IInstalledComponentsService ics = new InstalledComponentsService(vsaMock.Object, fsaMock.Object, dnaMock.Object);
            var aem = new AboutExtensionModel();

            // Act
            ics.SetMissingComponentData(aem);

            // Assert
            Assert.AreSame(sqlCe40Version, aem.SqlServerCompact40GacVersion);
            Assert.IsTrue(aem.SqlServerCompact40DbProviderInstalled);
            Assert.IsTrue(aem.SqlServerCompact40DdexProviderInstalled);
            Assert.IsTrue(aem.SqlServerCompact40SimpleDdexProviderInstalled);
            Assert.AreSame(adoNetProviderVersion, aem.SqLiteAdoNetProviderVersion);
            Assert.IsTrue(aem.SqLiteEf6DbProviderInstalled);
            Assert.IsTrue(aem.SqLiteDdexProviderInstalled);
            Assert.IsTrue(aem.SqlLiteSimpleDdexProviderInstalled);
        }
Example #3
0
        public void PropertyChanged_InvokedForDifferentValues()
        {
            // Arrange
            var invokes = new List <string>();
            var aem     = new AboutExtensionModel();

            aem.PropertyChanged += (sender, args) => invokes.Add(args.PropertyName);
            var v1 = new Version(5, 4, 3, 2);
            var v2 = new Version(6, 7, 10, 0);

            // Act
            aem.SqLiteAdoNetProviderVersion        = v2;
            aem.SqLiteEf6DbProviderInstalled       = true;
            aem.SqLiteDdexProviderInstalled        = true;
            aem.SqlLiteSimpleDdexProviderInstalled = true;

            // Assert
            Assert.AreEqual(4, invokes.Count);
            Assert.AreSame(v2, aem.SqLiteAdoNetProviderVersion);
            Assert.IsTrue(aem.SqLiteEf6DbProviderInstalled);
            Assert.IsTrue(aem.SqLiteDdexProviderInstalled);
            Assert.IsTrue(aem.SqlLiteSimpleDdexProviderInstalled);
            Assert.AreEqual(nameof(AboutExtensionModel.SqLiteAdoNetProviderVersion), invokes[0]);
            Assert.AreEqual(nameof(AboutExtensionModel.SqLiteEf6DbProviderInstalled), invokes[1]);
            Assert.AreEqual(nameof(AboutExtensionModel.SqLiteDdexProviderInstalled), invokes[2]);
            Assert.AreEqual(nameof(AboutExtensionModel.SqlLiteSimpleDdexProviderInstalled), invokes[3]);
        }
        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);
        }
        public void OpenSourcesCommand_Executed_NavigateInVisualStudio()
        {
            // Arrange
            var aem       = new AboutExtensionModel();
            var evs       = Mock.Of <IExtensionVersionService>();
            var ics       = Mock.Of <IInstalledComponentsService>();
            var osa       = Mock.Of <IOperatingSystemAccess>();
            var vsaMock   = new Mock <IVisualStudioAccess>();
            var messenger = Mock.Of <IMessenger>();
            var avm       = new AboutViewModel(aem, evs, ics, osa, vsaMock.Object, messenger);

            // Act
            avm.OpenSourcesCommand.Execute(null);

            // Assert
            vsaMock.Verify(m => m.NavigateToUrl(aem.SourceCodeUrl), Times.Once);
        }
        public void Constructor_CommandsInitialized()
        {
            // Arrange
            var aem = new AboutExtensionModel();
            var evs = Mock.Of <IExtensionVersionService>();
            var ics = Mock.Of <IInstalledComponentsService>();
            var osa = Mock.Of <IOperatingSystemAccess>();
            var vsa = Mock.Of <IVisualStudioAccess>();
            var m   = Mock.Of <IMessenger>();

            // Act
            var avm = new AboutViewModel(aem, evs, ics, osa, vsa, m);

            // Assert
            Assert.IsNotNull(avm.LoadedCommand);
            Assert.IsNotNull(avm.OkCommand);
            Assert.IsNotNull(avm.OpenSourcesCommand);
            Assert.IsNotNull(avm.OpenMarketplaceCommand);
            Assert.IsNotNull(avm.CopyToClipboardCommand);
        }