コード例 #1
0
        public void Test1()
        {
            int                            id;
            DateTime                       now, startTime, endTime;
            ExaminationTask                et;
            ExaminationPaperTemplate       ept;
            UExaminationTask_Accessor      uet;
            GeneratePaperTemplate_Accessor gpt = new GeneratePaperTemplate_Accessor();
            ResponseJson                   resJson;
            Object                         expected, actual;

            #region 部署测试数据

            now = DateTime.Now;
            uet = new UExaminationTask_Accessor();

            startTime = now.AddSeconds(5);
            endTime   = startTime.AddHours(1);
            endTime   = new DateTime(1970, 1, 1, endTime.Hour, endTime.Minute, endTime.Second);
            id        = new Utility().GetETId();
            et        = new ExaminationTask
            {
                ET_Id      = id,
                ET_Name    = "单元测试预定任务" + id,
                ET_Enabled = (Byte)ExaminationTaskStatus.Disabled,
                ET_Type    = (Byte)ExaminationTaskType.Examination,
                ET_ParticipatingDepartment = "[6,9]",
                ET_Attendee              = "[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,39,40,41,42,43,44,45]",
                ET_StatisticType         = (Byte)StatisticType.Score,
                ET_TotalScore            = 100,
                ET_TotalNumber           = 10,
                ET_Mode                  = (Byte)ExaminationTaskMode.Custom,
                ET_AutoType              = (Byte)AutoType.Custom,
                ET_AutoOffsetDay         = 0,
                ET_DifficultyCoefficient = 0,
                ET_AutoClassifies        = "[]",
                ET_AutoRatio             = "[{\"type\":\"单选题\",\"percent\":0.2},{\"type\":\"多选题\",\"percent\":0.2},{\"type\":\"判断题\",\"percent\":0.2},{\"type\":\"公文改错题\",\"percent\":0.1},{\"type\":\"计算题\",\"percent\":0.1},{\"type\":\"案例分析题\",\"percent\":0.1},{\"type\":\"问答题\",\"percent\":0.1}]",
                ET_StartTime             = startTime,
                ET_EndTime               = endTime,
                ET_ContinuedDays         = 5,
                ET_TimeSpan              = 1,
                ET_PaperTemplates        = "[]",
                ET_Questions             = "[3,4,5,6,7,8,9,10,11,12]",
                ET_Remark                = "",
                ET_AddTime               = now,
                ET_Status                = (Byte)Status.Available
            };
            olsEni.Entry(et).State = EntityState.Added;

            if (0 == olsEni.SaveChanges())
            {
                Assert.Fail("部署测试数据失败1。");
            }

            uet.AddPaperTemplateAndQuestionTemplate(et);
            #endregion

            // 测试开始任务操作是否正常
            expected = ResponseStatus.Success;
            resJson  = uet.SetExaminationTaskStatus(et.ET_Id, ExaminationTaskStatus.Enabled);
            actual   = resJson.status;
            Assert.AreEqual(expected, actual);

            // 任务是否开启
            Thread.Sleep(6 * 1000);
            new ChangePaperTemplateStatus_Accessor().Change();
            ept      = olsEni.ExaminationPaperTemplates.Where(m => m.ET_Id == et.ET_Id).Take(1).ToList()[0];
            expected = (Byte)PaperTemplateStatus.Doing;
            actual   = ept.EPT_PaperTemplateStatus;
            Assert.AreEqual(expected, actual);

            // 结束时间设置是否正常
            startTime = startTime.AddDays(et.ET_ContinuedDays - 1);
            expected  = new DateTime(startTime.Year, startTime.Month, startTime.Day, endTime.Hour, endTime.Minute, endTime.Second);
            actual    = ept.EPT_EndTime;
            Assert.AreEqual(expected, actual);
        }
コード例 #2
0
        public void SelectQuestionsWithScoreTest()
        {
            GeneratePaperTemplate_Accessor target = new GeneratePaperTemplate_Accessor();
            List<AutoRatio> ratios;
            int totalScore;
            List<Question> qs;
            Object expected, actual;

            actual = null;

            #region 无备选试题
            ratios = new List<AutoRatio>();
            ratios.Add(new AutoRatio("单选题", 0.2));
            ratios.Add(new AutoRatio("多选题", 0.2));
            ratios.Add(new AutoRatio("判断题", 0.2));
            ratios.Add(new AutoRatio("公文改错题", 0.1));
            ratios.Add(new AutoRatio("计算题", 0.1));
            ratios.Add(new AutoRatio("案例分析题", 0.1));
            ratios.Add(new AutoRatio("问答题", 0.1));

            totalScore = 100;

            qs = new List<Question>();

            expected = "“单选题”没有备选试题。";
            try
            {
                target.SelectQuestionsWithScore(ratios, totalScore, qs);
            }
            catch (Exception ex)
            {
                actual = ex;
            }

            Assert.AreEqual(expected, ((Exception)actual).Message);
            actual = null;
            #endregion

            #region 备选试题总分小于类型总分
            ratios = new List<AutoRatio>();
            ratios.Add(new AutoRatio("单选题", 0.2));
            ratios.Add(new AutoRatio("多选题", 0.2));
            ratios.Add(new AutoRatio("判断题", 0.2));
            ratios.Add(new AutoRatio("公文改错题", 0.1));
            ratios.Add(new AutoRatio("计算题", 0.1));
            ratios.Add(new AutoRatio("案例分析题", 0.1));
            ratios.Add(new AutoRatio("问答题", 0.1));

            totalScore = 100;

            qs = olsEni.Questions.Where(m => m.Q_Type == "单选题" && m.Q_Status == (Byte)Status.Available).Take(1).ToList();

            expected = "“单选题”备选试题总分小于类型总分。";
            try
            {
                target.SelectQuestionsWithScore(ratios, totalScore, qs);
            }
            catch (Exception ex)
            {
                actual = ex;
            }

            Assert.AreEqual(expected, ((Exception)actual).Message);
            actual = null;
            #endregion

            #region [已注释]超过指定重复次数
            /*ratios = new List<AutoRatio>();
            ratios.Add(new AutoRatio("单选题", 0.2));
            ratios.Add(new AutoRatio("多选题", 0.2));
            ratios.Add(new AutoRatio("判断题", 0.2));
            ratios.Add(new AutoRatio("公文改错题", 0.1));
            ratios.Add(new AutoRatio("计算题", 0.1));
            ratios.Add(new AutoRatio("案例分析题", 0.1));
            ratios.Add(new AutoRatio("问答题", 0.1));

            totalScore = 100;

            qs = olsEni.Questions.Where(m => m.Q_Type == "单选题" && m.Q_Status == (Byte)Status.Available).Take(1).ToList();

            expected = "随机选取试题失败。";
            try
            {
                target.SelectQuestionsWithScore(ratios, totalScore, qs);
            }
            catch (Exception ex)
            {
                actual = ex;
            }

            Assert.AreEqual(expected, ((Exception)actual).Message);
            actual = null;*/
            #endregion

            #region [已注释]无法减去溢出分数
            /*ratios = new List<AutoRatio>();
            ratios.Add(new AutoRatio("单选题", 0.2));
            ratios.Add(new AutoRatio("多选题", 0.2));
            ratios.Add(new AutoRatio("判断题", 0.2));
            ratios.Add(new AutoRatio("公文改错题", 0.1));
            ratios.Add(new AutoRatio("计算题", 0.1));
            ratios.Add(new AutoRatio("案例分析题", 0.1));
            ratios.Add(new AutoRatio("问答题", 0.1));

            totalScore = 100;

            qs = olsEni.Questions.Where(m => m.Q_Status == (Byte)Status.Available).ToList();

            expected = "无法减去溢出分数。";
            try
            {
                target.SelectQuestionsWithScore(ratios, totalScore, qs);
            }
            catch (Exception ex)
            {
                actual = ex;
            }

            Debug.WriteLine(((Exception)actual).Data["Info"]);
            Assert.AreEqual(expected, ((Exception)actual).Message);
            actual = null;*/
            #endregion

            #region 正常减去溢出分数
            ratios = new List<AutoRatio>();
            ratios.Add(new AutoRatio("单选题", 0.2));
            ratios.Add(new AutoRatio("多选题", 0.2));
            ratios.Add(new AutoRatio("判断题", 0.2));
            ratios.Add(new AutoRatio("公文改错题", 0.1));
            ratios.Add(new AutoRatio("计算题", 0.1));
            ratios.Add(new AutoRatio("案例分析题", 0.1));
            ratios.Add(new AutoRatio("问答题", 0.1));

            totalScore = 100;

            qs = olsEni.Questions.Where(m => m.Q_Status == (Byte)Status.Available).ToList();

            expected = 100;
            actual = target.SelectQuestionsWithScore(ratios, totalScore, qs);

            Assert.AreEqual(expected, ((List<Question>)actual).Sum(m => m.Q_Score));

            Debug.WriteLine("Question Score:");
            foreach (var q in ((List<Question>)actual))
            {
                Debug.WriteLine("    " + q.Q_Score);
            }
            actual = null;
            #endregion

            #region 是否能避免重复
            ratios = new List<AutoRatio>();
            ratios.Add(new AutoRatio("单选题", 0.2));
            ratios.Add(new AutoRatio("多选题", 0.2));
            ratios.Add(new AutoRatio("判断题", 0.2));
            ratios.Add(new AutoRatio("公文改错题", 0.1));
            ratios.Add(new AutoRatio("计算题", 0.1));
            ratios.Add(new AutoRatio("案例分析题", 0.1));
            ratios.Add(new AutoRatio("问答题", 0.1));

            totalScore = 100;

            qs = olsEni.Questions.Where(m => m.Q_Status == (Byte)Status.Available).ToList();

            expected = 100;
            actual = target.SelectQuestionsWithScore(ratios, totalScore, qs);

            Debug.WriteLine("Question Id:");
            foreach (var q in ((List<Question>)actual))
            {
                Debug.WriteLine("    " + q.Q_Id);
                if (((List<Question>)actual).Where(m => m.Q_Id == q.Q_Id).Count() > 1)
                {
                    Assert.Fail("未能避免重复。");
                }
            }
            Assert.AreEqual(expected, ((List<Question>)actual).Sum(m => m.Q_Score));

            actual = null;
            #endregion
        }
