public TestViewModel(TestsService testsService)
 {
     TestsService  = testsService;
     CurrentIndex  = -1;
     NextQuestion  = new Command(ShowNextQuestion);
     ConfirmAnswer = new Command(ConfirmSelectedAnswer);
 }
Example #2
0
        public void SetTheTestEntityModelStatusIdToOne_WhenValidTestDtoProvided()
        {
            //Arrange
            var mapperMock    = new Mock <IMappingProvider>();
            var saverMock     = new Mock <ISaver>();
            var testsMock     = new Mock <IRepository <Test> >();
            var questionsMock = new Mock <IRepository <Question> >();
            var answersMock   = new Mock <IRepository <Answer> >();
            var userTestsMock = new Mock <IRepository <UserTest> >();

            var sut = new TestsService(saverMock.Object, mapperMock.Object, testsMock.Object, questionsMock.Object, answersMock.Object, userTestsMock.Object);

            var testDto = new TestDto();
            var test    = new Test()
            {
                StatusId = 1
            };

            mapperMock.Setup(x => x.MapTo <Test>(It.IsAny <TestDto>())).Returns(test);

            //Act
            sut.SaveAsDraft(testDto);

            //Assert
            Assert.AreEqual(2, test.StatusId);
        }
Example #3
0
        public void ThrowInvalidTestException_WhenTestWithProvidedIdIsFoundInUserTestsRepository()
        {
            //Arrange
            var mapperMock    = new Mock <IMappingProvider>();
            var saverMock     = new Mock <ISaver>();
            var testsMock     = new Mock <IRepository <Test> >();
            var questionsMock = new Mock <IRepository <Question> >();
            var answersMock   = new Mock <IRepository <Answer> >();
            var userTestsMock = new Mock <IRepository <UserTest> >();
            var id            = 1;

            var testsService = new TestsService(saverMock.Object, mapperMock.Object, testsMock.Object, questionsMock.Object, answersMock.Object, userTestsMock.Object);

            var testToDelete = new List <Test>()
            {
                new Test
                {
                    Id = 1
                }
            };

            var userTests = new List <UserTest>()
            {
                new UserTest
                {
                    TestId = 1
                }
            };

            testsMock.Setup(x => x.All).Returns(testToDelete.AsQueryable);
            userTestsMock.Setup(x => x.All).Returns(userTests.AsQueryable);

            //Act & Assert
            Assert.ThrowsException <InvalidTestException>(() => testsService.Delete(id));
        }
Example #4
0
        public void ThrowInvalidTestException_WhenValidTestDtoIsProvided_ButTestIsNotFoundInDb()
        {
            //Arrange
            var mapperMock    = new Mock <IMappingProvider>();
            var saverMock     = new Mock <ISaver>();
            var testsMock     = new Mock <IRepository <Test> >();
            var questionsMock = new Mock <IRepository <Question> >();
            var answersMock   = new Mock <IRepository <Answer> >();
            var userTestsMock = new Mock <IRepository <UserTest> >();

            var testsService = new TestsService(saverMock.Object, mapperMock.Object, testsMock.Object, questionsMock.Object, answersMock.Object, userTestsMock.Object);

            var testDto = new TestDto()
            {
                Id = 2
            };

            var testToEdit = new List <Test>()
            {
                new Test
                {
                    Id = 1
                }
            };

            testsMock.Setup(x => x.All).Returns(testToEdit.AsQueryable);

            //Act & Assert
            Assert.ThrowsException <InvalidTestException>(() => testsService.Edit(testDto));
        }
