public List <SheetTO> MockSheets() { var sheet = new SheetTO { Id = 1, Name = "BestOf", Arranger = "Jean-Luc", Composer = "Morricone", IsCurrent = false, IsGarde = false, IsIndependance = true }; var sheet2 = new SheetTO { Id = 2, Name = "Young Amadeus", Arranger = "Jan de Haan", Composer = "Mozart", IsCurrent = true, IsGarde = false, IsIndependance = true }; var sheet3 = new SheetTO { Id = 3, Name = "Daft Punk Medley", Arranger = "Mec", Composer = "Daft Punkt", IsCurrent = true, IsGarde = false, IsIndependance = true }; return(new List <SheetTO> { sheet, sheet2, sheet3 }); }
public void UpdateSheet_ProvidingNonExistingSheet_ThrowException() { var options = new DbContextOptionsBuilder <LibraryContext>() .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name) .Options; using var context = new LibraryContext(options); ISheetRepository sheetRepository = new SheetRepository(context); var sheet = new SheetTO { Name = "BestOf", Arranger = "Jean-Luc", Composer = "Morricone", IsCurrent = false, IsGarde = false, IsIndependance = true }; //Act & Assert Assert.ThrowsException <ArgumentException>(() => sheetRepository.Update(sheet)); }
public bool Delete(SheetTO entity) { if (entity is null) { throw new KeyNotFoundException(); } if (entity.Id <= 0) { throw new ArgumentException("Sheet To Delete Invalid Id"); } var sheet = libraryContext.Sheets.FirstOrDefault(x => x.Id == entity.Id); libraryContext.Sheets.Remove(sheet); libraryContext.SaveChanges(); return(true); }
public void UpdateSheet_Successful() { //Arrange var options = new DbContextOptionsBuilder <LibraryContext>() .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name) .Options; using var context = new LibraryContext(options); ISheetRepository sheetRepository = new SheetRepository(context); ICategoryRepository categoryRepository = new CategoryRepository(context); //Act var category = new CategoryTO { Name = "Musique de films" }; var addedCategory = categoryRepository.Add(category); var category2 = new CategoryTO { Name = "Musique de classique" }; var addedCategory2 = categoryRepository.Add(category2); context.SaveChanges(); var sheet = new SheetTO { Name = "BestOf", Arranger = "Jean-Luc", Category = addedCategory, Composer = "Morricone", IsCurrent = false, IsGarde = false, IsIndependance = true }; var sheet2 = new SheetTO { Name = "Young Amadeus", Arranger = "Jan de Haan", Category = addedCategory2, Composer = "Mozart", IsCurrent = true, IsGarde = false, IsIndependance = true }; var addedSheet = sheetRepository.Add(sheet); var addedSheet2 = sheetRepository.Add(sheet2); context.SaveChanges(); //Act addedSheet.Category = addedCategory2; var test = sheetRepository.Update(addedSheet); context.SaveChanges(); //Assert Assert.AreEqual(2, sheetRepository.GetAll().Count()); Assert.AreEqual("Musique de classique", test.Category.Name); }
public static SheetEF ToEF(this SheetTO Sheet) { if (Sheet is null) { throw new ArgumentNullException(nameof(Sheet)); } return(new SheetEF { Id = Sheet.Id, Name = Sheet.Name, Arranger = Sheet.Arranger, Category = Sheet.Category.ToEF(), Composer = Sheet.Composer, IsCurrent = Sheet.IsCurrent, IsGarde = Sheet.IsGarde, IsIndependance = Sheet.IsIndependance, }); }
public SheetTO Add(SheetTO entity) { if (entity is null) { throw new ArgumentNullException(); } if (entity.Id != 0) { return(entity); } var entityEF = entity.ToEF(); entityEF.Category = libraryContext.Categories.First(x => x.Id == entity.Category.Id); var result = libraryContext.Sheets.Add(entityEF); libraryContext.SaveChanges(); return(result.Entity.ToTransferObject()); }
public void AddSheet_AddExistingSheet_DoNotInsertTwiceInDb() { //Arrange var options = new DbContextOptionsBuilder <LibraryContext>() .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name) .Options; using var context = new LibraryContext(options); ISheetRepository sheetRepository = new SheetRepository(context); ICategoryRepository categoryRepository = new CategoryRepository(context); //Act var category = new CategoryTO { Name = "Musique de films" }; var addedCategory = categoryRepository.Add(category); var category2 = new CategoryTO { Name = "Musique de classique" }; var addedCategory2 = categoryRepository.Add(category2); context.SaveChanges(); var sheet = new SheetTO { Name = "BestOf", Arranger = "Jean-Luc", Category = addedCategory, Composer = "Morricone", IsCurrent = false, IsGarde = false, IsIndependance = true }; var sheet2 = new SheetTO { Id = 1, Name = "BestOf", Arranger = "Jean-Luc", Category = addedCategory2, Composer = "Morricone", IsCurrent = false, IsGarde = false, IsIndependance = true }; var addedSheet = sheetRepository.Add(sheet); var addedSheet2 = sheetRepository.Add(sheet2); context.SaveChanges(); //Assert Assert.IsNotNull(sheet); Assert.AreEqual(1, sheetRepository.GetAll().Count()); }
public void UpdateSheetPart_Successful() { var options = new DbContextOptionsBuilder <LibraryContext>() .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name) .Options; using var context = new LibraryContext(options); ISheetRepository sheetRepository = new SheetRepository(context); ICategoryRepository categoryRepository = new CategoryRepository(context); ISheetPartRepository sheetPartRepository = new SheetPartRepository(context); IInstrumentRepository instrumentRepository = new InstrumentRepository(context); //Act var category = new CategoryTO { Name = "Musique de films" }; var addedCategory = categoryRepository.Add(category); var category2 = new CategoryTO { Name = "Musique de classique" }; var addedCategory2 = categoryRepository.Add(category2); context.SaveChanges(); var sheet = new SheetTO { Name = "BestOf", Arranger = "Jean-Luc", Category = addedCategory, Composer = "Morricone", IsCurrent = false, IsGarde = false, IsIndependance = true }; var sheet2 = new SheetTO { Name = "Youg Amadeus", Arranger = "Jan de Haan", Category = addedCategory2, Composer = "Mozart", IsCurrent = true, IsGarde = false, IsIndependance = true }; var addedSheet = sheetRepository.Add(sheet); var addedSheet2 = sheetRepository.Add(sheet2); context.SaveChanges(); var instru = new InstrumentTO { Name = "Saxophone" }; var instru2 = new InstrumentTO { Name = "Trumpet" }; var instru3 = new InstrumentTO { Name = "Flute" }; var addedInstru = instrumentRepository.Add(instru); var addedInstru2 = instrumentRepository.Add(instru2); var addedInstru3 = instrumentRepository.Add(instru3); context.SaveChanges(); var sheetPart = new SheetPartTO { Instrument = addedInstru, Sheet = addedSheet, Path = @"C:\sheet" }; var sheetPart2 = new SheetPartTO { Instrument = addedInstru2, Sheet = addedSheet }; var sheetPart3 = new SheetPartTO { Instrument = addedInstru, Sheet = addedSheet2 }; var addedSheetPart = sheetPartRepository.Add(sheetPart); var addedSheetPart2 = sheetPartRepository.Add(sheetPart2); var addedSheetPart3 = sheetPartRepository.Add(sheetPart3); context.SaveChanges(); //ACT addedSheetPart.Instrument = addedInstru3; var test = sheetPartRepository.Update(addedSheetPart); context.SaveChanges(); //Assert Assert.AreEqual(3, sheetPartRepository.GetAll().Count()); Assert.AreEqual("Flute", test.Instrument.Name); }