コード例 #3
0
        public void ChangeTest()
        {
            Int32                                   id, epId, epqId;
            DateTime                                now, startTime;
            ExaminationTask                         et;
            ExaminationPaperTemplate                ept;
            UExaminationTask                        uet;
            GeneratePaperTemplate_Accessor          gpt    = new GeneratePaperTemplate_Accessor();
            ChangePaperStatus                       target = new ChangePaperStatus();
            ResponseJson                            resJson;
            ExaminationPaper                        ep;
            ExaminationPaperQuestion                epq;
            Object                                  expected, actual;
            List <ExaminationPaperTemplateQuestion> eptqs;

            #region 部署测试数据

            now = DateTime.Now;
            uet = new UExaminationTask();

            startTime = new DateTime(1970, 1, 1, now.AddHours(1).Hour, now.Minute, 0);
            id        = new Utility().GetETId();
            et        = new ExaminationTask
            {
                ET_Id      = id,
                ET_Name    = "单元测试每日任务" + id,
                ET_Enabled = (Byte)ExaminationTaskStatus.Enabled,
                ET_Type    = (Byte)ExaminationTaskType.Examination,
                ET_ParticipatingDepartment = "[6,9]",
                ET_Attendee              = "[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,39,40,41,42,43,44,45]",
                ET_StatisticType         = (Byte)StatisticType.Score,
                ET_TotalScore            = 100,
                ET_TotalNumber           = 10,
                ET_Mode                  = (Byte)ExaminationTaskMode.Auto,
                ET_AutoType              = (Byte)AutoType.Day,
                ET_AutoOffsetDay         = 0,
                ET_DifficultyCoefficient = 0,
                ET_AutoClassifies        = "[\"综合、公文、绩效知识(90题)\",\"所得税知识(180题)\",\"营业税知识(60题)\",\"其他地方税知识(180题)\",\"税收征管法、相关法律法规及征管制度(253题)\",\"规费知识(130题)\",\"纳税服务知识(95题)\"]",
                ET_AutoRatio             = "[{\"type\":\"单选题\",\"percent\":0.2},{\"type\":\"多选题\",\"percent\":0.2},{\"type\":\"判断题\",\"percent\":0.2},{\"type\":\"公文改错题\",\"percent\":0},{\"type\":\"计算题\",\"percent\":0},{\"type\":\"案例分析题\",\"percent\":0},{\"type\":\"问答题\",\"percent\":0}]",
                ET_StartTime             = startTime,
                ET_EndTime               = startTime,
                ET_TimeSpan              = 0,
                ET_PaperTemplates        = "[]",
                ET_Questions             = "[]",
                ET_Remark                = "",
                ET_AddTime               = now,
                ET_Status                = (Byte)Status.Available
            };
            olsEni.Entry(et).State = EntityState.Added;

            if (0 == olsEni.SaveChanges())
            {
                Assert.Fail("部署测试数据失败1。");
            }

            // 生成试卷模板数据
            uet     = new UExaminationTask();
            resJson = gpt.Generate();
            if (ResponseStatus.Error == resJson.status || resJson.message != "")
            {
                Assert.Fail("部署测试数据失败3。" + resJson.message);
            }

            Thread.Sleep(10 * 1000);

            ept = olsEni.ExaminationPaperTemplates.SingleOrDefault(m => m.ET_Id == id);
            if (null == ept)
            {
                Assert.Fail("部署测试数据失败4。");
            }

            ept.EPT_PaperTemplateStatus = (Byte)PaperTemplateStatus.Done;

            if (0 == olsEni.SaveChanges())
            {
                Assert.Fail("部署测试数据失败2。");
            }

            // 添加试卷
            epId = new Utility().GetEPId();
            ep   = new ExaminationPaper
            {
                EP_Id          = epId,
                ET_Id          = ept.ET_Id,
                EPT_Id         = ept.EPT_Id,
                EP_PaperStatus = (Byte)PaperStatus.Doing,
                EP_EndTime     = ept.EPT_EndTime,
                EP_TimeSpan    = ept.EPT_TimeSpan,
                EP_UserId      = 1,
                EP_UserName    = "",
                EP_Score       = -1,
                EP_Remark      = "",
                EP_AddTime     = now,
                EP_Status      = (Byte)Status.Available
            };

            olsEni.Entry(ep).State = EntityState.Added;
            olsEni.SaveChanges();

            // 添加答题数据
            epqId = new Utility().GetEPQId();
            eptqs = olsEni.ExaminationPaperTemplateQuestions.Where(m => m.EPT_Id == ept.EPT_Id).ToList();

            foreach (var eptq in eptqs)
            {
                epq = new ExaminationPaperQuestion
                {
                    EPQ_Id        = epqId,
                    EPQ_Answer    = eptq.EPTQ_ModelAnswer,
                    EPQ_Exactness = (Byte)AnswerStatus.Unset,
                    EPQ_Critique  = null,
                    EPQ_AddTime   = now,
                    EP_Id         = epId,
                    EPTQ_Id       = eptq.EPTQ_Id
                };
                olsEni.Entry(epq).State = EntityState.Added;

                epqId += 1;
            }
            olsEni.SaveChanges();
            #endregion

            expected = ResponseStatus.Success;
            actual   = target.Change();

            Assert.AreEqual(expected, ((ResponseJson)actual).status);

            olsEni.Entry(ep).State = EntityState.Detached;
            ep = null;

            ep = olsEni.ExaminationPapers.Single(m => m.EP_Id == epId);

            expected = (Byte)PaperStatus.Done;
            actual   = ep.EP_PaperStatus;

            Assert.AreEqual(expected, actual);

            expected = 100;
            actual   = ep.EP_Score;

            Assert.AreEqual(expected, actual);
        }
コード例 #4
0
        public void GetQuestionsTest()
        {
            GeneratePaperTemplate_Accessor target = new GeneratePaperTemplate_Accessor();
            string[] classifies;
            int diffCoef, expected, actual;
            bool hasScore;

            // Cond1: 不存在的分类集合
            classifies = new String[] { "不存在的分类1", "不存在的分类2" };
            diffCoef = 0;
            hasScore = true;

            expected = 0;
            actual = target.GetQuestions(classifies, diffCoef, hasScore).Count;

            Assert.AreEqual(expected, actual);

            // Cond1.1: 存在的分类集合
            //   Cond2.1: 难度系数为 0
            //   Cond2.2: 限制分数
            classifies = new String[] { "综合、公文、绩效知识(90题)", "所得税知识(180题)", "营业税知识(60题)", "其他地方税知识(180题)", "税收征管法、相关法律法规及征管制度(253题)", "规费知识(130题)", "纳税服务知识(95题)" };
            diffCoef = 0;
            hasScore = true;

            expected = olsEni.Questions.Where(m => m.Q_Score > 0 && m.Q_Status == (Byte)Status.Available).Count();
            actual = target.GetQuestions(classifies, diffCoef, hasScore).Count;

            Assert.AreEqual(expected, actual);

            // Cond1.1: 存在的分类集合
            //   Cond2.1: 难度系数为 0
            //   Cond2.2: 不限制分数
            classifies = new String[] { "综合、公文、绩效知识(90题)", "所得税知识(180题)", "营业税知识(60题)", "其他地方税知识(180题)", "税收征管法、相关法律法规及征管制度(253题)", "规费知识(130题)", "纳税服务知识(95题)" };
            diffCoef = 0;
            hasScore = false;

            expected = olsEni.Questions.Where(m => m.Q_Status == (Byte)Status.Available).Count();
            actual = target.GetQuestions(classifies, diffCoef, hasScore).Count;

            Assert.AreEqual(expected, actual);

            // Cond1.1: 存在的分类集合
            //   Cond2.1: 难度系数为 !0
            //   Cond2.2: 限制分数
            classifies = new String[] { "综合、公文、绩效知识(90题)", "所得税知识(180题)", "营业税知识(60题)", "其他地方税知识(180题)", "税收征管法、相关法律法规及征管制度(253题)", "规费知识(130题)", "纳税服务知识(95题)" };
            diffCoef = 3;
            hasScore = true;

            expected = olsEni.Questions.Where(m => m.Q_DifficultyCoefficient == diffCoef && m.Q_Score > 0 && m.Q_Status == (Byte)Status.Available).Count();
            actual = target.GetQuestions(classifies, diffCoef, hasScore).Count;

            Assert.AreEqual(expected, actual);

            // Cond1.1: 存在的分类集合
            //   Cond2.1: 难度系数为 !0
            //   Cond2.2: 不限制分数
            classifies = new String[] { "综合、公文、绩效知识(90题)", "所得税知识(180题)", "营业税知识(60题)", "其他地方税知识(180题)", "税收征管法、相关法律法规及征管制度(253题)", "规费知识(130题)", "纳税服务知识(95题)" };
            diffCoef = 3;
            hasScore = false;

            expected = olsEni.Questions.Where(m => m.Q_DifficultyCoefficient == diffCoef && m.Q_Status == (Byte)Status.Available).Count();
            actual = target.GetQuestions(classifies, diffCoef, hasScore).Count;

            Assert.AreEqual(expected, actual);
        }
