using System.Linq; using Microsoft.VisualStudio.TestTools.UnitTesting; using Nancy; using Nancy.Testing; using Sony.Filtr.AdminAPI.Modules.TrackPlaylistAdds.ViewModels; using Sony.Filtr.Contracts.Entities; namespace Sony.Filtr.AdminAPI.Testing { [TestClass] public class TrackPlaylistAddsModuleTest : FiltrUnitTestBase { private static Browser _DefaultLoggedInBrowser; [ClassInitialize] public static void InitTestSuite(TestContext testContext) { _DefaultLoggedInBrowser = BuildDefaultBrowser(); } [TestMethod] public void Can_Get_TrackPlaylistAdds_For_AlbumUri_With_Sony_UPC() { var url = "/TrackPlaylistAdds"; var result = _DefaultLoggedInBrowser.Get(url, with => { with.Query("uri", "spotify:album:0pF0oyuPNdOObniB1Ng0kW"); with.Query("region", "se"); }); Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); var responseModel = result.Body.DeserializeJson>(); Assert.IsNotNull(responseModel); Assert.IsNotNull(responseModel.Items); Assert.IsTrue(responseModel.Items.Any()); Assert.IsTrue(responseModel.Items.All(i=> i.IsSony.HasValue)); Assert.IsTrue(responseModel.Items.All(i => i.IsSony.Value)); } [TestMethod] public void Can_Get_TrackPlaylistAdds_For_AlbumUri_With_Not_Sony_UPC() { var url = "/TrackPlaylistAdds"; var result = _DefaultLoggedInBrowser.Get(url, with => { with.Query("uri", "spotify:album:0003LtUP1HoQvYxPwu0u22"); with.Query("region", "se"); }); Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); var responseModel = result.Body.DeserializeJson>(); Assert.IsNotNull(responseModel); Assert.IsNotNull(responseModel.Items); Assert.IsTrue(responseModel.Items.Any()); Assert.IsTrue(responseModel.Items.All(i=> !i.IsSony.Value)); } [TestMethod] public void Can_Get_TrackPlaylistAdds_For_AlbumUri_In_Database_Without_UPC() { var url = "/TrackPlaylistAdds"; var result = _DefaultLoggedInBrowser.Get(url, with => { with.Query("uri", "spotify:album:003XWUT5ED6SZHEMG061SM"); with.Query("region", "se"); }); Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); var responseModel = result.Body.DeserializeJson>(); Assert.IsNotNull(responseModel); Assert.IsNotNull(responseModel.Items); Assert.IsTrue(responseModel.Items.Any()); Assert.IsTrue(responseModel.Items.All(i => !i.IsSony.Value)); } [TestMethod] public void Can_Get_TrackPlaylistAdds_For_AlbumUri_Not_In_Any_Playlist() { var url = "/TrackPlaylistAdds"; var result = _DefaultLoggedInBrowser.Get(url, with => { with.Query("uri", "spotify:album:4uWRXTDbBD1jFbqKDqlh9U"); with.Query("region", "se"); }); Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); var responseModel = result.Body.DeserializeJson>(); Assert.IsNotNull(responseModel); Assert.IsNotNull(responseModel.Items); Assert.IsTrue(!responseModel.Items.Any()); } [TestMethod] public void Can_Get_TrackPlaylistAdds_For_ArtistUri() { var url = "/TrackPlaylistAdds"; var result = _DefaultLoggedInBrowser.Get(url, with => { with.Query("uri", "spotify:artist:6vWDO969PvNqNYHIOW5v0m"); with.Query("region", "se"); }); Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); var responseModel = result.Body.DeserializeJson>(); Assert.IsNotNull(responseModel); Assert.IsNotNull(responseModel.Items); Assert.IsTrue(responseModel.Items.Any()); } } }