internal void ElapsedEventTick_ReturnsInitialSpotifyTrack()
        {
            var spotifyPaused = new Track();

            var spotifyStatusMock = new Moq.Mock <ISpotifyStatus>();

            spotifyStatusMock.Setup(x => x.CurrentTrack).Returns(spotifyPaused);
            spotifyStatusMock.Setup(x => x.GetTrack()).ReturnsAsync(spotifyPaused);

            var spotifyProcessMock = new Moq.Mock <ISpotifyProcess>();

            spotifyProcessMock.Setup(x => x.GetSpotifyStatus()).ReturnsAsync(spotifyStatusMock.Object);

            var spotifyHandler = new SpotifyHandler(spotifyProcessMock.Object)
            {
                ListenForEvents = true
            };

            // initial track
            Assert.Null(spotifyHandler.Track);

            spotifyHandler.ElapsedEventTick(new object { }, new EventArgs() as System.Timers.ElapsedEventArgs);

            // updated track
            Assert.Equal(spotifyPaused, spotifyHandler.Track);
            spotifyProcessMock.Verify(n => n.GetSpotifyStatus(), Times.Once);
        }
Example #2
0
        internal async Task TriggerEvents_ReturnsInitialSpotifyTrack()
        {
            var spotifyPaused = new Track();

            var spotifyStatusMock = new Moq.Mock <ISpotifyStatus>();

            spotifyStatusMock.Setup(x => x.CurrentTrack).Returns(spotifyPaused);
            spotifyStatusMock.Setup(x => x.GetTrack()).ReturnsAsync(spotifyPaused);

            var spotifyProcessMock = new Moq.Mock <ISpotifyProcess>();

            spotifyProcessMock.Setup(x => x.GetSpotifyStatus()).ReturnsAsync(spotifyStatusMock.Object);

            var spotifyHandler = new SpotifyHandler(spotifyProcessMock.Object)
            {
                ListenForEvents = true
            };

            // initial track
            Assert.Equal(new Track(), spotifyHandler.Track);

            await spotifyHandler.TriggerEvents();;

            // updated track
            Assert.Equal(spotifyPaused, spotifyHandler.Track);
            spotifyProcessMock.Verify(n => n.GetSpotifyStatus(), Times.Once);

            spotifyHandler.Dispose();
        }
        internal void ElapsedEventTick_ReturnsNewestTrack()
        {
            var oldTrack = new Track()
            {
                Artist          = "Artist",
                Title           = "Title",
                TitleExtended   = "Remastered",
                Playing         = true,
                CurrentPosition = 240,
                Length          = 240,
            };
            var newestTrack = new Track()
            {
                Artist        = "Artist",
                Title         = "Title",
                TitleExtended = "Live",
                Playing       = true,
                Length        = 240,
            };

            var spotifyStatusMock = new Moq.Mock <ISpotifyStatus>();

            spotifyStatusMock.Setup(x => x.CurrentTrack).Returns(newestTrack);
            spotifyStatusMock.Setup(x => x.GetTrack()).ReturnsAsync(newestTrack);

            var spotifyProcessMock = new Moq.Mock <ISpotifyProcess>();

            spotifyProcessMock.Setup(x => x.GetSpotifyStatus()).ReturnsAsync(spotifyStatusMock.Object);

            var spotifyHandler = new SpotifyHandler(spotifyProcessMock.Object)
            {
                ListenForEvents = true
            };

            spotifyHandler.Track = oldTrack;

            Track eventNewTrack = null;
            Track eventOldTrack = null;

            spotifyHandler.OnTrackChange += delegate(object sender, TrackChangeEventArgs e)
            {
                eventOldTrack = e.OldTrack;
                eventNewTrack = e.NewTrack;
                Assert.Equal(oldTrack, eventOldTrack);
                Assert.Equal(newestTrack, eventNewTrack);
            };

            int?eventTrackTime = null;

            spotifyHandler.OnTrackTimeChange += delegate(object sender, TrackTimeChangeEventArgs e)
            {
                eventTrackTime = e.TrackTime;
                Assert.Equal(0, eventTrackTime);
            };

            spotifyHandler.ElapsedEventTick(new object { }, new EventArgs() as System.Timers.ElapsedEventArgs);

            spotifyProcessMock.Verify(n => n.GetSpotifyStatus(), Times.Once);
        }
