示例#1
0
        public void RetrieveItem_Valid()
        {
            // Arrange
            var expectedId     = "RETCONTROLTEST";
            var expectedStatus = new StatusService(context).FindStatusByStatusId(18);

            retrievalRepository.Save(new Retrieval()
            {
                RetrievalId     = expectedId,
                CreatedDateTime = DateTime.Now,
                Status          = new StatusService(context).FindStatusByStatusId(12),
                Disbursements   = new List <Disbursement>()
                {
                    new Disbursement()
                    {
                        DisbursementId      = expectedId,
                        Department          = new DepartmentService(context).FindDepartmentByDepartmentCode("ENGL"),
                        CreatedDateTime     = DateTime.Now,
                        Status              = new StatusService(context).FindStatusByStatusId(7),
                        DisbursementDetails = new List <DisbursementDetail>()
                        {
                            new DisbursementDetail()
                            {
                                DisbursementId = expectedId,
                                Item           = new ItemService(context).FindItemByItemCode("E030"),
                                Bin            = "E78",
                                PlanQuantity   = 30,
                                ActualQuantity = 30,
                                Status         = new StatusService(context).FindStatusByStatusId(17),
                                ItemCode       = "E030",
                            }
                        }
                    }
                }
            });

            var controller = new RetrievalAPIController()
            {
                Request       = new HttpRequestMessage(),
                Configuration = new HttpConfiguration(),
                Context       = context,
            };

            // Act
            IHttpActionResult actionResult = controller.RetrieveItem(new ConfirmRetrievalViewModel()
            {
                RetrievalId = expectedId,
                Email       = "*****@*****.**",
                ItemCode    = "E030",
            });
            var contentResult = actionResult as OkNegotiatedContentResult <MessageViewModel>;

            // Assert
            Assert.IsNotNull(contentResult);
            Assert.IsNotNull(contentResult.Content);
            Assert.AreEqual(contentResult.Content.Message, "Successfully retrieved");
            var result = new DisbursementDetailRepository(context).FindById(expectedId, "E030");

            Assert.AreEqual(expectedStatus.Name, result.Status.Name);
        }
示例#2
0
        public void GetRetrieval_ContainsResult()
        {
            // Arrange
            var statusService = new StatusService(context);

            var expectedId       = "RETCONTROLTEST";
            var expectedQuantity = 999999;

            new RetrievalRepository(context).Save(new Retrieval()
            {
                RetrievalId     = expectedId,
                CreatedDateTime = DateTime.Now,
                Status          = statusService.FindStatusByStatusId(12),
                Disbursements   = new List <Disbursement>()
                {
                    new Disbursement()
                    {
                        DisbursementId      = expectedId,
                        Department          = new DepartmentService(context).FindDepartmentByDepartmentCode("ENGL"),
                        CreatedDateTime     = DateTime.Now,
                        Status              = statusService.FindStatusByStatusId(7),
                        DisbursementDetails = new List <DisbursementDetail>()
                        {
                            new DisbursementDetail()
                            {
                                DisbursementId = expectedId,
                                Item           = new ItemService(context).FindItemByItemCode("E030"),
                                Bin            = "E78",
                                PlanQuantity   = 30,
                                ActualQuantity = expectedQuantity,
                                Status         = statusService.FindStatusByStatusId(17),
                                ItemCode       = "E030",
                            }
                        }
                    }
                }
            });

            var controller = new RetrievalAPIController()
            {
                Request       = new HttpRequestMessage(),
                Configuration = new HttpConfiguration(),
                Context       = context,
            };

            // Act
            IHttpActionResult actionResult = controller.GetRetrieval(new ConfirmRetrievalViewModel()
            {
                RetrievalId = expectedId,
            });

            var contentResult = actionResult as OkNegotiatedContentResult <IEnumerable <RetrievalDetailByDeptViewModel> >;

            // Assert
            Assert.IsNotNull(contentResult);
            Assert.IsNotNull(contentResult.Content);
            Assert.IsTrue(contentResult.Content.Select(x => x.ActualQuantity).Contains(expectedQuantity));
        }
