/
PlaylistControllerTest.cs
123 lines (96 loc) · 4.46 KB
/
PlaylistControllerTest.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
using BB.BL.Domain;
using BB.BL.Domain.Playlists;
using BB.UI.Web.MVC.Controllers;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using BB.UI.Web.MVC.Tests.Helpers;
using BB.UI.Web.MVC.Models;
using BB.BL;
using BB.BL.Domain.Users;
using BB.DAL;
using BB.DAL.EFOrganisation;
using BB.DAL.EFPlaylist;
using BB.DAL.EFUser;
namespace BB.UI.Web.MVC.Tests.Controllers
{
[TestClass]
public class PlaylistControllerTest
{
private PlaylistController controller;
[TestInitialize]
public void TestInitialize()
{
controller = new PlaylistController(DbInitializer.CreatePlaylistManager(),new YouTubeTrackProvider(), DbInitializer.CreateUserManager(), DbInitializer.CreateOrganisationManager(), new BingAlbumArtProvider());
DbInitializer.Initialize();
}
[TestMethod]
public void TestSearchAndAddTrack()
{
UserManager userManager = (UserManager) DbInitializer.CreateUserManager();
PlaylistManager playlistManager = (PlaylistManager) DbInitializer.CreatePlaylistManager();
var user = userManager.ReadUser("jonah@gmail.com");
var playlistje = playlistManager.CreatePlaylistForUser("testPlaylist", "teste", "tesje", 2, true, null, user);
var result = controller.SearchTrack("kshmr - bazaar");
var tracks = result.Data as List<Track>;
Assert.IsNotNull(tracks);
Assert.IsTrue(tracks.Any(t => t.Title.ToString().ToLower().Contains("bazaar")));
var addTrackResult = controller.AddTrack(playlistje.Id, tracks.First().TrackSource.TrackId);
Assert.IsNotNull(addTrackResult as JsonResult); // if the result is a JsonResult, the track is added successfully
var playlistResult = controller.View(playlistje.Key) as ViewResult;
Assert.IsNotNull(playlistResult);
playlistje = playlistResult.Model as Playlist;
Assert.IsNotNull(playlistje);
Assert.AreEqual(1, playlistje.PlaylistTracks.Count);
}
/*
[TestMethod]
public void TestSearchAndAddDuplicate()
{
var addTrackResult = controller.AddTrack(1, "dQw4w9WgXcQ") as HttpStatusCodeResult;
Assert.IsNotNull(addTrackResult);
Assert.AreEqual(400, addTrackResult.StatusCode);
Assert.AreEqual("You can not add a song that is already in the list", addTrackResult.StatusDescription);
}
*/
[TestMethod]
public void ViewPlaylist()
{
var result = controller.View("ABC123456") as ViewResult;
Assert.IsNotNull(result);
var tracks = result.Model as Playlist;
Assert.IsNotNull(tracks);
Assert.IsTrue(tracks.PlaylistTracks.Count > 0);
}
[TestMethod]
public void TestMoveTrackToHistory()
{
var playlistResult = controller.View("ABC123456") as ViewResult;
var playlist = playlistResult?.Model as Playlist;
var playlistTracks = playlist?.PlaylistTracks;
var aantalTracks = playlistTracks?.Count ?? 0; // get the amount of tracks in the playlist
var moveTrackResult = controller.MoveTrackToHistory(1) as HttpStatusCodeResult;
Assert.IsNotNull(moveTrackResult);
Assert.AreEqual(200, moveTrackResult.StatusCode);
playlistResult = controller.View("ABC123456") as ViewResult;
Assert.IsNotNull(playlistResult);
playlist = playlistResult.Model as Playlist;
Assert.IsNotNull(playlist);
Assert.AreEqual(aantalTracks - 1, playlist.PlaylistTracks.Count); // after moving the track to the history, make sure it is one less track compared to in the beginning
}
[TestMethod]
public void CreatePlaylist()
{
PlaylistViewModel playlistViewModel = new PlaylistViewModel()
{
MaximumVotesPerUser = 4,
Name = "Awesome party",
Key = "123ABC"
};
controller.Create(playlistViewModel, null);
Playlist playlist = DbInitializer.CreatePlaylistManager().ReadPlaylist("Awesome party");
Assert.AreEqual(playlist.Active, true);
}
}
}