Ejemplo n.º 1
0
        public async Task GetAllAnswersForAQuestionById_WithCorrectData_ShouldReturnCorrectResult()
        {
            string errorMessagePrefix = "AnswersService Method GetAllAnswersForQuestionById() does not work properly.";

            var context = CDGBulgariaInmemoryFactory.InitializeContext();

            await SeedData(context);

            this.answersService = new AnswersService(context);

            List <AnswerServiceModel> expectedResults = GetInitialData().Where(a => a.QuestionId == "trtsjjsch567jscj").To <AnswerServiceModel>().ToList();
            List <AnswerServiceModel> actualResults   = this.answersService.GetAllAnswersForAQuestionById("trtsjjsch567jscj")
                                                        .To <AnswerServiceModel>()
                                                        .ToList();

            Assert.True(expectedResults.Count == actualResults.Count, errorMessagePrefix);

            for (int i = 0; i < expectedResults.Count; i++)
            {
                var expectedEntry = expectedResults[i];
                var actualEntry   = actualResults[i];

                Assert.True(expectedEntry.Content == actualEntry.Content, errorMessagePrefix + " " + " Content is not returned properly");
                Assert.True(expectedEntry.QuestionId == actualEntry.QuestionId, errorMessagePrefix + " " + "QuestionId is not returned properly");
                Assert.True(expectedEntry.AuthorId == actualEntry.AuthorId, errorMessagePrefix + " " + "AuthorId is not returned properly");
            }
        }
Ejemplo n.º 2
0
        public void GetQuestionAnswers_WhenQuestionDoesNotExist_ShouldReturnEmptyList()
        {
            var answers = new List <TaskAnswer>()
            {
                new TaskAnswer
                {
                    Id        = "id1",
                    IsCorrect = true,
                    Location  = "location 1",
                    Answer    = "asnwer 1",
                    IsDeleted = false
                },
                new TaskAnswer
                {
                    Id        = "id2",
                    IsCorrect = false,
                    Location  = "location 2",
                    Answer    = "asnwer 2",
                    IsDeleted = false
                }
            };

            taskAnswersRepositoryMock.Setup(s => s.GetAnswersByQuestion("questionId")).Returns(answers);
            var service = new AnswersService(mapper, taskAnswersRepositoryMock.Object);

            var results = service.GetQuestionAnswers("NotExistantId");

            results.ShouldNotBeNull();
            results.Count().ShouldBe(0);
        }
Ejemplo n.º 3
0
        public async Task AddItemAsync()
        {
            //Arrange

            // var mock = new Mock<AnswersService>();
            // mock.Setup(x => x.AddItemAsync(answer1).Result).Returns(answer1.Id);

            var service = new AnswersService(db);


            //Act

            var expected = answer1.Id;
            var result   = await service.AddItemAsync(answer1);

            //mock
            // var result = await service.AddItemAsync(answer1);


            //Assert
            Assert.Equal(expected, result);

            // result.Should().NotBeEmpty();
            // result.Should().BeOfType(typeof(Answer));
            // result.Should().BeSameAs(expected);


            //Clean
            await service.DeleteAsync(answer1);
        }
Ejemplo n.º 4
0
 public TriviaController()
 {
     this.db = new TriviaContext();
     this.questionsService  = new QuestionsService(db);
     this.answersService    = new AnswersService(db);
     this.statisticsService = new StatisticsService(db);
 }
Ejemplo n.º 5
0
        async void OnAnswerButtonClicked(object sender, System.EventArgs e)
        {
            User user = JsonConvert.DeserializeObject <User>(Settings.UserSettings);

            if (user != null)
            {
                if (answerEditor.Text == null || answerEditor.Text.Length == 0 ||
                    answerEditor.Text.Length > MAX_LENGTH)
                {
                    return;
                }

                Answer newAnswer = new Answer()
                {
                    Body       = answerEditor.Text,
                    UserId     = user.Id,
                    QuestionId = viewModel.QuestionViewModel.Question.Id
                };
                answerEditor.Text = null;
                var answer = await AnswersService.DoAnswersAddRequest(newAnswer);

                viewModel.LoadAnswersCommand.Execute(null);
            }
            else
            {
                await Navigation.PushModalAsync(new NavigationPage(new LoginPage()));
            }
        }