示例#3
0
        public void RetrieveItem_AlreadyRetrieved_BadRequest()
        {
            // Arrange
            var expectedId = "RETCONTROLTEST";

            retrievalRepository.Save(new Retrieval()
            {
                RetrievalId     = expectedId,
                CreatedDateTime = DateTime.Now,
                Status          = new StatusService(context).FindStatusByStatusId(12),
                Disbursements   = new List <Disbursement>()
                {
                    new Disbursement()
                    {
                        DisbursementId      = expectedId,
                        Department          = new DepartmentService(context).FindDepartmentByDepartmentCode("ENGL"),
                        CreatedDateTime     = DateTime.Now,
                        Status              = new StatusService(context).FindStatusByStatusId(7),
                        DisbursementDetails = new List <DisbursementDetail>()
                        {
                            new DisbursementDetail()
                            {
                                DisbursementId = expectedId,
                                Item           = new ItemService(context).FindItemByItemCode("E030"),
                                Bin            = "E78",
                                PlanQuantity   = 30,
                                ActualQuantity = 30,
                                Status         = new StatusService(context).FindStatusByStatusId(18),
                                ItemCode       = "E030",
                            }
                        }
                    }
                }
            });

            var controller = new RetrievalAPIController()
            {
                Request       = new HttpRequestMessage(),
                Configuration = new HttpConfiguration(),
                Context       = context,
            };

            // Act
            IHttpActionResult actionResult = controller.RetrieveItem(new ConfirmRetrievalViewModel()
            {
                RetrievalId = expectedId,
                Email       = "*****@*****.**",
                ItemCode    = "E030",
            });
            BadRequestErrorMessageResult badRequest = actionResult as BadRequestErrorMessageResult;

            // Assert
            Assert.IsInstanceOfType(actionResult, typeof(BadRequestErrorMessageResult));
            Assert.AreEqual("Item already retrieved", badRequest.Message);
        }
示例#4
0
        public void ConfirmRetrieval_DoesNotExist()
        {
            // Arrange
            var controller = new RetrievalAPIController()
            {
                Request       = new HttpRequestMessage(),
                Configuration = new HttpConfiguration(),
                Context       = context,
            };

            // Act
            IHttpActionResult actionResult = controller.ConfirmRetrieval(new ConfirmRetrievalViewModel()
            {
                RetrievalId = "RETCONTROLTEST",
                Email       = "*****@*****.**",
            });
            BadRequestErrorMessageResult badRequest = actionResult as BadRequestErrorMessageResult;

            // Assert
            Assert.IsInstanceOfType(actionResult, typeof(BadRequestErrorMessageResult));
            Assert.AreEqual("Retrieval does not exist", badRequest.Message);
        }
示例#5
0
        public void ConfirmRetrieval_AlreadyConfirmed_BadRequest()
        {
            // Arrange
            var requisitionRepository = new RequisitionRepository(context);
            var departmentRepository  = new DepartmentRepository(context);

            var requisition = requisitionRepository.Save(new Requisition()
            {
                RequisitionId      = "RETCONTROLTEST",
                CollectionPoint    = departmentRepository.FindById("ENGL").CollectionPoint,
                Department         = departmentRepository.FindById("ENGL"),
                CreatedDateTime    = DateTime.Now,
                RequisitionDetails = new List <RequisitionDetail>()
                {
                    new RequisitionDetail()
                    {
                        RequisitionId = "RETCONTROLTEST",
                        ItemCode      = "E030",
                        Item          = new ItemService(context).FindItemByItemCode("E030"),
                        Quantity      = 30,
                    }
                }
            });
            var retrieval = retrievalRepository.Save(new Retrieval()
            {
                RetrievalId  = "RETCONTROLTEST",
                Requisitions = new List <Requisition>()
                {
                    requisition
                },
                CreatedDateTime = DateTime.Now,
                Status          = new StatusService(context).FindStatusByStatusId(20),
            });
            var disbursement = disbursementRepository.Save(new Disbursement()
            {
                DisbursementId      = "RETCONTROLTEST",
                Department          = departmentRepository.FindById("ENGL"),
                DisbursementDetails = new List <DisbursementDetail>()
                {
                    new DisbursementDetail()
                    {
                        DisbursementId = "RETCONTROLTEST",
                        ItemCode       = "E030",
                        Item           = new ItemService(context).FindItemByItemCode("E030"),
                        PlanQuantity   = 30,
                        ActualQuantity = 30,
                        Status         = new StatusService(context).FindStatusByStatusId(18),
                    }
                },
                Retrieval       = retrieval,
                Status          = new StatusService(context).FindStatusByStatusId(7),
                CreatedDateTime = DateTime.Now,
            });
            var expectedStatus = new StatusService(context).FindStatusByStatusId(20);

            var controller = new RetrievalAPIController()
            {
                Request       = new HttpRequestMessage(),
                Configuration = new HttpConfiguration(),
                Context       = context,
            };

            // Act
            IHttpActionResult actionResult = controller.ConfirmRetrieval(new ConfirmRetrievalViewModel()
            {
                RetrievalId = "RETCONTROLTEST",
                Email       = "*****@*****.**",
            });
            BadRequestErrorMessageResult badRequest = actionResult as BadRequestErrorMessageResult;

            // Assert
            Assert.IsInstanceOfType(actionResult, typeof(BadRequestErrorMessageResult));
            Assert.AreEqual("Retrieval already confirmed", badRequest.Message);
        }
