public void AlbumArtViewModel_ProfileChangedEvent_ListensToProfileChanges() { var first = new AlbumArt() { Height = 10 }; var second = new AlbumArt() { Height = 20 }; _appSettings.SetupSequence(m => m.AlbumArt) .Returns(first) .Returns(second); var vm = new AlbumArtViewModel(_appSettings.Object, _dialog.Object, new Mock <IAudioSession>().Object, _messageBus.Object); bool raised = false; vm.PropertyChanged += (sender, e) => raised = true; Assert.Equal(vm.Height, first.Height); _appSettings.Raise(m => m.ProfileChanged += null, EventArgs.Empty); Assert.False(vm.IsEditing); Assert.True(raised); Assert.Equal(second.Height, vm.Height); }
/// <summary> /// Initializes a new instance of the <see cref="ViewModelContainer"/> class. /// </summary> /// <param name="generalSettingsViewModel">Audioband view model.</param> /// <param name="albumArtPopupViewModel">Album art popup view model.</param> /// <param name="albumArtViewModel">Album art view model.</param> /// <param name="customLabelsViewModel">Custom labels view model.</param> /// <param name="nextButtonViewModel">Next button view model.</param> /// <param name="playPauseButtonViewModel">Play pause button view model.</param> /// <param name="repeatModeButtonViewModel">Repeat mode button view model.</param> /// <param name="shuffleModeButtonViewModel">Shuffle mode button view model.</param> /// <param name="previousButtonViewModel">Previous button view model.</param> /// <param name="progressBarViewModel">Progress bar view model.</param> /// <param name="audioSourceSettingsViewModel">Audio source settings view model.</param> public ViewModelContainer( GeneralSettingsViewModel generalSettingsViewModel, AlbumArtPopupViewModel albumArtPopupViewModel, AlbumArtViewModel albumArtViewModel, CustomLabelsViewModel customLabelsViewModel, NextButtonViewModel nextButtonViewModel, PlayPauseButtonViewModel playPauseButtonViewModel, RepeatModeButtonViewModel repeatModeButtonViewModel, ShuffleModeButtonViewModel shuffleModeButtonViewModel, PreviousButtonViewModel previousButtonViewModel, ProgressBarViewModel progressBarViewModel, AudioSourceSettingsViewModel audioSourceSettingsViewModel) { GeneralSettingsViewModel = generalSettingsViewModel; AlbumArtPopupViewModel = albumArtPopupViewModel; AlbumArtViewModel = albumArtViewModel; CustomLabelsViewModel = customLabelsViewModel; NextButtonViewModel = nextButtonViewModel; PlayPauseButtonViewModel = playPauseButtonViewModel; RepeatModeButtonViewModel = repeatModeButtonViewModel; ShuffleModeButtonViewModel = shuffleModeButtonViewModel; PreviousButtonViewModel = previousButtonViewModel; ProgressBarViewModel = progressBarViewModel; AudioSourceSettingsViewModel = audioSourceSettingsViewModel; }
public void AlbumArtViewModel_UsesMessageBus() { var profile = new UserProfile { AlbumArt = new AlbumArt() }; _appSettings.SetupGet(m => m.CurrentProfile).Returns(profile); var vm = new AlbumArtViewModel(_appSettings.Object, _dialog.Object, _audioSession.Object, _messageBus.Object); _messageBus.Verify(m => m.Subscribe(It.IsAny <Action <EditEndMessage> >())); }
public void AlbumArtViewModel_ListensToAlbumArtChanges() { var profile = new UserProfile { AlbumArt = new AlbumArt() }; _appSettings.SetupGet(m => m.CurrentProfile).Returns(profile); var vm = new AlbumArtViewModel(_appSettings.Object, _dialog.Object, _audioSession.Object, _messageBus.Object); _audioSession.SetupGet(m => m.AlbumArt).Returns(new Bitmap(1, 1)); _audioSession.Raise(m => m.PropertyChanged += null, null, new PropertyChangedEventArgs(nameof(IAudioSession.AlbumArt))); _audioSession.Verify(m => m.AlbumArt, Times.Once); }
public void AlbumArtViewModel_EndEdit_WritesChangesToAppSettings() { var profile = new UserProfile { AlbumArt = new AlbumArt() }; _appSettings.SetupGet(m => m.CurrentProfile).Returns(profile); var vm = new AlbumArtViewModel(_appSettings.Object, _dialog.Object, _audioSession.Object, _messageBus.Object); int newWidth = 10; vm.Width = newWidth; vm.EndEdit(); Assert.Equal(newWidth, profile.AlbumArt.Width); }
public void AlbumArtViewModel_CancelEdit_DoesNotWriteChangesToAppSettings() { int initialWidth = 0; int newWidth = 10; var profile = new UserProfile { AlbumArt = new AlbumArt { Width = initialWidth } }; _appSettings.SetupGet(m => m.CurrentProfile).Returns(profile); var vm = new AlbumArtViewModel(_appSettings.Object, _dialog.Object, _audioSession.Object, _messageBus.Object); vm.Width = newWidth; vm.CancelEdit(); Assert.Equal(initialWidth, profile.AlbumArt.Width); }