Ejemplo n.º 6
0
        public void InvokeMapperMethodMapTo_WhenParametersAreCorrect()
        {
            //Arrange
            var mapperMock     = new Mock <IMappingProvider>();
            var saverMock      = new Mock <ISaver>();
            var answerRepoMock = new Mock <IRepository <Answer> >();

            var answerService = new AnswersService(saverMock.Object, mapperMock.Object, answerRepoMock.Object);

            var data = new List <Answer>()
            {
                new Answer {
                    Id = 1, Content = "AlaBala", QuestionId = 1
                }
            };

            answerRepoMock.Setup(a => a.All).Returns(data.AsQueryable());
            var mapperData = new AnswerDto()
            {
                Id = 1, Content = "AlaBala", QuestionId = 1
            };

            mapperMock.Setup(m => m.MapTo <AnswerDto>(It.IsAny <Answer>())).Returns(mapperData);

            //Act
            var dto = answerService.GetById(1);

            //Assert
            mapperMock.Verify(x => x.MapTo <AnswerDto>(It.IsAny <Answer>()), Times.Once);
        }
Ejemplo n.º 7
0
        public void ReturnAnswerDto_WhenParametersAreCorrect()
        {
            //Arrange
            var mapperMock     = new Mock <IMappingProvider>();
            var saverMock      = new Mock <ISaver>();
            var answerRepoMock = new Mock <IRepository <Answer> >();

            var answerService = new AnswersService(saverMock.Object, mapperMock.Object, answerRepoMock.Object);

            var data = new List <Answer>()
            {
                new Answer {
                    Id = 1, Content = "AlaBala", QuestionId = 1
                }
            };

            answerRepoMock.Setup(a => a.All).Returns(data.AsQueryable());
            var mapperData = new AnswerDto()
            {
                Id = 1, Content = "AlaBala", QuestionId = 1
            };

            mapperMock.Setup(m => m.MapTo <AnswerDto>(It.IsAny <Answer>())).Returns(mapperData);

            //Act
            var dto = answerService.GetById(1);

            //Assert
            Assert.IsNotNull(dto);
            Assert.IsInstanceOfType(dto, typeof(AnswerDto));
        }
Ejemplo n.º 8
0
        public void TestGetAnswers_ReturnsNotNull()
        {
            var service = new AnswersService(new AnswersStubDao(), new EvaluationsStubDao(), new TemplatesStubDao());
            var actual  = service.GetAnswers(Guid.Parse("11111111-1111-1111-1111-111111111112"));

            Assert.NotNull(actual);
        }
Ejemplo n.º 9
0
        public void AnswerExists(int answerId)
        {
            //Arrange
            TestUtils testUtils = new TestUtils();
            var       db        = testUtils.GetDbContext();

            this.PopulateDb(db);
            var sut = new AnswersService(db);

            //Act
            //Assert
            Assert.True(sut.Exists(answerId));
        }
Ejemplo n.º 10
0
        public void CreateAnswerSavesItToDatabase(int questionId)
        {
            //Arrange
            TestUtils testUtils = new TestUtils();
            var       db        = testUtils.GetDbContext();
            var       sut       = new AnswersService(db);

            //Act
            sut.Create(questionId, "asd", "test", DateTime.UtcNow);

            //Assert
            Assert.True(db.Answers.Any(a => a.QuestionId == questionId));
        }
Ejemplo n.º 11
0
        public void ThrowArgumentNullException_WhenInvokedWithNullAnswerRepositoryParameter()
        {
            //Arrange
            var mapperMock     = new Mock <IMappingProvider>();
            var saverMock      = new Mock <ISaver>();
            var answerRepoMock = new Mock <IRepository <Answer> >();

            //Act
            var answerService = new AnswersService(saverMock.Object, mapperMock.Object, answerRepoMock.Object);

            //Act & Assert
            Assert.ThrowsException <ArgumentNullException>(() => new AnswersService(saverMock.Object, mapperMock.Object, null));
        }
Ejemplo n.º 12
0
        public async Task GetAllAnswersForAQuestionById_WithNonExistentQuestionId_ShouldReturnZeroCount()
        {
            string errorMessagePrefix = "AnswersService Method GetAllAnswersForAQuestionById() does not work properly.";

            var context = CDGBulgariaInmemoryFactory.InitializeContext();

            await SeedData(context);

            this.answersService = new AnswersService(context);

            List <AnswerServiceModel> actualResult = await this.answersService.GetAllAnswersForAQuestionById("fake1").ToListAsync();

            Assert.True(actualResult.Count == 0, errorMessagePrefix);
        }
        private async Task <AnswersService> ArrangeServiceAsync()
        {
            ApplicationDbContext db = GetDb();

            var repository         = new EfDeletableEntityRepository <Answer>(db);
            var questionRepository = new EfDeletableEntityRepository <Question>(db);

            await this.AddQuestionAsync(questionRepository);

            var service = new AnswersService(repository, questionRepository);
            await service.CreateAsync("title", "content", this.stylist.Id, this.client.Id, this.question.Id);

            return(service);
        }
