public async Task Import_FullyPopulatedDbTranslatedChapter_AddDatabaseEntries() { // setup var chapter = DbTranslatedChapterBuilder.Default.Build(); _words .Setup(x => x.Add(It.IsAny <DbWord>())) .Returns <DbWord>(Task.FromResult); _expressions .Setup(x => x.Add(It.IsAny <DbExpression>())) .Returns <DbExpression>(Task.FromResult); _translatedChapters .Setup(x => x.Add(It.IsAny <DbTranslatedChapter>())) .Returns <DbTranslatedChapter>(Task.FromResult); _chapters .Setup(x => x.Add(It.IsAny <DbChapter>())) .Returns <DbChapter>(Task.FromResult); // act await _importer.Import(chapter); // assert var expectedExpressions = chapter.Pages.Length * 2 + 2; var expectedWords = chapter.Name.Words.Length + chapter.Description.Words.Length + chapter.Pages.Select(x => x.Native.Words.Length + x.Target.Words.Length).Sum(); _chapters.Verify(x => x.Add(It.Is <DbChapter>(c => c.Id == default)), Times.Exactly(1)); _expressions.Verify(x => x.Add(It.Is <DbExpression>(c => c.Id == default)), Times.Exactly(expectedExpressions)); _words.Verify(x => x.Add(It.Is <DbWord>(c => c.Id == default)), Times.Exactly(expectedWords)); }
public Task <DbTranslatedChapter> AddChapter([FromBody] DbTranslatedChapter chapter) { return(_importer.Import(chapter)); }