コード例 #5
0
        public void SelectQuestionsWithNumberTest()
        {
            GeneratePaperTemplate_Accessor target = new GeneratePaperTemplate_Accessor();
            List<AutoRatio> ratios;
            int totalNumber;
            List<Question> qs;
            Object expected, actual;

            actual = null;

            #region 无备选试题
            ratios = new List<AutoRatio>();
            ratios.Add(new AutoRatio("单选题", 0.2));
            ratios.Add(new AutoRatio("多选题", 0.2));
            ratios.Add(new AutoRatio("判断题", 0.2));
            ratios.Add(new AutoRatio("公文改错题", 0.1));
            ratios.Add(new AutoRatio("计算题", 0.1));
            ratios.Add(new AutoRatio("案例分析题", 0.1));
            ratios.Add(new AutoRatio("问答题", 0.1));

            totalNumber = 100;
            qs = new List<Question>();

            expected = "“单选题”没有备选试题。";
            try
            {
                target.SelectQuestionsWithNumber(ratios, totalNumber, qs);
            }
            catch (Exception ex)
            {
                actual = ex;
            }

            Assert.AreEqual(expected, ((Exception)actual).Message);
            actual = null;
            #endregion

            #region 备选试题数量不足
            ratios = new List<AutoRatio>();
            ratios.Add(new AutoRatio("单选题", 0.2));
            ratios.Add(new AutoRatio("多选题", 0.2));
            ratios.Add(new AutoRatio("判断题", 0.2));
            ratios.Add(new AutoRatio("公文改错题", 0.1));
            ratios.Add(new AutoRatio("计算题", 0.1));
            ratios.Add(new AutoRatio("案例分析题", 0.1));
            ratios.Add(new AutoRatio("问答题", 0.1));

            totalNumber = 100;
            qs = olsEni.Questions.Where(m => m.Q_Type == "单选题" && m.Q_Status == (Byte)Status.Available).Take(1).ToList();

            expected = "“单选题”备选试题总数小于类型总数。";
            try
            {
                target.SelectQuestionsWithNumber(ratios, totalNumber, qs);
            }
            catch (Exception ex)
            {
                actual = ex;
            }

            Assert.AreEqual(expected, ((Exception)actual).Message);
            Debug.WriteLine(((Exception)actual).Data["Info"]);
            Debug.WriteLine("------------------------------");
            actual = null;
            #endregion

            #region [已注释]超过指定重复次数
            /*ratios = new List<AutoRatio>();
            ratios.Add(new AutoRatio("单选题", 0.2));
            ratios.Add(new AutoRatio("多选题", 0.2));
            ratios.Add(new AutoRatio("判断题", 0.2));
            ratios.Add(new AutoRatio("公文改错题", 0.1));
            ratios.Add(new AutoRatio("计算题", 0.1));
            ratios.Add(new AutoRatio("案例分析题", 0.1));
            ratios.Add(new AutoRatio("问答题", 0.1));

            totalNumber = 100;

            qs = olsEni.Questions.Where(m => m.Q_Type == "单选题" && m.Q_Status == (Byte)Status.Available).Take(1).ToList();

            expected = "随机选取试题失败。";
            try
            {
                target.SelectQuestionsWithNumber(ratios, totalNumber, qs);
            }
            catch (Exception ex)
            {
                actual = ex;
            }

            Assert.AreEqual(expected, ((Exception)actual).Message);
            Debug.WriteLine(((Exception)actual).Data["Info"]);
            actual = null;*/
            #endregion

            #region 数量不足时,补足
            ratios = new List<AutoRatio>();
            ratios.Add(new AutoRatio("单选题", 0.2));
            ratios.Add(new AutoRatio("多选题", 0.2));
            ratios.Add(new AutoRatio("判断题", 0.2));
            //ratios.Add(new AutoRatio("公文改错题", 0.1));
            //ratios.Add(new AutoRatio("计算题", 0.1));
            //ratios.Add(new AutoRatio("案例分析题", 0.1));
            //ratios.Add(new AutoRatio("问答题", 0.1));
            ratios = target.AdjustRatios(ratios);

            totalNumber = 10;
            qs = olsEni.Questions.Where(m => m.Q_Status == (Byte)Status.Available).ToList();

            expected = totalNumber;
            actual = target.SelectQuestionsWithNumber(ratios, totalNumber, qs);

            Assert.AreEqual(expected, ((List<Question>)actual).Count);
            Debug.WriteLine("Question Type:");
            foreach (var q in ((List<Question>)actual))
            {
                Debug.WriteLine("    " + q.Q_Type);
            }
            Debug.WriteLine("------------------------------");
            actual = null;
            #endregion
        }
コード例 #6
0
        public void AdjustRatiosTest()
        {
            Object expected, actual;
            GeneratePaperTemplate_Accessor target = new GeneratePaperTemplate_Accessor();
            List<AutoRatio> ratios;

            // 正常情况
            ratios = new List<AutoRatio>();
            ratios.Add(new AutoRatio("单选题", 0.2));
            ratios.Add(new AutoRatio("多选题", 0.2));
            ratios.Add(new AutoRatio("判断题", 0.2));
            ratios.Add(new AutoRatio("公文改错题", 0.1));
            ratios.Add(new AutoRatio("计算题", 0.1));
            ratios.Add(new AutoRatio("案例分析题", 0.1));
            ratios.Add(new AutoRatio("问答题", 0.1));

            expected = ratios.Sum(m => m.percent);

            actual = target.AdjustRatios(ratios).Sum(m => m.percent);

            Assert.AreEqual(expected, actual);
            actual = null;

            // 未设置出题比例
            ratios = new List<AutoRatio>();

            expected = "未设置出题比例。";
            try
            {
                target.AdjustRatios(ratios);
            }
            catch (Exception ex)
            {
                actual = ex;
            }

            Assert.AreEqual(expected, ((Exception)actual).Message);
            actual = null;

            // 出题比例小于 50%
            ratios = new List<AutoRatio>();
            ratios.Add(new AutoRatio("单选题", 0));
            ratios.Add(new AutoRatio("多选题", 0));
            ratios.Add(new AutoRatio("判断题", 0));
            ratios.Add(new AutoRatio("公文改错题", 0.1));
            ratios.Add(new AutoRatio("计算题", 0.1));
            ratios.Add(new AutoRatio("案例分析题", 0.1));
            ratios.Add(new AutoRatio("问答题", 0.1));

            expected = "出题比例小于 50% 。";
            try
            {
                target.AdjustRatios(ratios);
            }
            catch (Exception ex)
            {
                actual = ex;
            }

            Assert.AreEqual(expected, ((Exception)actual).Message);
            actual = null;

            // 出题比例大于 100%
            ratios = new List<AutoRatio>();
            ratios.Add(new AutoRatio("单选题", 0.3));
            ratios.Add(new AutoRatio("多选题", 0.2));
            ratios.Add(new AutoRatio("判断题", 0.2));
            ratios.Add(new AutoRatio("公文改错题", 0.1));
            ratios.Add(new AutoRatio("计算题", 0.1));
            ratios.Add(new AutoRatio("案例分析题", 0.1));
            ratios.Add(new AutoRatio("问答题", 0.1));

            expected = "出题比例大于 100% 。";
            try
            {
                target.AdjustRatios(ratios);
            }
            catch (Exception ex)
            {
                actual = ex;
            }

            Assert.AreEqual(expected, ((Exception)actual).Message);
            actual = null;

            // 自动补缺
            ratios = new List<AutoRatio>();
            ratios.Add(new AutoRatio("单选题", 0));
            ratios.Add(new AutoRatio("多选题", 0));
            ratios.Add(new AutoRatio("判断题", 0));
            ratios.Add(new AutoRatio("公文改错题", 0));
            ratios.Add(new AutoRatio("计算题", 0.2));
            ratios.Add(new AutoRatio("案例分析题", 0.2));
            ratios.Add(new AutoRatio("问答题", 0.2));

            expected = 0.34;
            actual = target.AdjustRatios(ratios);

            Assert.AreEqual(expected, (Double)((List<AutoRatio>)actual)[((List<AutoRatio>)actual).Count - 1].percent);
            actual = null;
        }