Example #5
0
        public void ThrowTestNotFoundException_WhenTestWithProvidedIdIsNotFound()
        {
            //Arrange
            var mapperMock    = new Mock <IMappingProvider>();
            var saverMock     = new Mock <ISaver>();
            var testsMock     = new Mock <IRepository <Test> >();
            var questionsMock = new Mock <IRepository <Question> >();
            var answersMock   = new Mock <IRepository <Answer> >();
            var userTestsMock = new Mock <IRepository <UserTest> >();
            var id            = 100;

            var testsService = new TestsService(saverMock.Object, mapperMock.Object, testsMock.Object, questionsMock.Object, answersMock.Object, userTestsMock.Object);

            var data = new List <Test>()
            {
                new Test
                {
                    Id           = 1,
                    IsDeleted    = false,
                    CreatedOn    = new DateTime(1991, 5, 1),
                    Title        = "TestTitle",
                    RequiredTime = 60,
                    AuthorId     = "TestAuthorId",
                    CategoryId   = 1,
                    StatusId     = 1
                }
            };

            testsMock.Setup(x => x.All).Returns(data.AsQueryable);

            //Act & Assert
            Assert.ThrowsException <TestNotFoundException>(() => testsService.Delete(id));
        }
Example #6
0
        public void CallTestRepositoryAllMethodOnce_WhenValidTestDtoIsProvided()
        {
            //Arrange
            var mapperMock    = new Mock <IMappingProvider>();
            var saverMock     = new Mock <ISaver>();
            var testsMock     = new Mock <IRepository <Test> >();
            var questionsMock = new Mock <IRepository <Question> >();
            var answersMock   = new Mock <IRepository <Answer> >();
            var userTestsMock = new Mock <IRepository <UserTest> >();

            var testsService = new TestsService(saverMock.Object, mapperMock.Object, testsMock.Object, questionsMock.Object, answersMock.Object, userTestsMock.Object);

            var testDto = new TestDto()
            {
                Id        = 1,
                Questions = new List <QuestionDto>()
            };

            var testToEdit = new List <Test>()
            {
                new Test
                {
                    Id = 1
                }
            };

            testsMock.Setup(x => x.All).Returns(testToEdit.AsQueryable);
            //Act
            testsService.Edit(testDto);

            //Assert
            testsMock.Verify(x => x.All, Times.Once);
        }
Example #7
0
        public void Call_RepositoryUpdate_WithTheUpdatedTestObject()
        {
            // Arrange
            var testsRepository = new Mock <IEfRepository <Test> >();
            var efData          = new Mock <IEfData>();
            var mapper          = new Mock <IMappingProvider>();

            var service = new TestsService(testsRepository.Object, efData.Object, mapper.Object);

            var testId   = Guid.NewGuid();
            var testFake = new Mock <Test>();

            testsRepository.Setup(x => x.GetById(testId)).Returns(testFake.Object);

            Test passedTest = null;

            testsRepository.Setup(x => x.Update(It.IsAny <Test>()))
            .Callback <Test>(x => passedTest = x);

            string input  = "someinput";
            string output = "someoutput";

            // Act
            service.Update(testId, input, output);

            // Assert
            Assert.AreEqual(passedTest.Input, input);
            Assert.AreEqual(passedTest.Output, output);
        }
Example #8
0
        public void EditQuestionEntityContentCorrectly_WhenValidTestDtoIsProvided()
        {
            //Arrange
            var mapperMock    = new Mock <IMappingProvider>();
            var saverMock     = new Mock <ISaver>();
            var testsMock     = new Mock <IRepository <Test> >();
            var questionsMock = new Mock <IRepository <Question> >();
            var answersMock   = new Mock <IRepository <Answer> >();
            var userTestsMock = new Mock <IRepository <UserTest> >();

            var sut = new TestsService(saverMock.Object, mapperMock.Object, testsMock.Object, questionsMock.Object, answersMock.Object, userTestsMock.Object);

            var testDto = new TestDto()
            {
                Id        = 1,
                Questions = new List <QuestionDto>()
                {
                    new QuestionDto()
                    {
                        Id      = 1,
                        Content = "New content",
                        Answers = new List <AnswerDto>()
                    }
                }
            };

            var testToEdit = new List <Test>()
            {
                new Test
                {
                    StatusId = 2,
                    Id       = 1
                }
            };

            var questionsToEdit = new List <Question>()
            {
                new Question
                {
                    Id      = 1,
                    Content = "Old content",
                    TestId  = 1,
                    Answers = new List <Answer>()
                    {
                        new Answer()
                    }
                }
            };

            testsMock.Setup(x => x.All).Returns(testToEdit.AsQueryable);
            questionsMock.Setup(x => x.All).Returns(questionsToEdit.AsQueryable);

            //Act
            sut.Edit(testDto);

            //Assert
            Assert.IsTrue(testDto.Questions.First().Content == testToEdit[0].Questions.First().Content&& testToEdit[0].Questions.First().Content == "New content");
        }
        public CourseViewModel(Course course, Navigator navigator, CoursesService service, TestsService testsService, Func <Test, TestsListItemViewModel> testViewModelFactory)
        {
            Service              = service;
            TestsService         = testsService;
            AppNavigator         = navigator;
            TestViewModelFactory = testViewModelFactory;

            InitializeViewModelFromModel(course);
        }