示例#6
0
        public void ConfirmRetrieval_Valid()
        {
            // Arrange
            var requisitionRepository = new RequisitionRepository(context);
            var departmentRepository  = new DepartmentRepository(context);

            var requisition = requisitionRepository.Save(new Requisition()
            {
                RequisitionId      = "RETCONTROLTEST",
                CollectionPoint    = departmentRepository.FindById("ENGL").CollectionPoint,
                Department         = departmentRepository.FindById("ENGL"),
                CreatedDateTime    = DateTime.Now,
                Status             = new StatusRepository(context).FindById(7),
                RequisitionDetails = new List <RequisitionDetail>()
                {
                    new RequisitionDetail()
                    {
                        RequisitionId = "RETCONTROLTEST",
                        ItemCode      = "E030",
                        Item          = new ItemService(context).FindItemByItemCode("E030"),
                        Quantity      = 30,
                        Status        = new StatusRepository(context).FindById(7),
                    }
                }
            });
            var retrieval = retrievalRepository.Save(new Retrieval()
            {
                RetrievalId  = "RETCONTROLTEST",
                Requisitions = new List <Requisition>()
                {
                    requisition
                },
                CreatedDateTime = DateTime.Now,
                Status          = new StatusService(context).FindStatusByStatusId(19),
            });
            var disbursement = disbursementRepository.Save(new Disbursement()
            {
                DisbursementId      = "RETCONTROLTEST",
                Department          = departmentRepository.FindById("ENGL"),
                DisbursementDetails = new List <DisbursementDetail>()
                {
                    new DisbursementDetail()
                    {
                        DisbursementId = "RETCONTROLTEST",
                        ItemCode       = "E030",
                        Item           = new ItemService(context).FindItemByItemCode("E030"),
                        PlanQuantity   = 30,
                        ActualQuantity = 30,
                        Status         = new StatusService(context).FindStatusByStatusId(18),
                    }
                },
                Retrieval       = retrieval,
                Status          = new StatusService(context).FindStatusByStatusId(7),
                CreatedDateTime = DateTime.Now,
            });
            var expectedStatus = new StatusService(context).FindStatusByStatusId(20);

            var controller = new RetrievalAPIController()
            {
                Request       = new HttpRequestMessage(),
                Configuration = new HttpConfiguration(),
                Context       = context,
            };

            // Act
            IHttpActionResult actionResult = controller.ConfirmRetrieval(new ConfirmRetrievalViewModel()
            {
                RetrievalId = "RETCONTROLTEST",
                Email       = "*****@*****.**",
            });
            var contentResult = actionResult as OkNegotiatedContentResult <MessageViewModel>;

            // Assert
            Assert.IsNotNull(contentResult);
            Assert.IsNotNull(contentResult.Content);
            Assert.AreEqual(contentResult.Content.Message, "Successfully confirmed");
            var result = new RetrievalRepository(context).FindById("RETCONTROLTEST");

            Assert.AreEqual(expectedStatus.Name, result.Status.Name);
        }
示例#7
0
        public void UpdateRetrievalFormTest()
        {
            // ARRANGE
            RetrievalAPIController retrievalAPIController = new RetrievalAPIController()
            {
                Request       = new HttpRequestMessage(),
                Configuration = new HttpConfiguration(),
                Context       = context,
            };

            string retId    = "RETRIEVAL";
            string deptId   = "COMM";
            string itemCode = "C001";
            string disbId   = "DISBURSEMENT";
            int    actual   = 99;

            Retrieval r = new Retrieval
            {
                RetrievalId     = retId,
                CreatedDateTime = DateTime.Now
            };
            Disbursement d = new Disbursement
            {
                DisbursementId      = disbId,
                Department          = departmentService.FindDepartmentByDepartmentCode(deptId),
                Retrieval           = r,
                CreatedDateTime     = DateTime.Now,
                DisbursementDetails = new List <DisbursementDetail>
                {
                    new DisbursementDetail
                    {
                        Item           = ItemRepository.FindById(itemCode),
                        PlanQuantity   = 99,
                        ActualQuantity = 0
                    }
                }
            };

            retrievalRepository.Save(r);
            disbursementRepository.Save(d);

            try
            {
                SaveJson json = new SaveJson
                {
                    ItemCode = itemCode,
                    RetId    = retId,
                    List     = new List <BreakdownByDepartment>
                    {
                        new BreakdownByDepartment
                        {
                            DeptId = deptId,
                            Actual = actual
                        }
                    }
                };

                // ACT
                retrievalAPIController.UpdateRetrievalForm(json);


                // ASSERT
                int expected = 99;

                DisbursementDetail dd;
                //using (context = new ApplicationDbContext())
                //{
                disbursementRepository = new DisbursementRepository(context);
                dd = disbursementRepository
                     .FindById(disbId)
                     .DisbursementDetails
                     .Where(x => x.ItemCode == itemCode).First();
                //}

                Assert.AreEqual(expected, dd.ActualQuantity);
            }
            finally
            {
                //using (context = new ApplicationDbContext())
                //{
                Disbursement deleteD = context.Disbursement.Where(x => x.DisbursementId == disbId).First();
                context.Disbursement.Remove(deleteD);

                Retrieval deleteR = context.Retrieval.Where(x => x.RetrievalId == retId).First();
                context.Retrieval.Remove(deleteR);
                context.SaveChanges();
                //}
            }
        }