public void CreateTest()
        {
            PartialViewResult rv = (PartialViewResult)_controller.Create();

            Assert.IsInstanceOfType(rv.Model, typeof(DataCheckResultVM));

            DataCheckResultVM vm = rv.Model as DataCheckResultVM;
            DataCheckResult   v  = new DataCheckResult();

            v.DataCheckID    = AddDataCheck();
            v.DataCheckRunID = AddDataCheckRun();
            v.CreatedDate    = "lCty6QGB";
            v.LeftCount      = 93;
            v.RightCount     = 31;
            v.ID             = 31;
            vm.Entity        = v;
            _controller.Create(vm);

            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
            {
                var data = context.Set <DataCheckResult>().FirstOrDefault();

                Assert.AreEqual(data.CreatedDate, "lCty6QGB");
                Assert.AreEqual(data.LeftCount, 93);
                Assert.AreEqual(data.RightCount, 31);
                Assert.AreEqual(data.ID, 31);
                Assert.AreEqual(data.CreateBy, "user");
                Assert.IsTrue(DateTime.Now.Subtract(data.CreateTime.Value).Seconds < 10);
            }
        }
        public void DeleteTest()
        {
            DataCheckResult v = new DataCheckResult();

            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
            {
                v.DataCheckID    = AddDataCheck();
                v.DataCheckRunID = AddDataCheckRun();
                v.CreatedDate    = "lCty6QGB";
                v.LeftCount      = 93;
                v.RightCount     = 31;
                v.ID             = 31;
                context.Set <DataCheckResult>().Add(v);
                context.SaveChanges();
            }

            PartialViewResult rv = (PartialViewResult)_controller.Delete(v.ID.ToString());

            Assert.IsInstanceOfType(rv.Model, typeof(DataCheckResultVM));

            DataCheckResultVM vm = rv.Model as DataCheckResultVM;

            v         = new DataCheckResult();
            v.ID      = vm.Entity.ID;
            vm.Entity = v;
            _controller.Delete(v.ID.ToString(), null);

            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
            {
                Assert.AreEqual(context.Set <DataCheckResult>().Count(), 0);
            }
        }
        public void EditTest()
        {
            DataCheckResult v = new DataCheckResult();

            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
            {
                v.DataCheckID    = AddDataCheck();
                v.DataCheckRunID = AddDataCheckRun();
                v.CreatedDate    = "lCty6QGB";
                v.LeftCount      = 93;
                v.RightCount     = 31;
                v.ID             = 31;
                context.Set <DataCheckResult>().Add(v);
                context.SaveChanges();
            }

            PartialViewResult rv = (PartialViewResult)_controller.Edit(v.ID.ToString());

            Assert.IsInstanceOfType(rv.Model, typeof(DataCheckResultVM));

            DataCheckResultVM vm = rv.Model as DataCheckResultVM;

            v    = new DataCheckResult();
            v.ID = vm.Entity.ID;

            v.CreatedDate = "piqFa";
            v.LeftCount   = 42;
            v.RightCount  = 21;
            vm.Entity     = v;
            vm.FC         = new Dictionary <string, object>();

            vm.FC.Add("Entity.DataCheckID", "");
            vm.FC.Add("Entity.DataCheckRunID", "");
            vm.FC.Add("Entity.CreatedDate", "");
            vm.FC.Add("Entity.LeftCount", "");
            vm.FC.Add("Entity.RightCount", "");
            vm.FC.Add("Entity.ID", "");
            _controller.Edit(vm);

            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
            {
                var data = context.Set <DataCheckResult>().FirstOrDefault();

                Assert.AreEqual(data.CreatedDate, "piqFa");
                Assert.AreEqual(data.LeftCount, 42);
                Assert.AreEqual(data.RightCount, 21);
                Assert.AreEqual(data.UpdateBy, "user");
                Assert.IsTrue(DateTime.Now.Subtract(data.UpdateTime.Value).Seconds < 10);
            }
        }
        // Check if the minimum data requirements has been met. This is defined by the requirements.
        private DataCheckResult CheckDataFileMeetsMinimumRequirements(List <SharePrice> shareData)
        {
            try
            {
                var result = new DataCheckResult
                {
                    passed   = true,
                    comments = ""
                };

                // Business rule 1: at least 3 historical data for 3 units
                int unitCount = shareData.Select(x => x.unitID).Distinct().Count();

                if (unitCount < 3)
                {
                    result.passed    = false;
                    result.comments += "Data for 3 or more units required." + Environment.NewLine;
                }

                // Business rule 2: at least 7 days of historical data for each unit
                int numDaysPerUnit = shareData.GroupBy(x => x.unitID).Select(g => new
                {
                    unitId = g.Key,
                    count  = g.Count()
                }).Min(x => x.count);

                if (numDaysPerUnit < 7)
                {
                    result.passed    = false;
                    result.comments += "Minimum 7 days of data required for each unit." + Environment.NewLine;
                }

                result.comments = result.comments.Trim();

                return(result);
            }
            catch (Exception ex)
            {
                return(new DataCheckResult
                {
                    passed = false,
                    comments = ex.Message
                });
            }
        }