Example #10
0
        public ActionResult TestPage()
        {
            //id теста для выгрузки
            var id      = 1;
            var results = TestsService.GetTest(id);

            ViewBag.test = results;
            return(View());
        }
Example #11
0
        public TestsListItemViewModel(Test test, Navigator navigator, TestsService service)
        {
            AppNavigator = navigator;
            TestsService = service;

            Id     = test.Id;
            Name   = test.Name;
            Detail = test.Detail;
            ShowTestDetailsCommand = new Command(ShowTestDetails);
        }
Example #12
0
        public void AnswerRepositoryDeleteMethodIsInvokedTwice_WhenTestWithProvidedIdIsNotFoundInUserTestsRepository_AndTestHasTwoQuestions_AndTheyHaveOneAnswerEach()
        {
            //Arrange
            var mapperMock    = new Mock <IMappingProvider>();
            var saverMock     = new Mock <ISaver>();
            var testsMock     = new Mock <IRepository <Test> >();
            var questionsMock = new Mock <IRepository <Question> >();
            var answersMock   = new Mock <IRepository <Answer> >();
            var userTestsMock = new Mock <IRepository <UserTest> >();
            var id            = 1;

            var testsService = new TestsService(saverMock.Object, mapperMock.Object, testsMock.Object, questionsMock.Object, answersMock.Object, userTestsMock.Object);

            var testToDelete = new List <Test>()
            {
                new Test
                {
                    Id        = 1,
                    Questions = new List <Question>()
                    {
                        new Question()
                        {
                            Answers = new List <Answer>()
                            {
                                new Answer()
                            }
                        },
                        new Question()
                        {
                            Answers = new List <Answer>()
                            {
                                new Answer()
                            }
                        }
                    }
                }
            };

            var userTests = new List <UserTest>()
            {
                new UserTest
                {
                    TestId = 2
                }
            };

            testsMock.Setup(x => x.All).Returns(testToDelete.AsQueryable);
            userTestsMock.Setup(x => x.All).Returns(userTests.AsQueryable);

            //Act
            testsService.Delete(id);

            //Assert
            answersMock.Verify(x => x.Delete(It.IsAny <Answer>()), Times.Exactly(2));
        }
Example #13
0
        public void CallSaverSaveChangesMethodOnce_WhenValidTestDtoIsProvided()
        {
            //Arrange
            var mapperMock    = new Mock <IMappingProvider>();
            var saverMock     = new Mock <ISaver>();
            var testsMock     = new Mock <IRepository <Test> >();
            var questionsMock = new Mock <IRepository <Question> >();
            var answersMock   = new Mock <IRepository <Answer> >();
            var userTestsMock = new Mock <IRepository <UserTest> >();

            var sut = new TestsService(saverMock.Object, mapperMock.Object, testsMock.Object, questionsMock.Object, answersMock.Object, userTestsMock.Object);

            var testDto = new TestDto()
            {
                Id        = 1,
                Questions = new List <QuestionDto>()
                {
                    new QuestionDto()
                    {
                        Id      = 1,
                        Content = "New content",
                        Answers = new List <AnswerDto>()
                    }
                }
            };

            var testToEdit = new List <Test>()
            {
                new Test
                {
                    Id = 1
                }
            };

            var questionsToEdit = new List <Question>()
            {
                new Question
                {
                    Id      = 1,
                    Content = "Old content",
                    TestId  = 1,
                    Answers = new List <Answer>()
                }
            };

            testsMock.Setup(x => x.All).Returns(testToEdit.AsQueryable);
            questionsMock.Setup(x => x.All).Returns(questionsToEdit.AsQueryable);

            //Act
            sut.Edit(testDto);

            //Assert
            saverMock.Verify(x => x.SaveChanges(), Times.Once);
        }