Ejemplo n.º 14
0
        public void CreateInstance_WhenInvokedWithValidParameters()
        {
            //Arrange
            var mapperMock     = new Mock <IMappingProvider>();
            var saverMock      = new Mock <ISaver>();
            var answerRepoMock = new Mock <IRepository <Answer> >();

            //Act
            var answerService = new AnswersService(saverMock.Object, mapperMock.Object, answerRepoMock.Object);

            //Assert
            Assert.IsNotNull(answerService);
            Assert.IsInstanceOfType(answerService, typeof(IAnswersService));
        }
Ejemplo n.º 15
0
        public void DeleteAnswerRemovesItFromDb(int answerId)
        {
            //Arrange
            TestUtils testUtils = new TestUtils();
            var       db        = testUtils.GetDbContext();

            this.PopulateDb(db);
            var sut = new AnswersService(db);

            //Act
            sut.Delete(answerId);
            //Assert
            Assert.True(!db.Answers.Any(a => a.Id == answerId));
        }
Ejemplo n.º 16
0
        public void AnswerHasCorrectContent(int id)
        {
            //Arrange
            TestUtils testUtils = new TestUtils();
            var       db        = testUtils.GetDbContext();

            this.PopulateDb(db);
            var sut = new AnswersService(db);

            //Act
            var content = sut.GetAnswerContent(id);

            //Assert
            Assert.True(content == $"Content{id}");
        }
Ejemplo n.º 17
0
        public void ReturnTrueThatUserIfUserCanEdit(int id)
        {
            //Arrange
            TestUtils testUtils = new TestUtils();
            var       db        = testUtils.GetDbContext();

            this.PopulateDb(db);
            var sut = new AnswersService(db);

            //Act
            var canEdit = sut.UserCanEdit(id, $"asd{id}");

            //Assert
            Assert.True(canEdit);
        }
Ejemplo n.º 18
0
        public void UpdateAnswerContent(int id)
        {
            //Arrange
            TestUtils testUtils = new TestUtils();
            var       db        = testUtils.GetDbContext();

            this.PopulateDb(db);
            var sut = new AnswersService(db);

            //Act
            sut.Update(id, $"NewContent{id}");

            //Assert
            Assert.True(db.Answers.First(a => a.Id == id).Content == $"NewContent{id}");
        }
Ejemplo n.º 19
0
        public void GetAnswer_WhenAnswerDoesNotExist_ShouldThrowNotFoundException()
        {
            var returned = new TaskAnswer
            {
                Id         = "id",
                IsCorrect  = true,
                Location   = "location",
                Answer     = "asnwer",
                IsDeleted  = false,
                GameTaskId = "taskId"
            };

            taskAnswersRepositoryMock.Setup(s => s.Get("id")).Returns(returned);
            var service = new AnswersService(mapper, taskAnswersRepositoryMock.Object);

            Should.Throw <NotFoundException>(() => service.GetAnswer("Not existing"));
        }
        public async Task CheckGettingAnswersDetailsAsync()
        {
            ApplicationDbContext db = GetDb();

            var repository         = new EfDeletableEntityRepository <Answer>(db);
            var questionRepository = new EfDeletableEntityRepository <Question>(db);

            await this.AddQuestionAsync(questionRepository);

            var service = new AnswersService(repository, questionRepository);

            var answerId = await service.CreateAsync("title", "content", this.stylist.Id, this.client.Id, this.question.Id);

            var answerResult = await service.GetAnswerDetailsAsync <TestAnswerModel>(answerId);

            Assert.Equal(answerId, answerResult.Id);
        }
        public async Task AnswerIsRedAsyncPropertyShoudChangeToTrue()
        {
            ApplicationDbContext db = GetDb();

            var repository = new EfDeletableEntityRepository <Answer>(db);
            var service    = new AnswersService(repository, this.questionsRepository.Object);

            var answer = new Answer()
            {
                Id = Guid.NewGuid().ToString()
            };

            await db.Answers.AddAsync(answer);

            await db.SaveChangesAsync();

            await service.ChangeIsRedAsync(answer.Id);

            Assert.True(answer.IsRed);
        }
Ejemplo n.º 22
0
        public async Task Create_WithCorrectData_ShouldSuccesfullyCreate()
        {
            string errorMessagePrefix = "AnswersService Method CreateAnswer() does not work properly.";

            var context = CDGBulgariaInmemoryFactory.InitializeContext();

            await SeedData(context);

            this.answersService = new AnswersService(context);

            AnswerServiceModel answerServiceModel = new AnswerServiceModel()
            {
                Content    = "Sofia is the place, where the association is founded.",
                QuestionId = "dfghrf3456"
            };

            bool actualResult = await this.answersService.CreateAnswer(answerServiceModel);

            Assert.True(actualResult, errorMessagePrefix);
        }