コード例 #7
0
        public void GenerateWithScoreTest()
        {
            int id, dboResult;
            Object expected, actual;
            DateTime now, startTime;
            ExaminationTask et;
            UExaminationTask uet;
            GeneratePaperTemplate_Accessor target = new GeneratePaperTemplate_Accessor();
            List<Question> qs;

            actual = null;

            // 备选试题总分小于出题总分
            #region 部署测试数据
            now = DateTime.Now;
            startTime = new DateTime(1970, 1, 1, now.AddHours(1).Hour, now.Minute, 0);

            uet = new UExaminationTask();
            id = new Utility().GetETId();
            et = new ExaminationTask
            {
                ET_Id = id,
                ET_Name = "单元测试每日任务1",
                ET_Enabled = (Byte)ExaminationTaskStatus.Enabled,
                ET_Type = (Byte)ExaminationTaskType.Examination,
                ET_ParticipatingDepartment = "[6,9]",
                ET_Attendee = "[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,39,40,41,42,43,44,45]",
                ET_StatisticType = (Byte)StatisticType.Score,
                ET_TotalScore = 100,
                ET_TotalNumber = 10,
                ET_Mode = (Byte)ExaminationTaskMode.Auto,
                ET_AutoType = (Byte)AutoType.Day,
                ET_AutoOffsetDay = 0,
                ET_DifficultyCoefficient = 0,
                ET_AutoClassifies = "[\"综合、公文、绩效知识(90题)\",\"所得税知识(180题)\",\"营业税知识(60题)\",\"其他地方税知识(180题)\",\"税收征管法、相关法律法规及征管制度(253题)\",\"规费知识(130题)\",\"纳税服务知识(95题)\"]",
                ET_AutoRatio = "[{\"type\":\"单选题\",\"percent\":0.2},{\"type\":\"多选题\",\"percent\":0.2},{\"type\":\"判断题\",\"percent\":0.2},{\"type\":\"公文改错题\",\"percent\":0.1},{\"type\":\"计算题\",\"percent\":0.1},{\"type\":\"案例分析题\",\"percent\":0.1},{\"type\":\"问答题\",\"percent\":0.1}]",
                ET_StartTime = startTime,
                ET_EndTime = startTime,
                ET_TimeSpan = 0,
                ET_PaperTemplates = "[]",
                ET_Questions = "[]",
                ET_Remark = "",
                ET_AddTime = now,
                ET_Status = (Byte)Status.Available
            };
            olsEni.Entry(et).State = EntityState.Added;

            dboResult = olsDbo.ExecuteSql("UPDATE Questions SET Q_Status = @status", new SqlParameter("@status", (Byte)Status.Recycle));

            if (0 == dboResult)
            {
                Assert.Fail("更新试题数据失败。");
            }

            qs = olsEni.Questions.Where(m => m.Q_Type == "单选题").Take(1).ToList();
            qs.AddRange(olsEni.Questions.Where(m => m.Q_Type == "多选题").Take(1).ToList());
            qs.AddRange(olsEni.Questions.Where(m => m.Q_Type == "判断题").Take(1).ToList());
            qs.AddRange(olsEni.Questions.Where(m => m.Q_Type == "公文改错题").Take(1).ToList());
            qs.AddRange(olsEni.Questions.Where(m => m.Q_Type == "计算题").Take(1).ToList());
            qs.AddRange(olsEni.Questions.Where(m => m.Q_Type == "案例分析题").Take(1).ToList());
            qs.AddRange(olsEni.Questions.Where(m => m.Q_Type == "问答题").Take(1).ToList());
            foreach (var q in qs)
            {
                q.Q_Status = (Byte)Status.Available;
            }

            if (0 == olsEni.SaveChanges())
            {
                Assert.Fail("部署测试数据失败。");
            }
            #endregion

            expected = "备选试题总分小于出题总分。";
            try
            {
                target.GenerateWithScore(et);
            }
            catch (Exception ex)
            {
                actual = ex;
            }
            Assert.AreEqual(expected, ((Exception)actual).Message);
            actual = null;

            #region 恢复试题状态
            dboResult = olsDbo.ExecuteSql("UPDATE Questions SET Q_Status = @status", new SqlParameter("@status", (Byte)Status.Available));

            if (0 == dboResult)
            {
                Assert.Fail("更新试题数据失败。");
            }
            #endregion

            // 备选试题总分大于出题总分
            #region 部署测试数据
            now = DateTime.Now;
            startTime = new DateTime(1970, 1, 1, now.AddHours(1).Hour, now.Minute, 0);

            uet = new UExaminationTask();
            id = new Utility().GetETId();
            et = new ExaminationTask
            {
                ET_Id = id,
                ET_Name = "单元测试每日任务1",
                ET_Enabled = (Byte)ExaminationTaskStatus.Enabled,
                ET_Type = (Byte)ExaminationTaskType.Examination,
                ET_ParticipatingDepartment = "[6,9]",
                ET_Attendee = "[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,39,40,41,42,43,44,45]",
                ET_StatisticType = (Byte)StatisticType.Score,
                ET_TotalScore = 100,
                ET_TotalNumber = 10,
                ET_Mode = (Byte)ExaminationTaskMode.Auto,
                ET_AutoType = (Byte)AutoType.Day,
                ET_AutoOffsetDay = 0,
                ET_DifficultyCoefficient = 0,
                ET_AutoClassifies = "[\"综合、公文、绩效知识(90题)\",\"所得税知识(180题)\",\"营业税知识(60题)\",\"其他地方税知识(180题)\",\"税收征管法、相关法律法规及征管制度(253题)\",\"规费知识(130题)\",\"纳税服务知识(95题)\"]",
                ET_AutoRatio = "[{\"type\":\"单选题\",\"percent\":0.2},{\"type\":\"多选题\",\"percent\":0.2},{\"type\":\"判断题\",\"percent\":0.2},{\"type\":\"公文改错题\",\"percent\":0.1},{\"type\":\"计算题\",\"percent\":0.1},{\"type\":\"案例分析题\",\"percent\":0.1},{\"type\":\"问答题\",\"percent\":0.1}]",
                ET_StartTime = startTime,
                ET_EndTime = startTime,
                ET_TimeSpan = 0,
                ET_PaperTemplates = "[]",
                ET_Questions = "[]",
                ET_Remark = "",
                ET_AddTime = now,
                ET_Status = (Byte)Status.Available
            };
            olsEni.Entry(et).State = EntityState.Added;

            if (0 == olsEni.SaveChanges())
            {
                Assert.Fail("部署测试数据失败。");
            }
            #endregion

            expected = et.ET_TotalScore;
            actual = target.GenerateWithScore(et);

            Assert.AreEqual(expected, ((List<Question>)actual).Sum(m => m.Q_Score));
        }