Example #14
0
 public ExecuteTestHub(
     Paths paths,
     IOptions <AppSettings> appSettings,
     TestsService testsService,
     HubExeRunner exeRunner
     )
 {
     _paths        = paths;
     _appSettings  = appSettings;
     _testsService = testsService;
     _exeRunner    = exeRunner;
 }
Example #15
0
        public void EditTestEntityRequiredTimeCorrectly_WhenValidTestDtoIsProvided()
        {
            //Arrange
            var mapperMock    = new Mock <IMappingProvider>();
            var saverMock     = new Mock <ISaver>();
            var testsMock     = new Mock <IRepository <Test> >();
            var questionsMock = new Mock <IRepository <Question> >();
            var answersMock   = new Mock <IRepository <Answer> >();
            var userTestsMock = new Mock <IRepository <UserTest> >();

            var sut = new TestsService(saverMock.Object, mapperMock.Object, testsMock.Object, questionsMock.Object, answersMock.Object, userTestsMock.Object);

            var testDto = new TestDto()
            {
                RequiredTime = 10,
                Id           = 1,
                Questions    = new List <QuestionDto>()
            };

            var testToEdit = new List <Test>()
            {
                new Test
                {
                    RequiredTime = 100,
                    Id           = 1
                }
            };

            var questions = new List <Question>()
            {
                new Question
                {
                    TestId  = 1,
                    Answers = new List <Answer>()
                    {
                        new Answer()
                    }
                }
            };

            testsMock.Setup(x => x.All).Returns(testToEdit.AsQueryable);
            questionsMock.Setup(x => x.All).Returns(questions.AsQueryable);

            //Act
            sut.Edit(testDto);

            //Assert
            Assert.IsTrue(testDto.RequiredTime == testToEdit[0].RequiredTime && testToEdit[0].RequiredTime == 10);
        }
Example #16
0
        public void ThrowInvalidTestException_WhenNullTestDtoIsProvided()
        {
            //Arrange
            var mapperMock    = new Mock <IMappingProvider>();
            var saverMock     = new Mock <ISaver>();
            var testsMock     = new Mock <IRepository <Test> >();
            var questionsMock = new Mock <IRepository <Question> >();
            var answersMock   = new Mock <IRepository <Answer> >();
            var userTestsMock = new Mock <IRepository <UserTest> >();

            var testsService = new TestsService(saverMock.Object, mapperMock.Object, testsMock.Object, questionsMock.Object, answersMock.Object, userTestsMock.Object);

            //Act & Assert
            Assert.ThrowsException <InvalidTestException>(() => testsService.Edit(null));
        }
Example #17
0
        public void ThrowArgumentOutOfRangeException_WhenIdLessThanZeroIsProvided()
        {
            //Arrange
            var mapperMock    = new Mock <IMappingProvider>();
            var saverMock     = new Mock <ISaver>();
            var testsMock     = new Mock <IRepository <Test> >();
            var questionsMock = new Mock <IRepository <Question> >();
            var answersMock   = new Mock <IRepository <Answer> >();
            var userTestsMock = new Mock <IRepository <UserTest> >();
            var id            = -1;

            var testsService = new TestsService(saverMock.Object, mapperMock.Object, testsMock.Object, questionsMock.Object, answersMock.Object, userTestsMock.Object);

            //Act & Assert
            Assert.ThrowsException <ArgumentOutOfRangeException>(() => testsService.Delete(id));
        }