Ejemplo n.º 23
0
        protected async Task ExecuteLoadAnswersCommand()
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;

            try
            {
                Answers.Clear();
                var    id       = QuestionViewModel.Question.Id;
                object responce = await AnswersService.DoAnswersGetRequest(id);

                if (responce is ErrorMessage)
                {
                    ErrorMessage error = responce as ErrorMessage;
                    Debug.WriteLine(error.ErrorCode + " " + error.ErrorDescription);
                }
                else
                {
                    var answers = responce as IEnumerable <Answer>;
                    foreach (var answer in answers)
                    {
                        Answers.Add(new AnswerViewModel(answer));
                    }
                }

                OnPropertyChanged("IsExpanded");
                //MessagingCenter.Send<AnswersViewModel>(this, "AnswersLoaded");
            }
            catch (Exception ex)
            {
                Debug.WriteLine("[!] ExecuteLoadAnswersCommand --- " + ex);
            }
            finally
            {
                IsBusy = false;
            }
        }
Ejemplo n.º 24
0
        public void GetQuestionAnswers_WhenQuestionExists_ShouldReturnQuestionAnswers()
        {
            var answers = new List <TaskAnswer>()
            {
                new TaskAnswer
                {
                    Id        = "id1",
                    IsCorrect = true,
                    Location  = "location 1",
                    Answer    = "asnwer 1",
                    IsDeleted = false
                },
                new TaskAnswer
                {
                    Id        = "id2",
                    IsCorrect = false,
                    Location  = "location 2",
                    Answer    = "asnwer 2",
                    IsDeleted = false
                }
            };

            taskAnswersRepositoryMock.Setup(s => s.GetAnswersByQuestion("questionId")).Returns(answers);
            var service = new AnswersService(mapper, taskAnswersRepositoryMock.Object);

            var results = service.GetQuestionAnswers("questionId");

            results.ShouldNotBeNull();
            results.Count().ShouldBe(answers.Count);

            for (int i = 0; i < answers.Count; ++i)
            {
                var result   = results.ToList()[i];
                var expected = answers[i];

                result.Answer.ShouldBe(expected.Answer);
                result.Id.ShouldBe(expected.Id);
                result.IsCorrect.ShouldBe(expected.IsCorrect);
                result.Location.ShouldBe(expected.Location);
            }
        }
Ejemplo n.º 25
0
        public void ThrowArgumentNullException_WhenAnswerDtoIsNull()
        {
            //Arrange
            var mapperMock     = new Mock <IMappingProvider>();
            var saverMock      = new Mock <ISaver>();
            var answerRepoMock = new Mock <IRepository <Answer> >();

            //Act
            var answerService = new AnswersService(saverMock.Object, mapperMock.Object, answerRepoMock.Object);

            var data = new List <Answer>()
            {
                new Answer {
                    Id = 1, Content = "AlaBala", QuestionId = 1
                }
            };

            answerRepoMock.Setup(a => a.All).Returns(data.AsQueryable());

            Assert.ThrowsException <ArgumentNullException>(() => answerService.GetById(1));
        }
Ejemplo n.º 26
0
        public void TestGetAnswerValueById()
        {
            var list = new List <Answer>()
            {
                new Answer()
                {
                    Id = 1, Value = "1"
                },
                new Answer()
                {
                    Id = 2, Value = "2"
                },
                new Answer()
                {
                    Id = 3, Value = "3"
                },
                new Answer()
                {
                    Id = 4, Value = "4"
                },
                new Answer()
                {
                    Id = 5, Value = "5"
                },
            };
            var mockRepo = new Mock <IDeletableEntityRepository <Answer> >();

            mockRepo.Setup(x => x.AllAsNoTracking()).Returns(list.AsQueryable());
            mockRepo.Setup(x => x.AddAsync(It.IsAny <Answer>())).Callback(
                (Answer answer) => list.Add(answer));

            var service = new AnswersService(mockRepo.Object);

            var expected = "2";

            var actual = service.GetAnswerValueById(2);

            Assert.Equal(expected, actual);
        }