コード例 #8
0
        public void GenerateEtTest()
        {
            int id;
            Object expected, actual;
            DateTime now, startTime;
            ExaminationTask et;
            UExaminationTask uet;
            GeneratePaperTemplate_Accessor target = new GeneratePaperTemplate_Accessor();

            actual = null;

            // 成绩计算方式为得分
            #region 添加测试数据
            now = DateTime.Now;
            startTime = new DateTime(1970, 1, 1, now.AddHours(1).Hour, now.Minute, 0);

            uet = new UExaminationTask();
            id = new Utility().GetETId();
            et = new ExaminationTask
            {
                ET_Id = id,
                ET_Name = "单元测试每日任务1",
                ET_Enabled = (Byte)ExaminationTaskStatus.Enabled,
                ET_Type = (Byte)ExaminationTaskType.Examination,
                ET_ParticipatingDepartment = "[6,9]",
                ET_Attendee = "[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,39,40,41,42,43,44,45]",
                ET_StatisticType = (Byte)StatisticType.Score,
                ET_TotalScore = 100,
                ET_TotalNumber = 10,
                ET_Mode = (Byte)ExaminationTaskMode.Auto,
                ET_AutoType = (Byte)AutoType.Day,
                ET_AutoOffsetDay = 0,
                ET_DifficultyCoefficient = 0,
                ET_AutoClassifies = "[\"综合、公文、绩效知识(90题)\",\"所得税知识(180题)\",\"营业税知识(60题)\",\"其他地方税知识(180题)\",\"税收征管法、相关法律法规及征管制度(253题)\",\"规费知识(130题)\",\"纳税服务知识(95题)\"]",
                ET_AutoRatio = "[{\"type\":\"单选题\",\"percent\":0.2},{\"type\":\"多选题\",\"percent\":0.2},{\"type\":\"判断题\",\"percent\":0.2},{\"type\":\"公文改错题\",\"percent\":0.1},{\"type\":\"计算题\",\"percent\":0.1},{\"type\":\"案例分析题\",\"percent\":0.1},{\"type\":\"问答题\",\"percent\":0.1}]",
                ET_StartTime = startTime,
                ET_EndTime = startTime,
                ET_TimeSpan = 0,
                ET_PaperTemplates = "[]",
                ET_Questions = "[]",
                ET_Remark = "",
                ET_AddTime = now,
                ET_Status = (Byte)Status.Available
            };
            olsEni.Entry(et).State = EntityState.Added;
            #endregion

            expected = et.ET_TotalScore;
            actual = target.Generate(et);

            Assert.AreEqual(expected, ((List<Question>)actual).Sum(m => m.Q_Score));
            actual = null;

            // 成绩计算方式为正确率
            #region 添加测试数据
            now = DateTime.Now;
            startTime = new DateTime(1970, 1, 1, now.AddHours(1).Hour, now.Minute, 0);

            uet = new UExaminationTask();
            id = new Utility().GetETId();
            et = new ExaminationTask
            {
                ET_Id = id,
                ET_Name = "单元测试每日任务1",
                ET_Enabled = (Byte)ExaminationTaskStatus.Enabled,
                ET_Type = (Byte)ExaminationTaskType.Examination,
                ET_ParticipatingDepartment = "[6,9]",
                ET_Attendee = "[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,39,40,41,42,43,44,45]",
                ET_StatisticType = (Byte)StatisticType.Number,
                ET_TotalScore = 100,
                ET_TotalNumber = 10,
                ET_Mode = (Byte)ExaminationTaskMode.Auto,
                ET_AutoType = (Byte)AutoType.Day,
                ET_AutoOffsetDay = 0,
                ET_DifficultyCoefficient = 0,
                ET_AutoClassifies = "[\"综合、公文、绩效知识(90题)\",\"所得税知识(180题)\",\"营业税知识(60题)\",\"其他地方税知识(180题)\",\"税收征管法、相关法律法规及征管制度(253题)\",\"规费知识(130题)\",\"纳税服务知识(95题)\"]",
                ET_AutoRatio = "[{\"type\":\"单选题\",\"percent\":0.2},{\"type\":\"多选题\",\"percent\":0.2},{\"type\":\"判断题\",\"percent\":0.2},{\"type\":\"公文改错题\",\"percent\":0.1},{\"type\":\"计算题\",\"percent\":0.1},{\"type\":\"案例分析题\",\"percent\":0.1},{\"type\":\"问答题\",\"percent\":0.1}]",
                ET_StartTime = startTime,
                ET_EndTime = startTime,
                ET_TimeSpan = 0,
                ET_PaperTemplates = "[]",
                ET_Questions = "[]",
                ET_Remark = "",
                ET_AddTime = now,
                ET_Status = (Byte)Status.Available
            };
            olsEni.Entry(et).State = EntityState.Added;
            #endregion

            expected = et.ET_TotalNumber;
            actual = target.Generate(et);

            Assert.AreEqual(expected, ((List<Question>)actual).Count);
            actual = null;

            // 未设置成绩计算方式
            #region 添加测试数据
            now = DateTime.Now;
            startTime = new DateTime(1970, 1, 1, now.AddHours(1).Hour, now.Minute, 0);

            uet = new UExaminationTask();
            id = new Utility().GetETId();
            et = new ExaminationTask
            {
                ET_Id = id,
                ET_Name = "单元测试每日任务1",
                ET_Enabled = (Byte)ExaminationTaskStatus.Enabled,
                ET_Type = (Byte)ExaminationTaskType.Examination,
                ET_ParticipatingDepartment = "[6,9]",
                ET_Attendee = "[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,39,40,41,42,43,44,45]",
                ET_StatisticType = (Byte)StatisticType.Unset,
                ET_TotalScore = 100,
                ET_TotalNumber = 10,
                ET_Mode = (Byte)ExaminationTaskMode.Auto,
                ET_AutoType = (Byte)AutoType.Day,
                ET_AutoOffsetDay = 0,
                ET_DifficultyCoefficient = 0,
                ET_AutoClassifies = "[\"综合、公文、绩效知识(90题)\",\"所得税知识(180题)\",\"营业税知识(60题)\",\"其他地方税知识(180题)\",\"税收征管法、相关法律法规及征管制度(253题)\",\"规费知识(130题)\",\"纳税服务知识(95题)\"]",
                ET_AutoRatio = "[{\"type\":\"单选题\",\"percent\":0.2},{\"type\":\"多选题\",\"percent\":0.2},{\"type\":\"判断题\",\"percent\":0.2},{\"type\":\"公文改错题\",\"percent\":0.1},{\"type\":\"计算题\",\"percent\":0.1},{\"type\":\"案例分析题\",\"percent\":0.1},{\"type\":\"问答题\",\"percent\":0.1}]",
                ET_StartTime = startTime,
                ET_EndTime = startTime,
                ET_TimeSpan = 0,
                ET_PaperTemplates = "[]",
                ET_Questions = "[]",
                ET_Remark = "",
                ET_AddTime = now,
                ET_Status = (Byte)Status.Available
            };
            olsEni.Entry(et).State = EntityState.Added;
            #endregion

            expected = "未设置成绩计算方式。任务Id:"+ et.ET_Id;
            try
            {
                target.Generate(et);
            }
            catch (Exception ex)
            {
                actual = ex;
            }

            Assert.AreEqual(expected, ((Exception)actual).Message + ((Exception)actual).Data["Info"]);
            actual = null;
        }
コード例 #9
0
        public void GenerateTest()
        {
            int id, dboResult;
            Object expected, actual;
            DateTime now, startTime;
            ExaminationTask et;
            UExaminationTask uet;
            GeneratePaperTemplate_Accessor target = new GeneratePaperTemplate_Accessor();

            actual = null;

            #region 部署测试数据
            now = DateTime.Now;
            startTime = new DateTime(1970, 1, 1, now.AddHours(1).Hour, now.Minute, 0);

            uet = new UExaminationTask();
            id = new Utility().GetETId();
            et = new ExaminationTask
            {
                ET_Id = id,
                ET_Name = "单元测试每日任务1",
                ET_Enabled = (Byte)ExaminationTaskStatus.Enabled,
                ET_Type = (Byte)ExaminationTaskType.Examination,
                ET_ParticipatingDepartment = "[6,9]",
                ET_Attendee = "[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,39,40,41,42,43,44,45]",
                ET_StatisticType = (Byte)StatisticType.Score,
                ET_TotalScore = 100,
                ET_TotalNumber = 10,
                ET_Mode = (Byte)ExaminationTaskMode.Auto,
                ET_AutoType = (Byte)AutoType.Day,
                ET_AutoOffsetDay = 0,
                ET_DifficultyCoefficient = 0,
                ET_AutoClassifies = "[\"综合、公文、绩效知识(90题)\",\"所得税知识(180题)\",\"营业税知识(60题)\",\"其他地方税知识(180题)\",\"税收征管法、相关法律法规及征管制度(253题)\",\"规费知识(130题)\",\"纳税服务知识(95题)\"]",
                ET_AutoRatio = "[{\"type\":\"单选题\",\"percent\":0.2},{\"type\":\"多选题\",\"percent\":0.2},{\"type\":\"判断题\",\"percent\":0.2},{\"type\":\"公文改错题\",\"percent\":0.1},{\"type\":\"计算题\",\"percent\":0.1},{\"type\":\"案例分析题\",\"percent\":0.1},{\"type\":\"问答题\",\"percent\":0.1}]",
                ET_StartTime = startTime,
                ET_EndTime = startTime,
                ET_TimeSpan = 0,
                ET_PaperTemplates = "[]",
                ET_Questions = "[]",
                ET_Remark = "",
                ET_AddTime = now,
                ET_Status = (Byte)Status.Available
            };
            olsEni.Entry(et).State = EntityState.Added;
            if (0 == olsEni.SaveChanges())
            {
                Assert.Fail("添加测试数据失败。");
            }

            dboResult = olsDbo.ExecuteSql("UPDATE Questions SET Q_Status = @status", new SqlParameter("@status", (Byte)Status.Recycle));
            if (0 == dboResult)
            {
                Assert.Fail("更新试题数据失败。");
            }
            #endregion

            expected = "单元测试每日任务1:备选试题总分小于出题总分。\\r\\n";
            actual = target.Generate();

            Assert.AreEqual(expected, ((ResponseJson)actual).message);
            actual = null;

            #region 恢复试题数据
            dboResult = olsDbo.ExecuteSql("UPDATE Questions SET Q_Status = @status", new SqlParameter("@status", (Byte)Status.Available));
            if (0 == dboResult)
            {
                Assert.Fail("更新试题数据失败。");
            }
            #endregion

            // 正常情况
            #region 部署测试数据
            now = DateTime.Now;
            startTime = new DateTime(1970, 1, 1, now.AddHours(1).Hour, now.Minute, 0);

            uet = new UExaminationTask();
            id = new Utility().GetETId();
            et = new ExaminationTask
            {
                ET_Id = id,
                ET_Name = "单元测试每日任务1",
                ET_Enabled = (Byte)ExaminationTaskStatus.Enabled,
                ET_Type = (Byte)ExaminationTaskType.Examination,
                ET_ParticipatingDepartment = "[6,9]",
                ET_Attendee = "[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,39,40,41,42,43,44,45]",
                ET_StatisticType = (Byte)StatisticType.Score,
                ET_TotalScore = 100,
                ET_TotalNumber = 10,
                ET_Mode = (Byte)ExaminationTaskMode.Auto,
                ET_AutoType = (Byte)AutoType.Day,
                ET_AutoOffsetDay = 0,
                ET_DifficultyCoefficient = 0,
                ET_AutoClassifies = "[\"综合、公文、绩效知识(90题)\",\"所得税知识(180题)\",\"营业税知识(60题)\",\"其他地方税知识(180题)\",\"税收征管法、相关法律法规及征管制度(253题)\",\"规费知识(130题)\",\"纳税服务知识(95题)\"]",
                ET_AutoRatio = "[{\"type\":\"单选题\",\"percent\":0.2},{\"type\":\"多选题\",\"percent\":0.2},{\"type\":\"判断题\",\"percent\":0.2},{\"type\":\"公文改错题\",\"percent\":0.1},{\"type\":\"计算题\",\"percent\":0.1},{\"type\":\"案例分析题\",\"percent\":0.1},{\"type\":\"问答题\",\"percent\":0.1}]",
                ET_StartTime = startTime,
                ET_EndTime = startTime,
                ET_TimeSpan = 0,
                ET_PaperTemplates = "[]",
                ET_Questions = "[]",
                ET_Remark = "",
                ET_AddTime = now,
                ET_Status = (Byte)Status.Available
            };
            olsEni.Entry(et).State = EntityState.Added;
            if (0 == olsEni.SaveChanges())
            {
                Assert.Fail("添加测试数据失败。");
            }

            dboResult = olsDbo.ExecuteSql("UPDATE Questions SET Q_Status = @status", new SqlParameter("@status", (Byte)Status.Available));
            if (0 == dboResult)
            {
                Assert.Fail("更新试题数据失败。");
            }
            #endregion

            expected = "成功处理 1个考试任务。";
            actual = target.Generate();

            Assert.AreEqual(expected, ((ResponseJson)actual).addition);
            actual = null;
        }
