public async Task Test_LoadAsync() { // Arrange. var component = new Mock <IExternalComponent>(); component.Setup(c => c.GetCurrentVersionAsync(It.IsAny <CancellationToken>())) .Returns(Task.FromResult("Version")); component.Setup(c => c.HasUpdateAsync(It.IsAny <CancellationToken>())) .Returns(Task.FromResult(Option <string> .Some("NewerVersion"))); securityService.Setup(ss => ss.HasAdminPriviledges()).Returns(true); var viewModel = new ComponentViewModel(component.Object, securityService.Object); // Act. await viewModel.LoadAsync(); // Assert. Assert.Equal("Version", viewModel.CurrentVersion); Assert.True(viewModel.HasAvailableUpdate.HasValue); Assert.True(viewModel.HasAvailableUpdate.Value); Assert.True(viewModel.CanUpdate); Assert.Equal("NewerVersion", viewModel.LatestVersion); }
public async Task Test_CanUpdate(bool expected, string latestVersion, bool hasPermission) { // Arrange. var component = new Mock <IExternalComponent>(); component.Setup(c => c.GetCurrentVersionAsync(It.IsAny <CancellationToken>())) .Returns(Task.FromResult("Version")); component.Setup(c => c.HasUpdateAsync(It.IsAny <CancellationToken>())) .Returns(Task.FromResult(Option <string> .From(latestVersion))); securityService.Setup(ss => ss.HasAdminPriviledges()).Returns(hasPermission); var viewModel = new ComponentViewModel(component.Object, securityService.Object); await viewModel.LoadAsync(); // Act. bool actual = viewModel.CanUpdate; // Assert. Assert.Equal(expected, actual); }