public void TestGetDueDate() { Member studentMember = new Member() { MemberType = MEMBERTYPE.STUDENT }; Member facultyMember = new Member() { MemberType = MEMBERTYPE.FACULTY }; IssuedItem studentItem = new IssuedItem() { AccessionRecord = accessionRecords[0], IssuedItemId = 21, Member = studentMember }; IssuedItem facultyItem = new IssuedItem() { AccessionRecord = accessionRecords[0], IssuedItemId = 22, Member = facultyMember }; dynamic service = new IssuedItemService(accRecMock.Object); DateTime returnDateStudent = service.GetDueDate(studentItem); DateTime returnDateFaculty = service.GetDueDate(facultyItem); // Student due date should be 7 days from today. Assert.IsTrue(returnDateStudent.Subtract(studentItem.IssueDate).Days == 7); // Faculty due date should be 90 days from now Assert.IsTrue(returnDateFaculty.Subtract(facultyItem.IssueDate).Days == 90); }
public void TestGetLateFee() { int lateFee = 5; Member studentMember = new Member() { MemberType = MEMBERTYPE.STUDENT }; DateTime tenDaysAgo = DateTime.Now.Subtract(TimeSpan.FromDays(10)); IssuedItem someItem = new IssuedItem() { AccessionRecord = accessionRecords[0], IssuedItemId = 21, Member = studentMember, LateFeePerDay = lateFee, IssueDate = tenDaysAgo // Setting the issueDate to 10 days ago makes the number of late days to be // 3 for a student member. }; dynamic service = new IssuedItemService(accRecMock.Object); // Number of days from due date that have passed i.e. how may days ago // was the due date int lateDays = DateTime.Now.Subtract(service.GetDueDate(someItem)).Days; Assert.AreEqual(lateFee * lateDays, service.GetLateFee(someItem)); }
public ActionResult SetLateFeePaid(int id) { IssuedItem issuedItem = service.GetById(id); issuedItem.IsLateFeePaid = true; return(RedirectToAction("Details", new { id = issuedItem.IssuedItemId })); }
public ActionResult DeleteConfirmed(int id) { IssuedItem issuedItem = db.IssuedItems.Find(id); db.IssuedItems.Remove(issuedItem); db.SaveChanges(); return(RedirectToAction("Index")); }
// GET: IssuedItems/Create public ActionResult Create(int itemid) { IssuedItem newRecord = new IssuedItem(); newRecord.AccessionRecord = service.GetRandomIssuableAccRecord(itemid); newRecord.IssueDate = DateTime.Now.Date; newRecord.IsReturned = false; return(View(newRecord)); }
public ActionResult SetDateReturned(int id) { IssuedItem issuedItem = service.GetById(id); issuedItem.DateReturned = service.GetDueDate(issuedItem); service.Update(issuedItem); return(RedirectToAction("Details", new { id = issuedItem.IssuedItemId })); }
public ActionResult Edit([Bind(Include = "IssuedItemId,IssueDate,LateFeePerDay")] IssuedItem issuedItem) { if (ModelState.IsValid) { db.Entry(issuedItem).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(issuedItem)); }
public ActionResult Create([Bind(Include = "IssuedItemId,IssueDate,LateFeePerDay")] IssuedItem issuedItem) { if (ModelState.IsValid) { db.IssuedItems.Add(issuedItem); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(issuedItem)); }
public void TestIssuedItemDefaults() { DateTime currentDate = DateTime.Now.Date; IssuedItem issuedItem = new IssuedItem(); Assert.AreEqual(currentDate.ToString("dd/MM/yyyy"), issuedItem.IssueDate.ToString("dd/MM/yyyy")); Assert.IsFalse(issuedItem.IsReturned); Assert.IsNull(issuedItem.IsLateFeePaid); }
public int GetLateFee(IssuedItem issuedItem) { DateTime currentDate = DateTime.Now.Date; DateTime dueDate = GetDueDate(issuedItem); int i = currentDate.Subtract(dueDate).Days; Debug.WriteLine(GetDueDate(issuedItem).ToString("dd/MM/yyyy")); return(i * issuedItem.LateFeePerDay); }
// GET: IssuedItems/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } IssuedItem issuedItem = db.IssuedItems.Find(id); if (issuedItem == null) { return(HttpNotFound()); } return(View(issuedItem)); }
public DateTime GetDueDate(IssuedItem issuedItem) { DateTime retval = DateTime.Now; if (issuedItem.Member.MemberType == MEMBERTYPE.FACULTY) { retval = issuedItem.IssueDate.AddDays(90).Date; } else if (issuedItem.Member.MemberType == MEMBERTYPE.STUDENT) { retval = issuedItem.IssueDate.AddDays(7).Date; } return(retval); }
public void TestCreateWorks() { // Set up a fake GetRandomIssuableAccRecord() and make sure it's called. // smock.Setup(m => m.GetRandomIssuableAccRecord()).Returns(accessionRecords[0]); var controller = new IssuedItemsController(mock.Object); IssuedItem toAdd = new IssuedItem { AccessionRecord = accessionRecords[0], Member = member, IssuedItemId = 15, IssueDate = DateTime.Now.Date }; controller.Create(toAdd); // Make sure that the Create method calls a GetAllIssueableAccRecords() mock.Verify(m => m.GetRandomIssuableAccRecord(It.IsAny <int>()), Times.Once); // Test that it calls the service.Add() method, which it doesn't by default mock.Verify(m => m.Add(It.IsAny <IssuedItem>()), Times.Once); }
public void TestGetLateFee() { int lateFee = 5; IssuedItem someItem = new IssuedItem() { AccessionRecord = accessionRecords[0], IssuedItemId = 21, Member = member, LateFeePerDay = lateFee }; dynamic service = new IssuedItemService(accRecMock.Object); DateTime returnDateStudent = service.GetDueDate(someItem).ToString("dd/MM/yyyy"); DateTime tenDaysLate = returnDateStudent.Add(TimeSpan.FromDays(10)); Assert.IsTrue(service.GetLateFee(someItem) == lateFee * 10); }
public ActionResult Create([Bind(Include = "IssuedItemId,IssueDate,LateFeePerDay,Member,AccessionRecord")] IssuedItem issuedItem) { if (ModelState.IsValid) { if (memberService.GetMemberById(issuedItem.Member.MemberId) == null) { ModelState.AddModelError("Member", "The Member ID does not exist."); } else { service.Add(issuedItem); return(RedirectToAction("Index")); } } return(View(issuedItem)); }
public void TestIssuedItemModelValidation() { Item item = new Item { Title = "Item To issue", ItemId = 1 }; IssuedItem issuedItem = new IssuedItem() { LateFeePerDay = 0 }; var results = GetValidationErrorList(issuedItem); // The results.Any part returns true of any object in the results // list has a MemberNames property which contains the word "Member" // and the others Assert.IsTrue(results.Any(v => v.MemberNames.Contains("Member"))); Assert.IsTrue(results.Any(v => v.MemberNames.Contains("AccessionRecord"))); Assert.IsTrue(results.Any(v => v.MemberNames.Contains("IssueDate"))); }
public void TestCreateChecksMemberId() { var memberServiceMock = new Mock <IMemberService>(); dynamic controller = new IssuedItemsController(mock.Object, memberServiceMock.Object); IssuedItem itemToValidate = new IssuedItem() { AccessionRecord = accessionRecords[0], IssueDate = DateTime.Now.Date, Member = new Member() { MemberId = -1 } }; var result = controller.Create(itemToValidate) as ViewResult; // Make sure create calls GetMemberById memberServiceMock.Verify(m => m.GetMemberById(It.IsAny <int?>()), Times.Once); // Make sure that errors for the Member field exist Assert.IsNotNull(result.ViewData.ModelState["Member"].Errors); }