public void WhenTracksIsNull_Throws() { // arrange var status = Status.Create(0); // act/assert Assert.ThrowsException <ArgumentNullException>(() => AlbumBuilder.BuildAlbums(null, ref status)); }
public void Create_MissingGenre_ThrowsException() { //Arrange var album = new AlbumBuilder().Build(); //Act //Assert Assert.That(() => _factory.Create(album, null), Throws.TypeOf <ArgumentException>() .With.Message.EqualTo("Illegal parameter : Genre")); }
public void Create_MismatchBetweenAlbumAndGenre_TrowsException() { //Arrange Random random = new Random(); var genre = new GenreBuilder().WithId(random.Next(1, int.MaxValue)).Build(); var album = new AlbumBuilder().WithGenreId(random.Next(1, int.MaxValue)).Build(); //Act //Assert Assert.That(() => _factory.Create(album, genre), Throws.TypeOf <ArgumentException>() .With.Message.EqualTo("Genre ID mismatch")); }
public void WhenAlbumNameIsNullOrWhiteSpace_Throws(string albumName) { // arrange var status = Status.Create(0); var mockTrack = new Mock <IITTrack>(); mockTrack.Setup(t => t.Album).Returns(albumName); var tracksToFix = new List <IITTrack> { mockTrack.Object }; // act/assert Assert.ThrowsException <iTunesAssistantException>(() => AlbumBuilder.BuildAlbums(tracksToFix, ref status)); }
public void Create_ValidAlbumAndValidGenre_CorrectlyMapped() { //Arrange var genre = new GenreBuilder().Build(); var album = new AlbumBuilder().WithGenreId(genre.Id).Build(); //Act var resultModel = _factory.Create(album, genre) as AlbumViewModel; //Assert Assert.That(resultModel, Is.Not.Null); Assert.That(resultModel.Genre, Is.EqualTo(genre.Name)); Assert.That(resultModel.Title, Is.EqualTo(album.Title)); Assert.That(resultModel.Artist, Is.EqualTo(album.Artist)); }
public void WhenTracksToFixIsEmpty_ReturnsExpectedResult_AndStatus() { // arrange var status = Status.Create(0); var tracksToFix = new List <IITTrack>(); // act var result = AlbumBuilder.BuildAlbums(tracksToFix, ref status); // assert Assert.IsNotNull(result); Assert.AreEqual(0, result.Count); Assert.AreEqual(0, status.ItemsTotal); Assert.AreEqual(0, status.ItemsProcessed); Assert.AreEqual("Generating album list...", status.Message); }
public void WhenTracksToFixIsNotEmpty_GroupsTracksByAlbumName() { // arrange const int albumCount = 7; var status = Status.Create(0); var tracksToFix = TestData.BuildMockAlbums(albumCount).SelectMany(t => t).ToList(); // act var result = AlbumBuilder.BuildAlbums(tracksToFix, ref status); // assert Assert.IsNotNull(result); Assert.AreEqual(albumCount, result.Count); Assert.AreEqual(tracksToFix.Count, status.ItemsTotal); Assert.AreEqual(tracksToFix.Count, status.ItemsProcessed); Assert.AreEqual("Generating album list...", status.Message); }
public void Details_ShowsDetailsOfAlbum() { //Arrange var genre = new GenreBuilder().WithId().Build(); var album = new AlbumBuilder().WithGenreId(genre.Id).Build(); var albumViewModel = new AlbumViewModelBuilder().Build(); _controller._albumRepositoryMock.Setup(repo => repo.GetById(album.Id)) .Returns(album); _controller._genreRepositoryMock.Setup(repo => repo.GetById(genre.Id)).Returns(genre); _controller._albumViewModelFactoryMock.Setup(factory => factory.Create(album, genre)) .Returns(albumViewModel); //Act var resultView = _controller.Details(album.Id) as ViewResult; //Assert Assert.That(resultView, Is.Not.Null); _controller._albumRepositoryMock.Verify(repo => repo.GetById(album.Id), Times.Once); _controller._genreRepositoryMock.Verify(repo => repo.GetById(album.GenreId), Times.Once); _controller._albumViewModelFactoryMock.Verify(factory => factory.Create(album, genre), Times.Once); Assert.That(resultView.Model, Is.EqualTo(albumViewModel)); }
static internal AlbumDescriptor FromFreeDBInfo(List<string> FileName) { AlbumBuilder cab = new AlbumBuilder(DataExportImportType.FreeDB); Freedb.FreedbParser csa = new Freedb.FreedbParser(FileName); AlbumDescriptor res = csa.Visit(cab); if (res == null) return null; //petite ratrap sur les fichiers corrompus var duples = res.RawTrackDescriptors.ToLookup(tr => tr.TrackNumber); foreach (IGrouping<uint, TrackDescriptor> group in duples) { if (group.Count() == 1) continue; var orderedgoups = group.OrderBy(td => res.RawTrackDescriptors.IndexOf(td)).ToList(); TrackDescriptor survivor = orderedgoups[0]; int count = orderedgoups.Count; for (int i = 1; i < count; i++) { TrackDescriptor tobetr = orderedgoups[i]; survivor.Name += tobetr.Name; res.RawTrackDescriptors.Remove(tobetr); } } return res; }
static internal AlbumDescriptor FromCUESheet(string FileName) { AlbumBuilder cab = new AlbumBuilder(DataExportImportType.CUE); CUESheetAnalyser csa = new CUESheetAnalyser(FileName); AlbumDescriptor res = csa.Visit(cab); if (res != null) res.CUESheetFileName = FileName; return res; }