コード例 #10
0
        public void WhetherGenerateTest3_1()
        {
            int id;
            bool expected, actual;
            DateTime now, startTime;
            ExaminationTask et;
            UExaminationTask uet;
            GeneratePaperTemplate_Accessor target = new GeneratePaperTemplate_Accessor();

            #region 添加测试数据
            now = DateTime.Now;
            startTime = new DateTime(1970, 1, 1, now.AddHours(1).Hour, now.Minute, 0);

            uet = new UExaminationTask();
            id = new Utility().GetETId();
            et = new ExaminationTask
            {
                ET_Id = id,
                ET_Name = "单元测试每月任务1",
                ET_Enabled = (Byte)ExaminationTaskStatus.Enabled,
                ET_Type = (Byte)ExaminationTaskType.Examination,
                ET_ParticipatingDepartment = "[6,9]",
                ET_Attendee = "[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,39,40,41,42,43,44,45]",
                ET_StatisticType = (Byte)StatisticType.Score,
                ET_TotalScore = 100,
                ET_TotalNumber = 10,
                ET_Mode = (Byte)ExaminationTaskMode.Auto,
                ET_AutoType = (Byte)AutoType.Month,
                ET_AutoOffsetDay = 1,
                ET_DifficultyCoefficient = 0,
                ET_AutoClassifies = "[\"综合、公文、绩效知识(90题)\",\"所得税知识(180题)\",\"营业税知识(60题)\",\"其他地方税知识(180题)\",\"税收征管法、相关法律法规及征管制度(253题)\",\"规费知识(130题)\",\"纳税服务知识(95题)\"]",
                ET_AutoRatio = "[{\"type\":\"单选题\",\"percent\":0.2},{\"type\":\"多选题\",\"percent\":0.2},{\"type\":\"判断题\",\"percent\":0.2},{\"type\":\"公文改错题\",\"percent\":0.1},{\"type\":\"计算题\",\"percent\":0.1},{\"type\":\"案例分析题\",\"percent\":0.1},{\"type\":\"问答题\",\"percent\":0.1}]",
                ET_StartTime = startTime,
                ET_EndTime = startTime,
                ET_TimeSpan = 0,
                ET_PaperTemplates = "[]",
                ET_Questions = "[]",
                ET_Remark = "",
                ET_AddTime = now,
                ET_Status = (Byte)Status.Available
            };
            olsEni.Entry(et).State = EntityState.Added;
            if (0 == olsEni.SaveChanges())
            {
                Assert.Fail("添加测试数据失败。");
            }
            #endregion

            expected = false;
            actual = target.WhetherGenerate(et);

            #region 删除测试数据
            olsEni.Entry(et).State = EntityState.Deleted;
            if (0 == olsEni.SaveChanges())
            {
                Assert.Fail("删除测试数据失败。id值为 " + id + " 。");
            }
            #endregion

            Assert.AreEqual(expected, actual);
        }
コード例 #11
0
        public void ChangeTest1()
        {
            int                            id;
            DateTime                       now, startTime;
            ExaminationTask                et;
            ExaminationPaperTemplate       ept;
            UExaminationTask               uet;
            GeneratePaperTemplate_Accessor gpt = new GeneratePaperTemplate_Accessor();
            ChangePaperTemplateStatus      target;
            ResponseJson                   resJson;
            Object                         expected, actual;

            // 获取状态为“未做”、“进行中”的试卷模板
            #region 部署测试数据

            now = DateTime.Now;
            uet = new UExaminationTask();

            startTime = new DateTime(1970, 1, 1, now.AddHours(1).Hour, now.Minute, 0);
            id        = new Utility().GetETId();
            et        = new ExaminationTask
            {
                ET_Id      = id,
                ET_Name    = "单元测试每日任务" + id,
                ET_Enabled = (Byte)ExaminationTaskStatus.Enabled,
                ET_Type    = (Byte)ExaminationTaskType.Examination,
                ET_ParticipatingDepartment = "[6,9]",
                ET_Attendee              = "[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,39,40,41,42,43,44,45]",
                ET_StatisticType         = (Byte)StatisticType.Score,
                ET_TotalScore            = 100,
                ET_TotalNumber           = 10,
                ET_Mode                  = (Byte)ExaminationTaskMode.Auto,
                ET_AutoType              = (Byte)AutoType.Day,
                ET_AutoOffsetDay         = 0,
                ET_DifficultyCoefficient = 0,
                ET_AutoClassifies        = "[\"综合、公文、绩效知识(90题)\",\"所得税知识(180题)\",\"营业税知识(60题)\",\"其他地方税知识(180题)\",\"税收征管法、相关法律法规及征管制度(253题)\",\"规费知识(130题)\",\"纳税服务知识(95题)\"]",
                ET_AutoRatio             = "[{\"type\":\"单选题\",\"percent\":0.2},{\"type\":\"多选题\",\"percent\":0.2},{\"type\":\"判断题\",\"percent\":0.2},{\"type\":\"公文改错题\",\"percent\":0.1},{\"type\":\"计算题\",\"percent\":0.1},{\"type\":\"案例分析题\",\"percent\":0.1},{\"type\":\"问答题\",\"percent\":0.1}]",
                ET_StartTime             = startTime,
                ET_EndTime               = startTime,
                ET_TimeSpan              = 0,
                ET_PaperTemplates        = "[]",
                ET_Questions             = "[]",
                ET_Remark                = "",
                ET_AddTime               = now,
                ET_Status                = (Byte)Status.Available
            };
            olsEni.Entry(et).State = EntityState.Added;

            startTime = new DateTime(1970, 1, 1, now.Hour, now.Minute, now.AddSeconds(5).Second);
            id       += 1;
            et        = new ExaminationTask
            {
                ET_Id      = id,
                ET_Name    = "单元测试每日任务" + id,
                ET_Enabled = (Byte)ExaminationTaskStatus.Enabled,
                ET_Type    = (Byte)ExaminationTaskType.Examination,
                ET_ParticipatingDepartment = "[6,9]",
                ET_Attendee              = "[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,39,40,41,42,43,44,45]",
                ET_StatisticType         = (Byte)StatisticType.Score,
                ET_TotalScore            = 100,
                ET_TotalNumber           = 10,
                ET_Mode                  = (Byte)ExaminationTaskMode.Auto,
                ET_AutoType              = (Byte)AutoType.Day,
                ET_AutoOffsetDay         = 0,
                ET_DifficultyCoefficient = 0,
                ET_AutoClassifies        = "[\"综合、公文、绩效知识(90题)\",\"所得税知识(180题)\",\"营业税知识(60题)\",\"其他地方税知识(180题)\",\"税收征管法、相关法律法规及征管制度(253题)\",\"规费知识(130题)\",\"纳税服务知识(95题)\"]",
                ET_AutoRatio             = "[{\"type\":\"单选题\",\"percent\":0.2},{\"type\":\"多选题\",\"percent\":0.2},{\"type\":\"判断题\",\"percent\":0.2},{\"type\":\"公文改错题\",\"percent\":0.1},{\"type\":\"计算题\",\"percent\":0.1},{\"type\":\"案例分析题\",\"percent\":0.1},{\"type\":\"问答题\",\"percent\":0.1}]",
                ET_StartTime             = startTime,
                ET_EndTime               = startTime,
                ET_TimeSpan              = 0,
                ET_PaperTemplates        = "[]",
                ET_Questions             = "[]",
                ET_Remark                = "",
                ET_AddTime               = now,
                ET_Status                = (Byte)Status.Available
            };
            olsEni.Entry(et).State = EntityState.Added;

            if (0 == olsEni.SaveChanges())
            {
                Assert.Fail("部署测试数据失败1。");
            }

            // 生成试卷模板数据
            uet     = new UExaminationTask();
            resJson = gpt.Generate();
            if (ResponseStatus.Error == resJson.status || resJson.message != "")
            {
                Assert.Fail("部署测试数据失败3。" + resJson.message);
            }

            Thread.Sleep(10 * 1000);

            ept = olsEni.ExaminationPaperTemplates.SingleOrDefault(m => m.ET_Id == id);
            if (null == ept)
            {
                Assert.Fail("部署测试数据失败4。");
            }

            ept.EPT_PaperTemplateStatus = (Byte)PaperTemplateStatus.Doing;

            if (0 == olsEni.SaveChanges())
            {
                Assert.Fail("部署测试数据失败2。");
            }

            #endregion

            expected = "共有 2条记录。其中“未做” 1条;“进行中” 1条。";
            target   = new ChangePaperTemplateStatus();
            actual   = target.Change();

            Assert.AreEqual(expected, ((Dictionary <String, String>)(((ResponseJson)actual).data))["RecordInfo"]);
        }
