Ejemplo n.º 1
0
        public GameServiceTests()
        {
            var options = new DbContextOptionsBuilder <FamousQuotesDbContext>().UseInMemoryDatabase("FQDB")
                          .Options;

            dbContext = new FamousQuotesDbContext(options);

            gameService = new GameService(dbContext);

            var index = 0;

            foreach (var authorName in Authors)
            {
                var author = new Author(authorName);
                dbContext.Authors.Add(author);
                dbContext.SaveChanges();

                var quoteOne = new Quote(author.Id, Quotes[index++]);
                var quoteTwo = new Quote(author.Id, Quotes[index++]);
                dbContext.Quotes.Add(quoteOne);
                dbContext.Quotes.Add(quoteTwo);
                dbContext.SaveChanges();
            }

            moqUser = new Mock <FamousQuotesUser>();
            moqUser.Setup(u => u.Id).Returns("b3b306c4-a07e-4e67-8570-52cc9957d311");
            moqUser.Setup(u => u.Answers).Returns(new List <Answer> {
                new Answer(1, moqUser.Object.Id), new Answer(2, moqUser.Object.Id), new Answer(3, moqUser.Object.Id), new Answer(4, moqUser.Object.Id), new Answer(5, moqUser.Object.Id), new Answer(6, moqUser.Object.Id)
            });
        }
Ejemplo n.º 2
0
        public void GetRandomUnansweredQuote_ShouldReturnUnansweredQuoteWhenNotAllUnansweredForBinaryMode()
        {
            //Arrange
            moqUser.Object.AddCorrectAnswer(1, "Confucius", true);
            moqUser.Object.AddCorrectAnswer(6, "Benjamin Franklin", true);
            dbContext.SaveChanges();
            var low  = 2;
            var high = 5;

            //Act
            var unansweredQuote = gameService.GetRandomUnansweredQuote(moqUser.Object, true);

            //Assert
            Assert.InRange(unansweredQuote.QuoteId, low, high);
        }
Ejemplo n.º 3
0
        private void QuotesSeed()
        {
            var jsonString            = File.ReadAllText(@"Extensions\famousQuotes.json");
            var quotesGroupedByAuthor = JsonConvert.DeserializeObject <QuoteSeedDto[]>(jsonString).GroupBy(q => q.QuoteAuthor);

            var authors = new List <Author>();

            foreach (var quotes in quotesGroupedByAuthor)
            {
                var authorName = quotes.Key;
                var author     = authors.FirstOrDefault(a => a.Name == authorName);
                if (author is null)
                {
                    author = new Author(authorName);
                }

                quotes.Select(q => q.QuoteText).ToHashSet().ToList().ForEach(qt => author.Quotes.Add(new Quote(author.Id, qt)));
                authors.Add(author);
            }

            dbContext.Authors.AddRange(authors);
            dbContext.SaveChanges();
        }