Example #4
0
        private void BindSpotifyEventHandlers()
        {
            Spotify = new SpotifyHandler(_audioSession);

            Spotify.OnPlayStateChange += OnPlayStateChanged;
            Spotify.OnTrackChange     += OnTrackChanged;
            Spotify.OnTrackTimeChange += OnTrackTimeChanged;
        }
        private async void TickEventSpotifyIdling_ReturnsNoEvent()
        {
            var track = new Track();

            var spotifyStatusMock = new Moq.Mock <ISpotifyStatus>();

            spotifyStatusMock.Setup(x => x.CurrentTrack).Returns(track);
            spotifyStatusMock.Setup(x => x.GetTrack()).Returns(track);

            var spotifyProcessMock = new Moq.Mock <ISpotifyProcess>();

            spotifyProcessMock.Setup(x => x.GetSpotifyStatus()).Returns(spotifyStatusMock.Object);

            var spotifyHandler = new SpotifyHandler(spotifyProcessMock.Object)
            {
                ListenForEvents = true
            };

            spotifyHandler.SongTimer.Start();

            var eventPlaying = false;

            spotifyHandler.OnPlayStateChange += delegate(object sender, PlayStateEventArgs e)
            {
                eventPlaying = e.Playing;
            };

            Track eventNewTrack = null;
            Track eventOldTrack = null;

            spotifyHandler.OnTrackChange += delegate(object sender, TrackChangeEventArgs e)
            {
                eventNewTrack = e.NewTrack;
                eventOldTrack = e.OldTrack;
            };

            int?eventTrackTime = null;

            spotifyHandler.OnTrackTimeChange += delegate(object sender, TrackTimeChangeEventArgs e)
            {
                eventTrackTime = e.TrackTime;
            };

            // initial track
            Assert.Null(spotifyHandler.Track);

            await Task.Delay(500);

            // updated track
            Assert.Equal(track, spotifyHandler.Track);

            // events
            Assert.False(eventPlaying);
            Assert.Null(eventNewTrack);
            Assert.Null(eventOldTrack);
            Assert.Equal(0, eventTrackTime);
        }
        private void Dispose_ReturnsTimerOff()
        {
            var spotifyProcessMock = new Moq.Mock <ISpotifyProcess>();

            var spotifyHandler = new SpotifyHandler(spotifyProcessMock.Object);

            spotifyHandler.Dispose();

            Assert.False(spotifyHandler.EventTimer.Enabled);
            Assert.False(spotifyHandler.SongTimer.Enabled);
        }
Example #7
0
        internal void Dispose_ReturnsTimerOff()
        {
            var spotifyProcessMock = new Moq.Mock <ISpotifyProcess>();

            var spotifyHandler = new SpotifyHandler(spotifyProcessMock.Object);

            spotifyHandler.Dispose();

            Assert.Null(spotifyHandler.EventTimer);
            Assert.Null(spotifyHandler.SongTimer);
        }
        private void SpotifyHandler_ReturnsSpotifyProcess()
        {
            var spotifyProcessMock = new Moq.Mock <ISpotifyProcess>();

            var spotifyHandler = new SpotifyHandler(spotifyProcessMock.Object)
            {
                ListenForEvents = true
            };

            Assert.True(spotifyHandler.ListenForEvents);
            Assert.Same(spotifyProcessMock.Object, spotifyHandler.SpotifyProcess);
        }
Example #9
0
                public override string Run(string[] message)
                {
                    //Spotifysearch song name
                    _message = null;

                    var songs = SpotifyHandler.searchSongs(string.Join(" ", message), handler);

                    foreach (string song in songs)
                    {
                        _message += song + "\n";
                    }

                    /*END OF COMMAND*/
                    ((CommandList)parent)._commandState = null;

                    return(_message);
                }