Ejemplo n.º 27
0
        public void GetAnswer_WhenAnswerExists_ShouldReturnAnswer()
        {
            var returned = new TaskAnswer
            {
                Id         = "id",
                IsCorrect  = true,
                Location   = "location",
                Answer     = "asnwer",
                IsDeleted  = false,
                GameTaskId = "taskId"
            };

            taskAnswersRepositoryMock.Setup(s => s.Get("id")).Returns(returned);

            var service = new AnswersService(mapper, taskAnswersRepositoryMock.Object);

            var result = service.GetAnswer("id");

            result.Answer.ShouldBe(returned.Answer);
            result.Id.ShouldBe(returned.Id);
            result.IsCorrect.ShouldBe(returned.IsCorrect);
            result.Location.ShouldBe(returned.Location);
        }
 public AnswersController(AnswersService service)
 {
     _service = service;
 }
Ejemplo n.º 29
0
        public void TestGetQuestionAnswersForTakesById()
        {
            var listQuestionAnswer1 = new List <QuestionAnswer>()
            {
                new QuestionAnswer()
                {
                    AnswerId = 1, QuestionId = 2
                },
            };
            var listQuestionAnswer2 = new List <QuestionAnswer>()
            {
                new QuestionAnswer()
                {
                    AnswerId = 2, QuestionId = 1
                },
            };
            var listQuestionAnswer3 = new List <QuestionAnswer>()
            {
                new QuestionAnswer()
                {
                    AnswerId = 4, QuestionId = 2
                },
            };
            var list = new List <Answer>()
            {
                new Answer()
                {
                    Id = 1, Value = "1", Questions = listQuestionAnswer1
                },
                new Answer()
                {
                    Id = 2, Value = "2", Questions = listQuestionAnswer2
                },
                new Answer()
                {
                    Id = 3, Value = "3", Questions = listQuestionAnswer3
                },
                new Answer()
                {
                    Id = 4, Value = "4", Questions = listQuestionAnswer2
                },
            };
            var listQuestions = new List <Question>()
            {
                new Question()
                {
                    Id = 1
                },
                new Question()
                {
                    Id = 2
                },
            };

            var mockRepo = new Mock <IDeletableEntityRepository <Answer> >();

            mockRepo.Setup(x => x.AllAsNoTracking()).Returns(list.AsQueryable());
            mockRepo.Setup(x => x.AddAsync(It.IsAny <Answer>())).Callback(
                (Answer answer) => list.Add(answer));


            var service = new AnswersService(mockRepo.Object);

            var expected = new List <AnswerViewModel>()
            {
                new AnswerViewModel()
                {
                    Id = 1, Value = "1"
                },
                new AnswerViewModel()
                {
                    Id = 4, Value = "4"
                },
            };

            var actual = service.GetQuestionAnswersForTakesById(2);

            Assert.Equal(string.Join(" ", expected), string.Join(" ", actual));
        }
Ejemplo n.º 30
0
        public void TestGetGetQuestionAnswerById()
        {
            var listQuestionAnswer1 = new List <QuestionAnswer>()
            {
                new QuestionAnswer()
                {
                    AnswerId = 1, QuestionId = 1
                },
            };
            var listQuestionAnswer2 = new List <QuestionAnswer>()
            {
                new QuestionAnswer()
                {
                    AnswerId = 2, QuestionId = 1
                },
            };
            var list = new List <Answer>()
            {
                new Answer()
                {
                    Id = 1, Value = "1", Questions = listQuestionAnswer1
                },
                new Answer()
                {
                    Id = 2, Value = "2", Questions = listQuestionAnswer2
                },
                new Answer()
                {
                    Id = 3, Value = "3"
                },
                new Answer()
                {
                    Id = 4, Value = "4"
                },
                new Answer()
                {
                    Id = 5, Value = "5"
                },
            };
            var listQuestions = new List <Question>()
            {
                new Question()
                {
                    Id = 1
                },
                new Question()
                {
                    Id = 2
                },
            };

            var mockRepo = new Mock <IDeletableEntityRepository <Answer> >();

            mockRepo.Setup(x => x.AllAsNoTracking()).Returns(list.AsQueryable());
            mockRepo.Setup(x => x.AddAsync(It.IsAny <Answer>())).Callback(
                (Answer answer) => list.Add(answer));


            var service = new AnswersService(mockRepo.Object);

            var expected = new List <AnswerInTestModel>()
            {
                new AnswerInTestModel()
                {
                    Id = 1, Value = "1"
                },
                new AnswerInTestModel()
                {
                    Id = 2, Value = "2"
                },
            };

            AutoMapperConfig.RegisterMappings(typeof(AnswerInTestModel).GetTypeInfo().Assembly);
            var actual = service.GetQuestionAnswersById <AnswerInTestModel>(1);

            Assert.Equal(string.Join(" ", expected), string.Join(" ", actual));
        }