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); }
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); }
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); }