Example #10
0
        internal async Task TriggerEvents_ReturnsCurrentTrack()
        {
            var track = new Track()
            {
                Artist          = "Artist",
                Title           = "Title",
                TitleExtended   = "Live",
                Playing         = true,
                CurrentPosition = 10,
                Length          = 230,
            };

            var spotifyStatusMock = new Moq.Mock <ISpotifyStatus>();

            spotifyStatusMock.Setup(x => x.CurrentTrack).Returns(track);
            spotifyStatusMock.Setup(x => x.GetTrack()).ReturnsAsync(track);

            var spotifyProcessMock = new Moq.Mock <ISpotifyProcess>();

            spotifyProcessMock.Setup(x => x.GetSpotifyStatus()).ReturnsAsync(spotifyStatusMock.Object);

            var spotifyHandler = new SpotifyHandler(spotifyProcessMock.Object)
            {
                ListenForEvents = true
            };

            var oldTrackStatus = track;

            oldTrackStatus.CurrentPosition = 9;
            spotifyHandler.Track           = oldTrackStatus;

            int?eventTrackTime = null;

            spotifyHandler.OnTrackTimeChange += delegate(object sender, TrackTimeChangeEventArgs e)
            {
                eventTrackTime = e.TrackTime;
                Assert.Equal(track.CurrentPosition, eventTrackTime);
            };

            await spotifyHandler.TriggerEvents();

            spotifyProcessMock.Verify(n => n.GetSpotifyStatus(), Times.Once);

            spotifyHandler.Dispose();
        }
Example #11
0
                public override string Run(string[] message)
                {
                    //Spotifysearch song name

                    _message = null;
                    var albums = SpotifyHandler.searchAlbums(string.Join(" ", message), handler);

                    foreach (string album in albums)
                    {
                        _message += album + "\n";
                    }
                    //_message = ;

                    /*END OF COMMAND*/
                    ((CommandList)parent)._commandState = null;

                    return(_message);
                }
Example #12
0
        internal async Task TriggerEvents_ReturnsPlayingTrack()
        {
            var paused = new Track()
            {
                Playing = false
            };
            var playing = new Track()
            {
                Playing = false
            };

            var spotifyStatusMock = new Moq.Mock <ISpotifyStatus>();

            spotifyStatusMock.Setup(x => x.CurrentTrack).Returns(playing);
            spotifyStatusMock.Setup(x => x.GetTrack()).ReturnsAsync(playing);

            var spotifyProcessMock = new Moq.Mock <ISpotifyProcess>();

            spotifyProcessMock.Setup(x => x.GetSpotifyStatus()).ReturnsAsync(spotifyStatusMock.Object);

            var spotifyHandler = new SpotifyHandler(spotifyProcessMock.Object)
            {
                ListenForEvents = true
            };

            spotifyHandler.Track = paused;

            var eventPlaying = false;

            spotifyHandler.OnPlayStateChange += delegate(object sender, PlayStateEventArgs e)
            {
                eventPlaying = e.Playing;
                Assert.True(eventPlaying);
            };

            await spotifyHandler.TriggerEvents();

            spotifyProcessMock.Verify(n => n.GetSpotifyStatus(), Times.Once);

            spotifyHandler.Dispose();
        }