コード例 #12
0
        public void Test2()
        {
            int id, epId;
            DateTime now, startTime, endTime;
            ExaminationTask et;
            ExaminationPaper ep;
            ExaminationPaperTemplate ept;
            UExaminationTask_Accessor uet;
            UExaminationPaperTemplate_Accessor uept;
            GeneratePaperTemplate_Accessor gpt = new GeneratePaperTemplate_Accessor();
            ResponseJson resJson;
            Object expected, actual;

            #region 部署测试数据

            now = DateTime.Now;
            uet = new UExaminationTask_Accessor();

            startTime = now.AddSeconds(5);
            endTime = startTime.AddSeconds(5);
            endTime = new DateTime(1970, 1, 1, endTime.Hour, endTime.Minute, endTime.Second);
            id = new Utility().GetETId();
            et = new ExaminationTask
            {
                ET_Id = id,
                ET_Name = "单元测试预定任务" + id,
                ET_Enabled = (Byte)ExaminationTaskStatus.Disabled,
                ET_Type = (Byte)ExaminationTaskType.Examination,
                ET_ParticipatingDepartment = "[6,9]",
                ET_Attendee = "[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,39,40,41,42,43,44,45]",
                ET_StatisticType = (Byte)StatisticType.Score,
                ET_TotalScore = 100,
                ET_TotalNumber = 10,
                ET_Mode = (Byte)ExaminationTaskMode.Custom,
                ET_AutoType = (Byte)AutoType.Custom,
                ET_AutoOffsetDay = 0,
                ET_DifficultyCoefficient = 0,
                ET_AutoClassifies = "[]",
                ET_AutoRatio = "[{\"type\":\"单选题\",\"percent\":0.2},{\"type\":\"多选题\",\"percent\":0.2},{\"type\":\"判断题\",\"percent\":0.2},{\"type\":\"公文改错题\",\"percent\":0.1},{\"type\":\"计算题\",\"percent\":0.1},{\"type\":\"案例分析题\",\"percent\":0.1},{\"type\":\"问答题\",\"percent\":0.1}]",
                ET_StartTime = startTime,
                ET_EndTime = endTime,
                ET_ContinuedDays = 1,
                ET_TimeSpan = 1,
                ET_PaperTemplates = "[]",
                ET_Questions = "[3,4,5,6,7,8,9,10,11,12]",
                ET_Remark = "",
                ET_AddTime = now,
                ET_Status = (Byte)Status.Available
            };
            olsEni.Entry(et).State = EntityState.Added;

            if (0 == olsEni.SaveChanges())
            {
                Assert.Fail("部署测试数据失败1。");
            }

            uet.AddPaperTemplateAndQuestionTemplate(et);
            #endregion

            // 测试开始任务操作是否正常
            expected = ResponseStatus.Success;
            resJson = uet.SetExaminationTaskStatus(et.ET_Id, ExaminationTaskStatus.Enabled);
            actual = resJson.status;
            Assert.AreEqual(expected, actual);

            // 任务是否开启
            Thread.Sleep(6 * 1000);
            new ChangePaperTemplateStatus_Accessor().Change();
            ept = olsEni.ExaminationPaperTemplates.Where(m => m.ET_Id == et.ET_Id).Take(1).ToList()[0];
            expected = (Byte)PaperTemplateStatus.Doing;
            actual = ept.EPT_PaperTemplateStatus;
            Assert.AreEqual(expected, actual);

            // 结束时间设置是否正常
            startTime = startTime.AddDays(et.ET_ContinuedDays - 1);
            expected = new DateTime(startTime.Year, startTime.Month, startTime.Day, endTime.Hour, endTime.Minute, endTime.Second);
            actual = ept.EPT_EndTime;
            Assert.AreEqual(expected, actual);

            // 添加试卷
            uept = new UExaminationPaperTemplate_Accessor();
            resJson = uept.EnterExamination(ept.EPT_Id, 1);

            // 任务是否正常自动结束
            Thread.Sleep(5 * 1000);
            et = olsEni.ExaminationTasks.Single(m => m.ET_Id == et.ET_Id);
            expected = (Byte)ExaminationTaskStatus.Disabled;
            actual = et.ET_Enabled;
            Assert.AreEqual(expected, actual);

            // 试卷是否自动关闭
            Thread.Sleep(56 * 1000);
            new ChangePaperTemplateStatus_Accessor().Change();
            new ChangePaperStatus_Accessor().Change();
            epId = (Int32)resJson.addition;
            ep = olsEni.ExaminationPapers.Single(m => m.EP_Id == epId);
            expected = (Byte)PaperStatus.Done;
            actual = ep.EP_PaperStatus;
            Assert.AreEqual(expected, actual);
        }
