public void ReturnEarly_Confirmed() { //arrange _view.ConfirmReturnEarly().Returns(true); // юзер соглашается "Вернуть фильм" var testMovieCopy = new MovieCopy(9999, "TEST COMMENT", 50) { Available = false }; // копия у кого-то в аренде // взяли 20 января, договорились вернуть 25, но вернули 23 var startDate = new DateTime(2020, 01, 20); var expectedEndDate = new DateTime(2020, 01, 25); var returnDate = new DateTime(2020, 01, 23); var testLeasing = new Leasing(startDate, expectedEndDate, 0, 0, 50) { MovieCopy = testMovieCopy }; _view.CurrentLeasing = testLeasing; testLeasing.ReturnEarly(returnDate); //act _presenter.ReturnEarly(returnDate); //assert Assert.AreEqual(testLeasing.TotalPrice, _view.CurrentLeasing.TotalPrice); Assert.AreEqual(testLeasing.MovieCopy.Available, _view.CurrentLeasing.MovieCopy.Available); Assert.AreEqual(testLeasing.ReturnDate, _view.CurrentLeasing.ReturnDate); _view.Received().Close(); }
public void ReturnDelayed_NotConfirmed() { //arrange _view.ConfirmReturnDelayed().Returns(false); // юзер отказывается "Вернуть фильм" var testMovieCopy = new MovieCopy(9999, "TEST COMMENT", 50) { Available = false }; // копия у кого-то в аренде var startDate = new DateTime(2020, 01, 20); var expectedEndDate = new DateTime(2020, 01, 25); var returnDate = new DateTime(2020, 01, 28); var leasing = new Leasing(startDate, expectedEndDate, 0, 0, 50) { MovieCopy = testMovieCopy }; _view.CurrentLeasing = leasing; const decimal fineMultiplier = 2; //act _presenter.ReturnDelayed(returnDate, fineMultiplier); //assert Assert.AreEqual(false, _view.CurrentLeasing.MovieCopy.Available); _view.DidNotReceive().Close(); }
public void Run(MovieOriginal currentMovie, MovieCopy currentMovieCopy) { _leasingView.CurrentMovie = currentMovie; _leasingView.CurrentMovieCopy = currentMovieCopy; _leasingView.RedrawCustomers(_context.Customers); _leasingView.Show(); }
public void AddMovieCopy(MovieCopy movieCopy) { if (!_movieCopyView.ConfirmNewMovieCopy()) { return; } _context.MoviesCopies.Add(movieCopy); _context.SaveChanges(); _movieCopyView.Close(); }
public MovieCopyForm() { InitializeComponent(); addMovieButton.Click += (sender, args) => { var movieId = CurrentMovie.Id; var commentary = commentTextBox.Text.Trim(); var pricePerDay = priceNumericUpDown.Value; var copy = new MovieCopy(movieId, commentary, pricePerDay); OnAddMovieCopy?.Invoke(copy); }; }
public void UpdateMovieCopy(int movieCopyId, MovieCopy updatedMovieCopy) { var copy = _context.MoviesCopies.Single(c => c.Id == movieCopyId); copy.Commentary = updatedMovieCopy.Commentary; copy.PricePerDay = updatedMovieCopy.PricePerDay; _context.SaveChanges(); var copies = _context.MoviesCopies.Where(c => c.MovieId == copy.MovieId); _mainView.RedrawCopies(copies); }
public void MovieCopyAdd_NotConfirmed() { //arrange _view.ConfirmNewMovieCopy().Returns(false); // юзер отказывается "Добавить новую копию фильма" var testMovieCopy = new MovieCopy(9999, "TEST", 9999); //act _presenter.AddMovieCopy(testMovieCopy); //asert Assert.AreEqual(false, _context.MoviesCopies.Any()); _view.DidNotReceive().Close(); }
public void UpdateMovieCopy() { //arrange var initialMovieCopy = new MovieCopy(9999, "Старый комментарий :(", 7777); _context.MoviesCopies.Add(initialMovieCopy); _context.SaveChanges(); var updatedMovieCopy = new MovieCopy(9999, "НОВЫЙ КОММЕНТАРИЙ!!!", 8888); //act _presenter.UpdateMovieCopy(initialMovieCopy.Id, updatedMovieCopy); var actual = _context.MoviesCopies.Single(c => c.Id == initialMovieCopy.Id); //assert Assert.AreEqual(updatedMovieCopy.Commentary, actual.Commentary); Assert.AreEqual(updatedMovieCopy.PricePerDay, actual.PricePerDay); _view.Received().RedrawCopies(Arg.Any <IQueryable <MovieCopy> >()); }
public void Run() { //arrange // добавляем и сразу же сохраняем по цепочке чтобы последующие элементы получили актуальное значение необходимого Id var testMovie = new MovieOriginal("TEST TITLE", "TEST DESCR", 9999); _context.MoviesOriginal.Add(testMovie); _context.SaveChanges(); var testMovieCopy = new MovieCopy(testMovie.Id, "TEST COMMENT", 9999); _context.MoviesCopies.Add(testMovieCopy); _context.SaveChanges(); var testCustomer = new Customer("TEST NAME"); _context.Customers.Add(testCustomer); _context.SaveChanges(); var testLeasing = new Leasing(DateTime.Now, DateTime.Now, testCustomer.Id, testMovieCopy.Id, 9999); _context.LeasedCopies.Add(testLeasing); _context.SaveChanges(); //act _presenter.Run(testLeasing.Id); //assert Assert.AreEqual(testLeasing.StartDate, _view.CurrentLeasing.StartDate); Assert.AreEqual(testLeasing.ExpectedEndDate, _view.CurrentLeasing.ExpectedEndDate); Assert.AreEqual(testLeasing.CustomerId, _view.CurrentLeasing.CustomerId); Assert.AreEqual(testLeasing.MovieCopyId, _view.CurrentLeasing.MovieCopyId); Assert.AreEqual(testLeasing.TotalPrice, _view.CurrentLeasing.TotalPrice); Assert.AreEqual(testMovieCopy.MovieId, _view.CurrentMovieCopy.MovieId); Assert.AreEqual(testMovieCopy.Commentary, _view.CurrentMovieCopy.Commentary); Assert.AreEqual(testMovieCopy.PricePerDay, _view.CurrentMovieCopy.PricePerDay); Assert.AreEqual(testMovie.Title, _view.CurrentMovie.Title); Assert.AreEqual(testMovie.Description, _view.CurrentMovie.Description); Assert.AreEqual(testMovie.YearReleased, _view.CurrentMovie.YearReleased); Assert.AreEqual(testCustomer.Name, _view.CurrentCustomer.Name); _view.Received().Show(); }
public MainForm() { InitializeComponent(); Load += (sender, args) => OnLoad?.Invoke(); newMovieButton.Click += (sender, args) => OnOpenMovie?.Invoke(); // Добавить новый фильм newMovieCopyButton.Click += (sender, args) => OnOpenMovieCopy?.Invoke(CurrentMovieId); // Добавить новую копию фильма mainMenu.Items[1].Click += (sender, args) => OnOpenCustomers?.Invoke(); // "Клиенты" mainMenu.Items[2].Click += (sender, args) => OnOpenImportMovies?.Invoke(); // "Импорт фильмов" copiesContextMenu.Items[0].Click += (sender, args) => OnOpenLeasing?.Invoke(Convert.ToInt32(copiesDgv.CurrentRow.Cells["Id"].Value)); // "Прокат" leasingContextMenu.Items[0].Click += (sender, args) => OnOpenReturn?.Invoke(Convert.ToInt32(leasingsDgv.CurrentRow.Cells["Id"].Value)); // "Вернуть" mainMenu.Items[0].TextChanged += (sender, args) => OnFilterMovies?.Invoke(mainMenu.Items[0].Text.Trim()); // Поиск фильма moviesDgv.CellEndEdit += (sender, args) => { var movieId = CurrentMovieId; var title = moviesDgv.CurrentRow.Cells["Title"].Value.ToString(); var description = moviesDgv.CurrentRow.Cells["Description"].Value.ToString(); var yearReleased = Convert.ToInt32(moviesDgv.CurrentRow.Cells["YearReleased"].Value); var updatedMovie = new MovieOriginal(title, description, yearReleased); OnUpdateMovie?.Invoke(movieId, updatedMovie); }; copiesDgv.CellEndEdit += (sender, args) => { var movieCopyId = Convert.ToInt32(copiesDgv.CurrentRow.Cells["Id"].Value); var commentary = copiesDgv.CurrentRow.Cells["Commentary"].Value.ToString(); var pricePerDay = Convert.ToInt32(copiesDgv.CurrentRow.Cells["PricePerDay"].Value); var updatedMovieCopy = new MovieCopy(Convert.ToInt32(moviesDgv.CurrentRow.Cells["Id"].Value), commentary, pricePerDay); OnUpdateMovieCopy?.Invoke(movieCopyId, updatedMovieCopy); }; moviesDgv.DataError += (sender, args) => ShowDataError(); copiesDgv.DataError += (sender, args) => ShowDataError(); moviesDgv.SelectionChanged += (sender, args) => OnMovieSelectionChanged?.Invoke(CurrentMovieId); copiesDgv.SelectionChanged += (sender, args) => OnMovieCopySelectionChanged?.Invoke(Convert.ToInt32(copiesDgv.CurrentRow.Cells["Id"].Value)); }
public void OpenLeasing() { //arrange var testMovie = new MovieOriginal("TEST", "TEST", 9999); _context.MoviesOriginal.Add(testMovie); _context.SaveChanges(); // нужно чтобы testMovieCopy получил актуальный testMovie.Id после добавления в контекст. Иначе testMovie.Id будет 0 var testMovieCopy = new MovieCopy(testMovie.Id, "TEST", 9999); _context.MoviesCopies.Add(testMovieCopy); _context.SaveChanges(); //act _presenter.OpenLeasing(testMovieCopy.Id); //assert _leasingPresenter.Received().Run(Arg.Any <MovieOriginal>(), Arg.Any <MovieCopy>()); _view.Received().RedrawCopies(Arg.Any <IQueryable <MovieCopy> >()); _view.Received().RedrawLeasings(Arg.Any <IQueryable <Leasing> >(), Arg.Any <IQueryable <Customer> >()); }
public void LeasingAdd_NotConfirmed() { //arrange _view.ConfirmNewLeasing().Returns(false); var testMovieCopy = new MovieCopy(9999, "TEST", 9999); _context.MoviesCopies.Add(testMovieCopy); _context.SaveChanges(); var testLeasing = new Leasing(DateTime.Now, DateTime.Now, 9999, testMovieCopy.Id, 9999); //act _presenter.AddLeasing(testLeasing); //assert Assert.AreEqual(true, testMovieCopy.Available); Assert.AreEqual(false, _context.LeasedCopies.Any()); _view.DidNotReceive().Close(); }
public void LeasingAdd_Confirmed() { //arrange _view.ConfirmNewLeasing().Returns(true); // юзер соглашается "Подтвердить нового пользователя" (MessageBox) var testMovieCopy = new MovieCopy(9999, "TEST", 9999); _context.MoviesCopies.Add(testMovieCopy); _context.SaveChanges(); var testLeasing = new Leasing(DateTime.Now, DateTime.Now, 9999, testMovieCopy.Id, 9999); //act _presenter.AddLeasing(testLeasing); //assert Assert.AreEqual(false, testMovieCopy.Available); Assert.AreEqual(true, _context.LeasedCopies.Any()); _view.Received().Close(); }
public void Run() { //arrange var movieTest = new MovieOriginal("TEST MOVIE", "TEST MOVIE DESCR", 9999); var movieCopyTest = new MovieCopy(1111, "TEST COMMENT", 1111); //act _presenter.Run(movieTest, movieCopyTest); //assert Assert.AreEqual(movieTest.Title, _view.CurrentMovie.Title); Assert.AreEqual(movieTest.Description, _view.CurrentMovie.Description); Assert.AreEqual(movieTest.YearReleased, _view.CurrentMovie.YearReleased); Assert.AreEqual(movieCopyTest.MovieId, _view.CurrentMovieCopy.MovieId); Assert.AreEqual(movieCopyTest.Commentary, _view.CurrentMovieCopy.Commentary); Assert.AreEqual(movieCopyTest.PricePerDay, _view.CurrentMovieCopy.PricePerDay); _view.Received().RedrawCustomers(Arg.Any <IQueryable <Customer> >()); _view.Received().Show(); }