public void RaiseMessageWhenCreateUser() { var stream = new MemoryEventStream(); var publisher = new EventBus(stream); var deezerApi = DeezerApiBuilder.Create().Build(); var songRepository = SongRepositoryBuilder.Create().Build(); var playlistRepository = PlaylistRepositoryBuilder.Create().Build(); User.Create(stream, publisher, deezerApi, songRepository, playlistRepository, "*****@*****.**", "dublow", "12345", "accessToken"); var identity = Identity.Parse("*****@*****.**", "dublow", "12345", "accessToken"); Assert.IsTrue(stream.GetEvents().Contains(new UserCreated(identity))); }
public void RaiseMessageWhenAddPlaylistToUser() { var stream = new MemoryEventStream(); var deezerApi = DeezerApiBuilder.Create().SetCreatePlaylist(PlaylistId.Parse("100")).Build(); var songRepository = SongRepositoryBuilder.Create() .SetRandomSongs(1, new[] { new Song(SongId.Parse("100"), "title", "artist") }).Build(); var playlistRepository = PlaylistRepositoryBuilder.Create().Build(); stream.Add(new UserCreated(Identity.Parse("*****@*****.**", "dublow", "12345", "accessToken"))); var publisher = new EventBus(stream); var user = new User(stream, publisher, deezerApi, songRepository, playlistRepository, 1); user.AddPlaylist("playlistName"); Assert.IsTrue(stream.GetEvents().Contains(new PlaylistAdded(UserId.Parse("12345"), PlaylistId.Parse("100"), "playlistName"))); }
public void NoRaiseMessageWhenTwiceDeleteUser() { var stream = new MemoryEventStream(); var deezerApi = DeezerApiBuilder.Create().Build(); var songRepository = SongRepositoryBuilder.Create().Build(); var playlistRepository = PlaylistRepositoryBuilder.Create().Build(); stream.Add(new UserCreated(Identity.Parse("*****@*****.**", "dublow", "12345", "accessToken"))); var publisher = new EventBus(stream); var user = new User(stream, publisher, deezerApi, songRepository, playlistRepository, 1); user.Delete(); user.Delete(); Assert.IsTrue(stream.GetEvents().Contains(new UserDeleted(UserId.Parse("12345")))); }
public void NoRaiseMessageWhenAddPlaylistWithDeletedUser() { var stream = new MemoryEventStream(); var deezerApi = DeezerApiBuilder.Create().Build(); var songRepository = SongRepositoryBuilder.Create().Build(); var playlistRepository = PlaylistRepositoryBuilder.Create().Build(); stream.Add(new UserCreated(Identity.Parse("*****@*****.**", "dublow", "12345", "accessToken"))); stream.Add(new UserDeleted(UserId.Parse("12345"))); var publisher = new EventBus(stream); var user = new User(stream, publisher, deezerApi, songRepository, playlistRepository, 1); user.AddPlaylist("playlistName"); Assert.AreEqual(0, stream.GetEvents().OfType <PlaylistAdded>().Count()); }
public void UseRepositoryWhenSongIsAdded() { // arrange var userId = UserId.Parse("12345"); var playlistId = PlaylistId.Parse("100"); var songId = SongId.Parse("001"); var title = "title"; var artist = "artist"; var mockedSongRepository = SongRepositoryBuilder.Create(); var songRepository = mockedSongRepository.Build(); var songHandler = new SongHandler(songRepository); // act songHandler.Handle(new SongAdded(userId, playlistId, songId, title, artist)); // assert var(actualUserId, actualPlaylistId, actualSongId, actualTitle, actualArtist) = mockedSongRepository.Songs.First(); Assert.AreEqual(userId, actualUserId); Assert.AreEqual(playlistId, actualPlaylistId); Assert.AreEqual(songId, actualSongId); Assert.AreEqual(title, actualTitle); Assert.AreEqual(artist, actualArtist); }