Example #18
0
        public void ThrowsArgumentException_WhenTesWithThePassedId_IsNotFound()
        {
            // Arrange
            var testsRepository = new Mock <IEfRepository <Test> >();
            var efData          = new Mock <IEfData>();
            var mapper          = new Mock <IMappingProvider>();

            var service = new TestsService(testsRepository.Object, efData.Object, mapper.Object);

            var testId = Guid.NewGuid();

            testsRepository.Setup(x => x.GetById(testId)).Returns(It.IsAny <Test>());

            // Act & Assert
            Assert.Throws <ArgumentException>(() => service.DeleteById(testId));
        }
Example #19
0
        public void CreateInstance_WhenInvokedWithValidParameters()
        {
            //Arrange
            var mapperMock    = new Mock <IMappingProvider>();
            var saverMock     = new Mock <ISaver>();
            var testsMock     = new Mock <IRepository <Test> >();
            var questionsMock = new Mock <IRepository <Question> >();
            var answersMock   = new Mock <IRepository <Answer> >();
            var userTestsMock = new Mock <IRepository <UserTest> >();

            //Act
            var statusService = new TestsService(saverMock.Object, mapperMock.Object, testsMock.Object, questionsMock.Object, answersMock.Object, userTestsMock.Object);

            //Assert
            Assert.IsNotNull(statusService);
            Assert.IsInstanceOfType(statusService, typeof(ITestsService));
        }
Example #20
0
        public void ThrowInvalidTestExceptionWithExpectedMessage_WhenValidTestDtoIsProvided_ButTestIsNotFoundInDb()
        {
            //Arrange
            var mapperMock    = new Mock <IMappingProvider>();
            var saverMock     = new Mock <ISaver>();
            var testsMock     = new Mock <IRepository <Test> >();
            var questionsMock = new Mock <IRepository <Question> >();
            var answersMock   = new Mock <IRepository <Answer> >();
            var userTestsMock = new Mock <IRepository <UserTest> >();

            var testsService = new TestsService(saverMock.Object, mapperMock.Object, testsMock.Object, questionsMock.Object, answersMock.Object, userTestsMock.Object);

            var testDto = new TestDto()
            {
                Id = 2
            };

            var testToEdit = new List <Test>()
            {
                new Test
                {
                    Id = 1
                }
            };

            testsMock.Setup(x => x.All).Returns(testToEdit.AsQueryable);
            string expectedMsg = $"Test with id {testDto.Id} not found!";
            string actualMsg   = "";

            //Act
            try
            {
                testsService.Edit(testDto);
            }
            catch (InvalidTestException ex)
            {
                actualMsg = ex.Message;
            }

            //Assert
            Assert.AreEqual(expectedMsg, actualMsg);
        }
Example #21
0
        public void Call_TestRepository_ToDeleteTheFoundTest()
        {
            // Arrange
            var testsRepository = new Mock <IEfRepository <Test> >();
            var efData          = new Mock <IEfData>();
            var mapper          = new Mock <IMappingProvider>();

            var service = new TestsService(testsRepository.Object, efData.Object, mapper.Object);

            var testFake = new Mock <Test>();

            testsRepository.Setup(x => x.GetById(It.IsAny <Guid>())).Returns(testFake.Object);
            testsRepository.Setup(x => x.Delete(testFake.Object)).Verifiable();

            // Act
            service.DeleteById(It.IsAny <Guid>());

            // Assert
            testsRepository.Verify(x => x.Delete(testFake.Object), Times.AtLeastOnce);
        }
Example #22
0
        public void Call_Repository_WithCorrectId()
        {
            // Arrange
            var testsRepository = new Mock <IEfRepository <Test> >();
            var efData          = new Mock <IEfData>();
            var mapper          = new Mock <IMappingProvider>();

            var service = new TestsService(testsRepository.Object, efData.Object, mapper.Object);

            var testId   = Guid.NewGuid();
            var testFake = new Mock <Test>();

            testsRepository.Setup(x => x.GetById(testId)).Returns(testFake.Object).Verifiable();

            // Act
            service.DeleteById(testId);

            // Assert
            testsRepository.Verify(x => x.GetById(testId), Times.AtLeastOnce);
        }
