Exemple #1
0
        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));
 }