internal async Task GetSpotifyStatus_WithIdleSpotifyProcess_ReturnsNotPlaying() { const string windowTitle = Constants.SPOTIFY; var spotify = new Process { Id = 4, MainWindowTitle = windowTitle, ProcessName = Constants.SPOTIFY }; IProcess[] processes = { spotify }; _processManagerMock.Setup(x => x.GetProcesses()).Returns(processes); _processManagerMock.Setup(x => x.GetProcessById(It.IsAny <int>())).Returns(spotify); var spotifyProcess = new SpotifyProcess(_mainAudioSessionMock.Object, _processManagerMock.Object); var spotifyStatus = await spotifyProcess.GetSpotifyStatus(); Assert.IsType <SpotifyStatus>(spotifyStatus); var track = Assert.IsType <Track>(spotifyStatus.CurrentTrack); Assert.Equal(windowTitle, track.Artist); Assert.Equal(windowTitle, track.ToString()); Assert.Empty(track.ToTitleString()); Assert.False(track.Playing); Assert.False(track.IsNormalPlaying); Assert.False(track.Ad); }
internal async Task GetSpotifyStatus_WithSpotifyProcessPlayingNormalType_ReturnsTrackPlaying(string windowTitle) { var spotify = new Process { Id = 4, MainWindowTitle = windowTitle, ProcessName = Constants.SPOTIFY }; IProcess[] processes = { spotify }; _mainAudioSessionMock.Setup(x => x.IsSpotifyCurrentlyPlaying()).ReturnsAsync(true); _processManagerMock.Setup(x => x.GetProcesses()).Returns(processes); _processManagerMock.Setup(x => x.GetProcessById(It.IsAny <int>())).Returns(spotify); var spotifyProcess = new SpotifyProcess(_mainAudioSessionMock.Object, _processManagerMock.Object); var spotifyStatus = await spotifyProcess.GetSpotifyStatus(); Assert.IsType <SpotifyStatus>(spotifyStatus); var track = Assert.IsType <Track>(spotifyStatus.CurrentTrack); Assert.Equal(windowTitle, track.ToString()); Assert.NotEqual(windowTitle, track.ToTitleString()); Assert.True(track.Playing); Assert.False(track.Ad); Assert.True(track.IsNormalPlaying); Assert.False(track.IsUnknownPlaying); }
internal async Task GetSpotifyStatus_WithNoSpotifyProcess_ReturnsNull() { var spotifyProcess = new SpotifyProcess(_mainAudioSessionMock.Object, _processManagerMock.Object); var spotifyStatus = await spotifyProcess.GetSpotifyStatus(); Assert.Null(spotifyStatus); }
internal async Task GetSpotifyStatus_WithWrongSpotifyProcess_ReturnsNull() { var spotify = new Process { Id = 4, MainWindowTitle = " ", ProcessName = Constants.SPOTIFY }; var processes = new[] { spotify }; _processManagerMock.Setup(x => x.GetProcesses()).Returns(processes); _processManagerMock.Setup(x => x.GetProcessById(It.IsAny <int>())).Returns(spotify); var spotifyProcess = new SpotifyProcess(_mainAudioSessionMock.Object, _processManagerMock.Object); var spotifyStatus = await spotifyProcess.GetSpotifyStatus(); Assert.Null(spotifyStatus); }
internal async Task GetSpotifyStatus_WithSpotifyProcessNoSoundOnAds_ReturnsAdPlaying() { var windowTitle = Constants.ADVERTISEMENT; var spotify = new Process { Id = 4, MainWindowTitle = windowTitle, ProcessName = Constants.SPOTIFY }; var processes = new[] { spotify }; _processManagerMock.Setup(x => x.GetProcesses()).Returns(processes); _processManagerMock.Setup(x => x.GetProcessById(It.IsAny <int>())).Returns(spotify); var spotifyProcess = new SpotifyProcess(_mainAudioSessionMock.Object, _processManagerMock.Object); var spotifyStatus = await spotifyProcess.GetSpotifyStatus(); Assert.IsType <SpotifyStatus>(spotifyStatus); var track = Assert.IsType <Track>(spotifyStatus.CurrentTrack); Assert.Equal(windowTitle, track.ToString()); Assert.True(track.Playing); Assert.True(track.Ad); Assert.False(track.IsUnknownPlaying); }