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) }); }
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); }
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(); }