예제 #1
0
        public void When_add_tracks_success()
        {
            var httpWebRequest = MockedHttpWebRequest
                                    .Create()
                                    .SuccessTracksResponse()
                                    .Build();

            var httpWebBuilder = new HttpWebBuilder(httpWebRequest);
            var deezer = new HttpDeezer(httpWebBuilder);

            var tracks = deezer.AddTracks(1, "accessToken", "12345", new[] { "123", "456" });
            Assert.IsTrue(tracks.Success);
        }
예제 #2
0
        public void When_add_playlist_with_null_response()
        {
            var httpWebRequest = MockedHttpWebRequest
                                    .Create()
                                    .NullResponse()
                                    .Build();

            var httpWebBuilder = new HttpWebBuilder(httpWebRequest);
            var deezer = new HttpDeezer(httpWebBuilder);

            var playlist = deezer.AddPlaylist(56789, "accessToken", "MagicPlaylist");
            Assert.IsNull(playlist);
        }
예제 #3
0
        public void When_add_playlist_success()
        {
            var httpWebRequest = MockedHttpWebRequest
                                    .Create()
                                    .SuccessPlaylistResponse()
                                    .Build();

            var httpWebBuilder = new HttpWebBuilder(httpWebRequest);
            var deezer = new HttpDeezer(httpWebBuilder);

            var playlist = deezer.AddPlaylist(56789, "accessToken", "MagicPlaylist");
            Assert.AreEqual("12345", playlist.Id);
            Assert.AreEqual("https://www.deezer.com/playlist/12345", playlist.PlaylistUrl);
        }
예제 #4
0
        public void When_add_tracks_invalid_playlist_id()
        {
            var httpWebRequest = MockedHttpWebRequest
                                    .Create()
                                    .ErrorTracksInvalidPlaylistIdResponse()
                                    .Build();

            var httpWebBuilder = new HttpWebBuilder(httpWebRequest);
            var deezer = new HttpDeezer(httpWebBuilder);

            var tracks = deezer.AddTracks(1, "accessToken", "12345", new[] { "123", "456" });

            Assert.IsTrue(tracks.HasError);
            Assert.AreEqual("DataException", tracks.Error.Type);
            Assert.AreEqual("no data", tracks.Error.Message);
            Assert.AreEqual(800, tracks.Error.Code);
        }
예제 #5
0
        public void When_add_playlist_with_invalid_response()
        {
            var httpWebRequest = MockedHttpWebRequest
                                    .Create()
                                    .ErrorPlaylistResponse()
                                    .Build();

            var httpWebBuilder = new HttpWebBuilder(httpWebRequest);
            var deezer = new HttpDeezer(httpWebBuilder);

            var playlist = deezer.AddPlaylist(56789, "accessToken", "MagicPlaylist");

            Assert.IsTrue(playlist.HasError);
            Assert.AreEqual("ParameterException", playlist.Error.Type);
            Assert.AreEqual("Wrong parameter: playlistid", playlist.Error.Message);
            Assert.AreEqual(500, playlist.Error.Code);
        }
예제 #6
0
 public HttpDeezer(HttpWebBuilder httpWebBuilder)
 {
     _httpWebBuilder = httpWebBuilder;
 }
예제 #7
0
        private HttpDeezer BuildSuccessHttpDeezer()
        {
            var httpWebRequest = MockedHttpWebRequest
                                    .Create()
                                    .SuccessPlaylistResponse()
                                    .SuccessTracksResponse()
                                    .Build();

            var httpWebBuilder = new HttpWebBuilder(httpWebRequest);

            return new HttpDeezer(httpWebBuilder);
        }
예제 #8
0
        public void When_post_playlist_with_error_tracks_must_be_failed()
        {
            var httpWebRequest = MockedHttpWebRequest
                                    .Create()
                                    .SuccessPlaylistResponse()
                                    .ErrorTracksInvalidTrackIdResponse()
                                    .Build();

            var httpWebBuilder = new HttpWebBuilder(httpWebRequest);
            var httpDeezer = new HttpDeezer(httpWebBuilder);
            var mockedMagicPlaylistGateway = MockedMagicPlaylistGateway
                                                .Create()
                                                .CanAddPlaylist(true);

            var browser = new Browser(cfg =>
            {
                cfg.Module<HomeModule>();
                cfg.Dependency(BuildSuccessRadioGateway());
                cfg.Dependency(mockedMagicPlaylistGateway.Build());
                cfg.Dependency(httpDeezer);
            });

            var response = browser.Post("/playlist", (with) => {
                with.HttpRequest();
                with.FormValue("id", "1");
                with.FormValue("accessToken", "abcde");
                with.FormValue("firstname", "Nicolas");
                with.FormValue("lastname", "Delfour");
                with.FormValue("email", "*****@*****.**");
                with.FormValue("gender", "M");
                with.FormValue("name", "Nico");
                with.FormValue("country", "FR");
                with.FormValue("lang", "FR");
                with.FormValue("birthday", "1980-02-25");
            });

            var logTable = mockedMagicPlaylistGateway._logTable;
            var error = logTable.SingleOrDefault();

            Assert.AreEqual(1, logTable.Count);
            Assert.IsNotNull(error);
            Assert.AreEqual("MagicPlaylistException", error.errorType);
            Assert.AreEqual("DeezerTracks error:[ParameterException][Wrong parameter: songs][500]", error.message);
            Assert.IsNotEmpty(error.stackTrace);
            Assert.AreEqual(1, mockedMagicPlaylistGateway._userTable.Count);

            Assert.AreEqual(HttpStatusCode.InternalServerError, response.StatusCode);
            Assert.AreEqual("application/json; charset=utf-8", response.ContentType);
            Assert.AreEqual("{\"success\":false}", response.Body.AsString());
        }
예제 #9
0
        public void When_add_tracks_invalid_tracks_id()
        {
            var httpWebRequest = MockedHttpWebRequest
                                    .Create()
                                    .ErrorTracksInvalidTrackIdResponse()
                                    .Build();

            var httpWebBuilder = new HttpWebBuilder(httpWebRequest);
            var deezer = new HttpDeezer(httpWebBuilder);

            var tracks = deezer.AddTracks(1, "accessToken", "12345", new[] { "123", "456" });

            Assert.IsTrue(tracks.HasError);
            Assert.AreEqual("ParameterException", tracks.Error.Type);
            Assert.AreEqual("Wrong parameter: songs", tracks.Error.Message);
            Assert.AreEqual(500, tracks.Error.Code);
        }
예제 #10
0
        public void When_add_tracks_with_null_response()
        {
            var httpWebRequest = MockedHttpWebRequest
                                    .Create()
                                    .NullResponse()
                                    .Build();

            var httpWebBuilder = new HttpWebBuilder(httpWebRequest);
            var deezer = new HttpDeezer(httpWebBuilder);

            var tracks = deezer.AddTracks(1, "accessToken", "12345", new[] { "123", "456" });
            Assert.IsNull(tracks);
        }