Example #23
0
        public void Save_AfterUpdatingTheTestObject()
        {
            // Arrange
            var testsRepository = new Mock <IEfRepository <Test> >();
            var efData          = new Mock <IEfData>();
            var mapper          = new Mock <IMappingProvider>();

            var service = new TestsService(testsRepository.Object, efData.Object, mapper.Object);

            var testId   = Guid.NewGuid();
            var testFake = new Mock <Test>();

            testsRepository.Setup(x => x.GetById(testId)).Returns(testFake.Object);
            efData.Setup(x => x.Commit()).Verifiable();

            // Act
            service.Update(testId, It.IsAny <string>(), It.IsAny <string>());

            // Assert
            efData.Verify(x => x.Commit(), Times.AtLeastOnce);
        }
Example #24
0
        public void SaveChanges_WhenCorrectParamIsPassed()
        {
            // Arrange
            var testsRepository = new Mock <IEfRepository <Test> >();
            var efData          = new Mock <IEfData>();
            var mapper          = new Mock <IMappingProvider>();

            var service = new TestsService(testsRepository.Object, efData.Object, mapper.Object);

            var testFake = new Mock <Test>();

            testsRepository.Setup(x => x.GetById(It.IsAny <Guid>())).Returns(testFake.Object);
            testsRepository.Setup(x => x.Delete(It.IsAny <Test>()));
            efData.Setup(x => x.Commit()).Verifiable();

            // Act
            service.DeleteById(It.IsAny <Guid>());

            // Assert
            efData.Verify(x => x.Commit(), Times.AtLeastOnce);
        }
    private async void OperationState_StateChanged(object sender, OperationStateChangedEventArgs e)
    {
        if (e.State == TestOperationStates.TestExecutionStarted)
        {
            InfoControl.ResetBackgroundColor();
        }
        else if (e.State == TestOperationStates.TestExecutionFinished)
        {
            IEnumerable <ITest> tests;
            try
            {
                IDisposableQuery <ITest> obsoleteTests = await TestsService.GetTestsAsync();

                tests = obsoleteTests.AsEnumerable();
            }
            catch
            {
                tests = await TestsService.GetTestsAsEnumerableAsync();
            }
            InfoControl.UpdateWithTestResult(tests);
        }
    }
Example #26
0
        public void SaverIsInvokedOnce_WhenTestWithProvidedIdIsNotFoundInUserTestsRepository()
        {
            //Arrange
            var mapperMock    = new Mock <IMappingProvider>();
            var saverMock     = new Mock <ISaver>();
            var testsMock     = new Mock <IRepository <Test> >();
            var questionsMock = new Mock <IRepository <Question> >();
            var answersMock   = new Mock <IRepository <Answer> >();
            var userTestsMock = new Mock <IRepository <UserTest> >();
            var id            = 1;

            var testsService = new TestsService(saverMock.Object, mapperMock.Object, testsMock.Object, questionsMock.Object, answersMock.Object, userTestsMock.Object);

            var testToDelete = new List <Test>()
            {
                new Test
                {
                    Id = 1
                }
            };

            var userTests = new List <UserTest>()
            {
                new UserTest
                {
                    TestId = 2
                }
            };

            testsMock.Setup(x => x.All).Returns(testToDelete.AsQueryable);
            userTestsMock.Setup(x => x.All).Returns(userTests.AsQueryable);

            //Act
            testsService.Delete(id);

            //Assert
            saverMock.Verify(x => x.SaveChanges(), Times.Once);
        }
Example #27
0
        public void CallTestsRepositoryAddMethodOnce_WhenValidTestDtoProvided()
        {
            //Arrange
            var mapperMock    = new Mock <IMappingProvider>();
            var saverMock     = new Mock <ISaver>();
            var testsMock     = new Mock <IRepository <Test> >();
            var questionsMock = new Mock <IRepository <Question> >();
            var answersMock   = new Mock <IRepository <Answer> >();
            var userTestsMock = new Mock <IRepository <UserTest> >();

            var sut = new TestsService(saverMock.Object, mapperMock.Object, testsMock.Object, questionsMock.Object, answersMock.Object, userTestsMock.Object);

            var testDto = new TestDto();
            var test    = new Test();

            mapperMock.Setup(x => x.MapTo <Test>(It.IsAny <TestDto>())).Returns(test);

            //Act
            sut.SaveAsDraft(testDto);

            //Assert
            testsMock.Verify(x => x.Add(It.IsAny <Test>()), Times.Once);
        }
