Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        internal async Task GetSpotifyStatus_WithNoSpotifyProcess_ReturnsNull()
        {
            var spotifyProcess = new SpotifyProcess(_mainAudioSessionMock.Object, _processManagerMock.Object);

            var spotifyStatus = await spotifyProcess.GetSpotifyStatus();

            Assert.Null(spotifyStatus);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }