public ActionResult Delete(int id) { var repo = new Repo(); DVD dvd = repo.FillInDetails(id); return View(dvd); }
public void AddRating_NotBoundToBorrowHistory(int userID, int rating, string note) { DVD toRate = new DVD() { Title = "RateThis", CastMembers = new List<Cast>() }; Settings set = new Settings(connectionString); Repo repo = new Repo(); int newID = repo.AddDVD(toRate); repo.AddRating(newID, userID, rating, note); DVD result = repo.FillInDetails(newID); Assert.AreEqual(rating, result.History[0].DVDRating); Assert.AreEqual(note, result.History[0].DVDNote); using (SqlConnection cn = new SqlConnection(connectionString)) { DynamicParameters p = new DynamicParameters(); p.Add("dvdID", newID); cn.Query("EraseDVDRecord", p, commandType: CommandType.StoredProcedure); } }
public void FillInDetails_DetailMatch_Top1_Test() { Settings set = new Settings(connectionString); Repo repo = new Repo(); DVD expectedDetails = new DVD(); using (SqlConnection cn = new SqlConnection(connectionString)) { SqlCommand cmd = new SqlCommand(); cmd.CommandText = "SELECT TOP 1 d.*, ar.AverageRating FROM DVDs d FULL JOIN(SELECT AVG(r.DVDRating) AS AverageRating, r.dvdID FROM Ratings r GROUP BY r.dvdID) AS ar on ar.dvdID = d.dvdID WHERE Deleted IS NULL OR Deleted <> 1"; cmd.Connection = cn; cn.Open(); using (SqlDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) { expectedDetails.dvdID = (int)dr["dvdID"]; expectedDetails.Title = dr["Title"].ToString(); expectedDetails.ReleaseDate = DateTime.Parse(dr["ReleaseDate"].ToString()); expectedDetails.MPAA = dr["MPAA"].ToString(); expectedDetails.Studio = dr["Studio"].ToString(); expectedDetails.AverageRating = (int)dr["AverageRating"]; } } } DVD dvd_detailed = repo.FillInDetails(1); Assert.AreEqual(expectedDetails.dvdID, dvd_detailed.dvdID); Assert.AreEqual(expectedDetails.AverageRating, dvd_detailed.AverageRating); Assert.AreEqual(expectedDetails.MPAA, dvd_detailed.MPAA); Assert.AreEqual(expectedDetails.ReleaseDate, dvd_detailed.ReleaseDate); Assert.AreEqual(expectedDetails.Studio, dvd_detailed.Studio); }