Example #28
0
        public void Change_InputProperty_WithThePassedValue()
        {
            // Arrange
            var testsRepository = new Mock <IEfRepository <Test> >();
            var efData          = new Mock <IEfData>();
            var mapper          = new Mock <IMappingProvider>();

            var service = new TestsService(testsRepository.Object, efData.Object, mapper.Object);

            var testId   = Guid.NewGuid();
            var testFake = new Mock <Test>();

            testsRepository.Setup(x => x.GetById(testId)).Returns(testFake.Object);

            string input  = "someinput";
            string output = "someoutput";

            // Act
            service.Update(testId, input, output);

            // Assert
            Assert.AreEqual(testFake.Object.Input, input);
            Assert.AreEqual(testFake.Object.Output, output);
        }
Example #29
0
 public CreateTestModel(List <Test> systemTests, Test test, TestsService Tservice)
 {
     testsService     = Tservice;
     this.SystemTests = systemTests;
     Test             = testsService.GetTest().ToList()[0]; // THIS IS WRONG, BUT DONE TO FIX TEMPORARY ERROR
 }
Example #30
0
        public void UpdateExistingQuestionsAndAddNewOnesWithoutAffectingTheOldOnesSuccessfully_WhenValidTestDtoIsProvided()
        {
            //Arrange
            var mapperMock    = new Mock <IMappingProvider>();
            var saverMock     = new Mock <ISaver>();
            var testsMock     = new Mock <IRepository <Test> >();
            var questionsMock = new Mock <IRepository <Question> >();
            var answersMock   = new Mock <IRepository <Answer> >();
            var userTestsMock = new Mock <IRepository <UserTest> >();

            var sut = new TestsService(saverMock.Object, mapperMock.Object, testsMock.Object, questionsMock.Object, answersMock.Object, userTestsMock.Object);

            var testDto = new TestDto()
            {
                Id        = 1,
                Questions = new List <QuestionDto>()
                {
                    new QuestionDto()
                    {
                        Id      = 123,
                        Content = "New content of already added question",
                        Answers = new List <AnswerDto>()
                        {
                            new AnswerDto()
                            {
                                Id        = 321,
                                IsDeleted = true,
                                Content   = "New content of already added answer",
                                IsCorrect = true
                            }
                        }
                    },
                    new QuestionDto()
                    {
                        Id      = 2,
                        Content = "Content of newly added question",
                        Answers = new List <AnswerDto>()
                        {
                            new AnswerDto()
                            {
                                Id        = 2,
                                IsDeleted = true,
                                Content   = "Content of newly added answer",
                                IsCorrect = true
                            }
                        }
                    }
                }
            };

            var testToEdit = new List <Test>()
            {
                new Test
                {
                    Id = 1
                }
            };

            var questionsToEdit = new List <Question>()
            {
                new Question
                {
                    Id      = 123,
                    Content = "Old content",
                    TestId  = 1
                }
            };

            var answerToEdit = new List <Answer>()
            {
                new Answer()
                {
                    Id         = 321,
                    QuestionId = 123,
                    Content    = "Old content",
                    IsCorrect  = false
                }
            };

            testsMock.Setup(x => x.All).Returns(testToEdit.AsQueryable);
            questionsMock.Setup(x => x.All).Returns(questionsToEdit.AsQueryable);
            answersMock.Setup(x => x.All).Returns(answerToEdit.AsQueryable);

            //Act
            sut.Edit(testDto);

            //Assert
            Assert.IsTrue(testDto.Questions.First().Content == testToEdit[0].Questions.First().Content);
            Assert.IsTrue(testToEdit[0].Questions.Count == 2);
            Assert.IsTrue(testToEdit[0].Questions.ElementAt(0).Content == "New content of already added question" && testToEdit[0].Questions.ElementAt(1).Content == "Content of newly added question");
        }