Example #13
0
        internal void TickEventSpotifyIdling_ReturnsNoEvent()
        {
            var spotifyProcessMock = new Moq.Mock <ISpotifyProcess>();

            var spotifyHandler = new SpotifyHandler(spotifyProcessMock.Object)
            {
                ListenForEvents = true
            };

            spotifyHandler.SongTimer.Start();

            var eventPlaying = false;

            spotifyHandler.OnPlayStateChange += delegate(object sender, PlayStateEventArgs e)
            {
                eventPlaying = e.Playing;
                Assert.False(eventPlaying);
            };

            Track eventNewTrack = null;
            Track eventOldTrack = null;

            spotifyHandler.OnTrackChange += delegate(object sender, TrackChangeEventArgs e)
            {
                eventNewTrack = e.NewTrack;
                eventOldTrack = e.OldTrack;
                Assert.Null(eventNewTrack);
                Assert.Null(eventOldTrack);
            };

            int?eventTrackTime = null;

            spotifyHandler.OnTrackTimeChange += delegate(object sender, TrackTimeChangeEventArgs e)
            {
                eventTrackTime = e.TrackTime;
                Assert.Equal(0, eventTrackTime);
            };

            spotifyHandler.Dispose();
        }
        internal void ElapsedEventTick_ReturnsPlayingTrack()
        {
            var paused = new Track()
            {
                Playing = false
            };
            var playing = new Track()
            {
                Playing = false
            };

            var spotifyStatusMock = new Moq.Mock <ISpotifyStatus>();

            spotifyStatusMock.Setup(x => x.CurrentTrack).Returns(playing);
            spotifyStatusMock.Setup(x => x.GetTrack()).ReturnsAsync(playing);

            var spotifyProcessMock = new Moq.Mock <ISpotifyProcess>();

            spotifyProcessMock.Setup(x => x.GetSpotifyStatus()).ReturnsAsync(spotifyStatusMock.Object);

            var spotifyHandler = new SpotifyHandler(spotifyProcessMock.Object)
            {
                ListenForEvents = true
            };

            spotifyHandler.Track = paused;

            var eventPlaying = false;

            spotifyHandler.OnPlayStateChange += delegate(object sender, PlayStateEventArgs e)
            {
                eventPlaying = e.Playing;
                Assert.True(eventPlaying);
            };

            spotifyHandler.ElapsedEventTick(new object { }, new EventArgs() as System.Timers.ElapsedEventArgs);

            spotifyProcessMock.Verify(n => n.GetSpotifyStatus(), Times.Once);
        }
Example #15
0
 public async Task RefreshUser(string id)
 {
     SpotifyHandler.RefreshUser(id);
     //Do I need an await here
 }
        private async void NewTrack_ReturnsAllEvents()
        {
            var previousTrack = new Track();
            var currentTrack  = new Track
            {
                Title         = "Song Title",
                Artist        = "Artist Name",
                Ad            = false,
                Playing       = true,
                TitleExtended = "Live"
            };

            var spotifyStatusMock = new Moq.Mock <ISpotifyStatus>();

            spotifyStatusMock.Setup(x => x.CurrentTrack).Returns(currentTrack);
            spotifyStatusMock.Setup(x => x.GetTrack()).Returns(currentTrack);

            var spotifyProcessMock = new Moq.Mock <ISpotifyProcess>();

            spotifyProcessMock.Setup(x => x.GetSpotifyStatus()).Returns(spotifyStatusMock.Object);

            var spotifyHandler = new SpotifyHandler(spotifyProcessMock.Object)
            {
                ListenForEvents = true,
                Track           = previousTrack
            };

            var eventPlaying = false;

            spotifyHandler.OnPlayStateChange += delegate(object sender, PlayStateEventArgs e)
            {
                eventPlaying = e.Playing;
            };

            Track eventNewTrack = null;
            Track eventOldTrack = null;

            spotifyHandler.OnTrackChange += delegate(object sender, TrackChangeEventArgs e)
            {
                eventNewTrack = e.NewTrack;
                eventOldTrack = e.OldTrack;
            };

            int?eventTrackTime = null;

            spotifyHandler.OnTrackTimeChange += delegate(object sender, TrackTimeChangeEventArgs e)
            {
                eventTrackTime = e.TrackTime;
            };

            // initial track
            Assert.Equal(previousTrack, spotifyHandler.Track);

            await Task.Delay(500);

            // updated track
            Assert.Equal(currentTrack, spotifyHandler.Track);

            // events
            Assert.True(eventPlaying);
            Assert.Equal(currentTrack, eventNewTrack);
            Assert.Equal(previousTrack, eventOldTrack);
            Assert.Equal(0, eventTrackTime);
        }
Example #17
0
 public async Task PlayUser(string id)
 {
     await SpotifyHandler.PlayMusic(id);
 }
Example #18
0
 public void PauseUser(string id)
 {
     SpotifyHandler.PauseMusic(id);
 }