Beispiel #1
0
        public void TestIndexHasSearch()
        {
            dynamic           controller      = new IssuedItemsController(mock.Object);
            var               viewResult      = controller.Index(searchString: "Test") as ViewResult;
            List <IssuedItem> recordsReturned = (List <IssuedItem>)viewResult.Model;
            List <IssuedItem> allRecords      = mock.Object.GetAllIssuedItems();

            CollectionAssert.IsSubsetOf(recordsReturned, allRecords);
        }
Beispiel #2
0
        public void TestEditCallsUpdate()
        {
            dynamic controller = new IssuedItemsController(mock.Object);

            mock.Setup(m => m.Update(It.IsAny <IssuedItem>()));

            controller.Edit(accessionRecords[0]);
            mock.Verify(m => m.Update(It.IsAny <IssuedItem>()), Times.Once);
        }
Beispiel #3
0
        public void TestIndexHasPagination()
        {
            dynamic           controller      = new IssuedItemsController(mock.Object);
            var               viewResult      = controller.Index(page: 3) as ViewResult;
            List <IssuedItem> recordsReturned = (List <IssuedItem>)viewResult.Model;
            List <IssuedItem> allRecords      = mock.Object.GetAllIssuedItems();

            Assert.IsTrue(recordsReturned.Count <= 10);
        }
Beispiel #4
0
        public void TestSetLateFeePaid()
        {
            dynamic controller = new IssuedItemsController(mock.Object);

            mock.Setup(m => m.Update(It.IsAny <IssuedItem>()));

            var result = controller.SetDateReturned(id: 1) as RedirectToRouteResult;

            mock.Verify(m => m.Update(It.IsAny <IssuedItem>()), Times.Once);
            Assert.AreEqual("Details", result.RouteValues["action"]);
        }
Beispiel #5
0
        public void TestEditHasProperModel()
        {
            dynamic controller = new IssuedItemsController(mock.Object);
            var     viewResult = controller.Edit(id: 1) as ViewResult;

            var model = viewResult.Model as IssuedItem;

            Assert.IsNotNull(model.AccessionRecord);
            Assert.IsNotNull(model.Member);
            Assert.IsNotNull(model.IssueDate);
        }
Beispiel #6
0
        public void TestCreateHasProperModel()
        {
            dynamic controller = new IssuedItemsController(mock.Object);
            var     result     = controller.Create(itemid: 10) as ViewResult;
            var     newRecord  = result.Model as IssuedItem;

            Assert.IsNotNull(newRecord.IssueDate);
            Assert.IsNotNull(newRecord.AccessionRecord);
            Assert.IsNotNull(newRecord.Member);
            Assert.IsFalse(newRecord.IsReturned);
        }
        public void TestReturnedIsSet()
        {
            dynamic controller = new IssuedItemsController(mock.Object);

            mock.Setup(m => m.Update(It.IsAny <IssuedItem>()));
            mock.Setup(m => m.GetById(It.IsAny <int>())).Returns(issuedItems[0]);

            var result = controller.SetReturned(id: 1) as RedirectToRouteResult;

            mock.Verify(m => m.Update(It.IsAny <IssuedItem>()), Times.Once);
            Assert.AreEqual("Details", result.RouteValues["action"]);
            Assert.AreEqual(issuedItems[0].IssuedItemId, result.RouteValues["id"]);
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        public void TestIndexHasItems()
        {
            IssuedItemsController controller = new IssuedItemsController(mock.Object);

            var viewResult = controller.Index(searchString: "") as ViewResult;

            IEnumerable <IssuedItem> recordsReturned = (IEnumerable <IssuedItem>)
                                                       viewResult.Model;

            // Note: I suppose this should only check against required properties,
            // but maybe checking all properties is a better idea, I don't know.
            foreach (var issuedItem in recordsReturned)
            {
                Assert.IsNotNull(issuedItem.IssueDate);
                Assert.IsNotNull(issuedItem.Member);
                Assert.IsNotNull(issuedItem.AccessionRecord);
            }
        }
Beispiel #10
0
        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);
        }
Beispiel #11
0
        public void TestCreateTakesItemId()
        {// this should take an item id, not ar id.
            dynamic controller = new IssuedItemsController(mock.Object);

            controller.Create(itemid: 10);
        }