示例#5
0
        public ProcessResult <TData> Process <TData>(string inputData) where TData : class
        {
            ProcessResult <TData> processResult = new ProcessResult <TData>()
            {
                Success     = false,
                CheckResult = DataCheckResult.Undefined
            };

            DataCheckResult checkResult = dataChecker.CheckData(inputData);

            if (checkResult != DataCheckResult.DataAreWellFormed)
            {
                processResult.CheckResult = checkResult;
                return(processResult);
            }

            processResult = dataParser.Parse <TData>(inputData);
            return(processResult);
        }
        public void DetailsTest()
        {
            DataCheckResult v = new DataCheckResult();

            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
            {
                v.DataCheckID    = AddDataCheck();
                v.DataCheckRunID = AddDataCheckRun();
                v.CreatedDate    = "lCty6QGB";
                v.LeftCount      = 93;
                v.RightCount     = 31;
                v.ID             = 31;
                context.Set <DataCheckResult>().Add(v);
                context.SaveChanges();
            }
            PartialViewResult rv = (PartialViewResult)_controller.Details(v.ID.ToString());

            Assert.IsInstanceOfType(rv.Model, typeof(IBaseCRUDVM <TopBasePoco>));
            Assert.AreEqual(v.ID, (rv.Model as IBaseCRUDVM <TopBasePoco>).Entity.GetID());
        }
        public void BatchDeleteTest()
        {
            DataCheckResult v1 = new DataCheckResult();
            DataCheckResult v2 = new DataCheckResult();

            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
            {
                v1.DataCheckID    = AddDataCheck();
                v1.DataCheckRunID = AddDataCheckRun();
                v1.CreatedDate    = "lCty6QGB";
                v1.LeftCount      = 93;
                v1.RightCount     = 31;
                v1.ID             = 31;
                v2.DataCheckID    = v1.DataCheckID;
                v2.DataCheckRunID = v1.DataCheckRunID;
                v2.CreatedDate    = "piqFa";
                v2.LeftCount      = 42;
                v2.RightCount     = 21;
                context.Set <DataCheckResult>().Add(v1);
                context.Set <DataCheckResult>().Add(v2);
                context.SaveChanges();
            }

            PartialViewResult rv = (PartialViewResult)_controller.BatchDelete(new string[] { v1.ID.ToString(), v2.ID.ToString() });

            Assert.IsInstanceOfType(rv.Model, typeof(DataCheckResultBatchVM));

            DataCheckResultBatchVM vm = rv.Model as DataCheckResultBatchVM;

            vm.Ids = new string[] { v1.ID.ToString(), v2.ID.ToString() };
            _controller.DoBatchDelete(vm, null);

            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
            {
                Assert.AreEqual(context.Set <DataCheckResult>().Count(), 0);
            }
        }