Example #1
0
        public void ShouldInsertTests()
        {
            // Given
            var db = new DataBaseMicrosoft(DataBasesTypes.MicrosoftAccess, TestHelper.CreateTempFile());
            var test = new Test("Пробный Тест", 70);
            var questions = new[]
            {
                new Question("Вопрос 1"),
                new Question("Вопрос 2")
            };
            var expected = new[]
            {
                new Test("Первый тест", 100),
                new Test("Пробный Тест", 70)
            };

            // When
            test.SetQuestions(questions);
            test.SetComponent(new Component("", 1));
            questions[0].SetAssessments(new Assessments());
            questions[1].SetAssessments(new Assessments());
            var status = db.ExecuteCommand(Parameters.Insert, test);
            var actual = db.GetElements<Test>();
            db.FillElement(actual[1]);
            TestHelper.DeleteTemp();

            // Then
            Assert.AreEqual(0, status.ExitCode);
            Assert.IsNull(status.ErrorMessage);
            Assert.AreEqual(expected.Length, actual.Length);
            Assert.IsInstanceOf<Test>(actual[0]);
            CollectionAssert.AreEqual(expected, actual);
            CollectionAssert.AreEqual(questions, actual[1].Questions);
        }
Example #2
0
        private void btnAddTest_Click(object sender, EventArgs e)
        {
            if (TestName == "")
            {
                MessageBox.Show("Не введен заголовок теста", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (_questions.Count == 0)
            {
                MessageBox.Show("Не введено ни одного ворпоса", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            int maxAssessment;

            try
            {
                maxAssessment = MaxAssessment;
            }
            catch
            {
                MessageBox.Show("Неверный формат строки в поле \"Максимальный балл за вопрос\"", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            var test = new Test(TestName, maxAssessment);

            try
            {
                foreach (var question in _questions)
                {
                    question.SetAssessments(_assessments[question.Text].GetAssessments(_selectedComponent));
                }
            }
            catch (Exception ex)
            {
                var exceptionMessage = ex.InnerException?.Message ?? ex.Message;

                MessageBox.Show(exceptionMessage, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

                return;
            }

            test.SetQuestions(_questions.ToArray());
            test.SetComponent(_selectedComponent);

            var status = _db.ExecuteCommand(Parameters.Insert, test);

            if (status.ExitCode == 0)
            {
                MessageBox.Show("Операция выполнена успешно", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show(status.ErrorMessage, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            Close();
        }