コード例 #13
0
        public void ChangeTest1()
        {
            int id;
            DateTime now, startTime;
            ExaminationTask et;
            ExaminationPaperTemplate ept;
            UExaminationTask uet;
            GeneratePaperTemplate_Accessor gpt = new GeneratePaperTemplate_Accessor();
            ChangePaperTemplateStatus target;
            ResponseJson resJson;
            Object expected, actual;

            // 获取状态为“未做”、“进行中”的试卷模板
            #region 部署测试数据

            now = DateTime.Now;
            uet = new UExaminationTask();

            startTime = new DateTime(1970, 1, 1, now.AddHours(1).Hour, now.Minute, 0);
            id = new Utility().GetETId();
            et = new ExaminationTask
            {
                ET_Id = id,
                ET_Name = "单元测试每日任务" + id,
                ET_Enabled = (Byte)ExaminationTaskStatus.Enabled,
                ET_Type = (Byte)ExaminationTaskType.Examination,
                ET_ParticipatingDepartment = "[6,9]",
                ET_Attendee = "[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,39,40,41,42,43,44,45]",
                ET_StatisticType = (Byte)StatisticType.Score,
                ET_TotalScore = 100,
                ET_TotalNumber = 10,
                ET_Mode = (Byte)ExaminationTaskMode.Auto,
                ET_AutoType = (Byte)AutoType.Day,
                ET_AutoOffsetDay = 0,
                ET_DifficultyCoefficient = 0,
                ET_AutoClassifies = "[\"综合、公文、绩效知识(90题)\",\"所得税知识(180题)\",\"营业税知识(60题)\",\"其他地方税知识(180题)\",\"税收征管法、相关法律法规及征管制度(253题)\",\"规费知识(130题)\",\"纳税服务知识(95题)\"]",
                ET_AutoRatio = "[{\"type\":\"单选题\",\"percent\":0.2},{\"type\":\"多选题\",\"percent\":0.2},{\"type\":\"判断题\",\"percent\":0.2},{\"type\":\"公文改错题\",\"percent\":0.1},{\"type\":\"计算题\",\"percent\":0.1},{\"type\":\"案例分析题\",\"percent\":0.1},{\"type\":\"问答题\",\"percent\":0.1}]",
                ET_StartTime = startTime,
                ET_EndTime = startTime,
                ET_TimeSpan = 0,
                ET_PaperTemplates = "[]",
                ET_Questions = "[]",
                ET_Remark = "",
                ET_AddTime = now,
                ET_Status = (Byte)Status.Available
            };
            olsEni.Entry(et).State = EntityState.Added;

            startTime = new DateTime(1970, 1, 1, now.Hour, now.Minute, now.AddSeconds(5).Second);
            id += 1;
            et = new ExaminationTask
            {
                ET_Id = id,
                ET_Name = "单元测试每日任务" + id,
                ET_Enabled = (Byte)ExaminationTaskStatus.Enabled,
                ET_Type = (Byte)ExaminationTaskType.Examination,
                ET_ParticipatingDepartment = "[6,9]",
                ET_Attendee = "[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,39,40,41,42,43,44,45]",
                ET_StatisticType = (Byte)StatisticType.Score,
                ET_TotalScore = 100,
                ET_TotalNumber = 10,
                ET_Mode = (Byte)ExaminationTaskMode.Auto,
                ET_AutoType = (Byte)AutoType.Day,
                ET_AutoOffsetDay = 0,
                ET_DifficultyCoefficient = 0,
                ET_AutoClassifies = "[\"综合、公文、绩效知识(90题)\",\"所得税知识(180题)\",\"营业税知识(60题)\",\"其他地方税知识(180题)\",\"税收征管法、相关法律法规及征管制度(253题)\",\"规费知识(130题)\",\"纳税服务知识(95题)\"]",
                ET_AutoRatio = "[{\"type\":\"单选题\",\"percent\":0.2},{\"type\":\"多选题\",\"percent\":0.2},{\"type\":\"判断题\",\"percent\":0.2},{\"type\":\"公文改错题\",\"percent\":0.1},{\"type\":\"计算题\",\"percent\":0.1},{\"type\":\"案例分析题\",\"percent\":0.1},{\"type\":\"问答题\",\"percent\":0.1}]",
                ET_StartTime = startTime,
                ET_EndTime = startTime,
                ET_TimeSpan = 0,
                ET_PaperTemplates = "[]",
                ET_Questions = "[]",
                ET_Remark = "",
                ET_AddTime = now,
                ET_Status = (Byte)Status.Available
            };
            olsEni.Entry(et).State = EntityState.Added;

            if (0 == olsEni.SaveChanges())
            {
                Assert.Fail("部署测试数据失败1。");
            }

            // 生成试卷模板数据
            uet = new UExaminationTask();
            resJson = gpt.Generate();
            if (ResponseStatus.Error == resJson.status || resJson.message != "")
            {
                Assert.Fail("部署测试数据失败3。" + resJson.message);
            }

            Thread.Sleep(10 * 1000);

            ept = olsEni.ExaminationPaperTemplates.SingleOrDefault(m => m.ET_Id == id);
            if (null == ept)
            {
                Assert.Fail("部署测试数据失败4。");
            }

            ept.EPT_PaperTemplateStatus = (Byte)PaperTemplateStatus.Doing;

            if (0 == olsEni.SaveChanges())
            {
                Assert.Fail("部署测试数据失败2。");
            }

            #endregion

            expected = "共有 2条记录。其中“未做” 1条;“进行中” 1条。";
            target = new ChangePaperTemplateStatus();
            actual = target.Change();

            Assert.AreEqual(expected, ((Dictionary<String, String>)(((ResponseJson)actual).data))["RecordInfo"]);
        }
コード例 #14
0
        public void ChangeTest()
        {
            Int32 id, epId, epqId;
            DateTime now, startTime;
            ExaminationTask et;
            ExaminationPaperTemplate ept;
            UExaminationTask uet;
            GeneratePaperTemplate_Accessor gpt = new GeneratePaperTemplate_Accessor();
            ChangePaperStatus target = new ChangePaperStatus();
            ResponseJson resJson;
            ExaminationPaper ep;
            ExaminationPaperQuestion epq;
            Object expected, actual;
            List<ExaminationPaperTemplateQuestion> eptqs;

            #region 部署测试数据

            now = DateTime.Now;
            uet = new UExaminationTask();

            startTime = new DateTime(1970, 1, 1, now.AddHours(1).Hour, now.Minute, 0);
            id = new Utility().GetETId();
            et = new ExaminationTask
            {
                ET_Id = id,
                ET_Name = "单元测试每日任务" + id,
                ET_Enabled = (Byte)ExaminationTaskStatus.Enabled,
                ET_Type = (Byte)ExaminationTaskType.Examination,
                ET_ParticipatingDepartment = "[6,9]",
                ET_Attendee = "[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,39,40,41,42,43,44,45]",
                ET_StatisticType = (Byte)StatisticType.Score,
                ET_TotalScore = 100,
                ET_TotalNumber = 10,
                ET_Mode = (Byte)ExaminationTaskMode.Auto,
                ET_AutoType = (Byte)AutoType.Day,
                ET_AutoOffsetDay = 0,
                ET_DifficultyCoefficient = 0,
                ET_AutoClassifies = "[\"综合、公文、绩效知识(90题)\",\"所得税知识(180题)\",\"营业税知识(60题)\",\"其他地方税知识(180题)\",\"税收征管法、相关法律法规及征管制度(253题)\",\"规费知识(130题)\",\"纳税服务知识(95题)\"]",
                ET_AutoRatio = "[{\"type\":\"单选题\",\"percent\":0.2},{\"type\":\"多选题\",\"percent\":0.2},{\"type\":\"判断题\",\"percent\":0.2},{\"type\":\"公文改错题\",\"percent\":0},{\"type\":\"计算题\",\"percent\":0},{\"type\":\"案例分析题\",\"percent\":0},{\"type\":\"问答题\",\"percent\":0}]",
                ET_StartTime = startTime,
                ET_EndTime = startTime,
                ET_TimeSpan = 0,
                ET_PaperTemplates = "[]",
                ET_Questions = "[]",
                ET_Remark = "",
                ET_AddTime = now,
                ET_Status = (Byte)Status.Available
            };
            olsEni.Entry(et).State = EntityState.Added;

            if (0 == olsEni.SaveChanges())
            {
                Assert.Fail("部署测试数据失败1。");
            }

            // 生成试卷模板数据
            uet = new UExaminationTask();
            resJson = gpt.Generate();
            if (ResponseStatus.Error == resJson.status || resJson.message != "")
            {
                Assert.Fail("部署测试数据失败3。" + resJson.message);
            }

            Thread.Sleep(10 * 1000);

            ept = olsEni.ExaminationPaperTemplates.SingleOrDefault(m => m.ET_Id == id);
            if (null == ept)
            {
                Assert.Fail("部署测试数据失败4。");
            }

            ept.EPT_PaperTemplateStatus = (Byte)PaperTemplateStatus.Done;

            if (0 == olsEni.SaveChanges())
            {
                Assert.Fail("部署测试数据失败2。");
            }

            // 添加试卷
            epId = new Utility().GetEPId();
            ep = new ExaminationPaper
            {
                EP_Id = epId,
                ET_Id = ept.ET_Id,
                EPT_Id = ept.EPT_Id,
                EP_PaperStatus = (Byte)PaperStatus.Doing,
                EP_EndTime = ept.EPT_EndTime,
                EP_TimeSpan = ept.EPT_TimeSpan,
                EP_UserId = 1,
                EP_UserName = "",
                EP_Score = -1,
                EP_Remark = "",
                EP_AddTime = now,
                EP_Status = (Byte)Status.Available
            };

            olsEni.Entry(ep).State = EntityState.Added;
            olsEni.SaveChanges();

            // 添加答题数据
            epqId = new Utility().GetEPQId();
            eptqs = olsEni.ExaminationPaperTemplateQuestions.Where(m => m.EPT_Id == ept.EPT_Id).ToList();

            foreach (var eptq in eptqs)
            {

                epq = new ExaminationPaperQuestion
                {
                    EPQ_Id = epqId,
                    EPQ_Answer = eptq.EPTQ_ModelAnswer,
                    EPQ_Exactness = (Byte)AnswerStatus.Unset,
                    EPQ_Critique = null,
                    EPQ_AddTime = now,
                    EP_Id = epId,
                    EPTQ_Id = eptq.EPTQ_Id
                };
                olsEni.Entry(epq).State = EntityState.Added;

                epqId += 1;
            }
            olsEni.SaveChanges();
            #endregion

            expected = ResponseStatus.Success;
            actual = target.Change();

            Assert.AreEqual(expected, ((ResponseJson)actual).status);

            olsEni.Entry(ep).State = EntityState.Detached;
            ep = null;

            ep = olsEni.ExaminationPapers.Single(m => m.EP_Id == epId);

            expected = (Byte)PaperStatus.Done;
            actual = ep.EP_PaperStatus;

            Assert.AreEqual(expected, actual);

            expected = 100;
            actual = ep.EP_Score;

            Assert.AreEqual(expected, actual);
        }