public async Task ThenItShouldReturnModel() { // Arrange var options = new DbContextOptionsBuilder <MyDbContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()) .Options; using (var context = new MyDbContext(options)) { // Act _dbContextFactory = new Mock <IMyDbContextFactory>(); _dbContextFactory.Setup(_ => _.CreateMyDbContext()).Returns(new MyDbContext(options)); var repository = new PalindromeRepository(_dbContextFactory.Object); var dtNow = DateTime.Now; var sequence = "NeverOddOrEven"; var savedPalindrome = await repository.SavePalindromeAsync(new Palindrome() { Sequence = sequence, CreateDate = dtNow }); // Assert Assert.True(savedPalindrome.Id >= 1); Assert.Equal(sequence, savedPalindrome.Sequence); Assert.Equal(dtNow, savedPalindrome.CreateDate); } }
static void Main() { IConfigurationBuilder builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) .AddEnvironmentVariables(); IConfigurationRoot configuration = builder.Build(); AppSettings appSettings = new AppSettings(); configuration.GetSection("MyConfig").Bind(appSettings); IOptions <AppSettings> options = Options.Create <AppSettings>(appSettings); IEntryRepository entryRepository = new EntryRepository(options); List <EntryModel> sortedList = entryRepository.LoadEntries(); ConsoleUI consoleUI = new ConsoleUI(); DateTime[] dates = consoleUI.Initialize(); IIntersectionFinder intersectionFinder = new IntersectionFinder(sortedList); //returns null if no entries intersect int[] intersectedIndexes = intersectionFinder.FindEntries(dates[0], dates[1]); if (intersectedIndexes != null) { IAnagramValidator anagramValidator = new AnagramValidator(sortedList); List <int> anagramsIndexes = anagramValidator.Validate(intersectedIndexes[0], intersectedIndexes[1]); IPalindromeRepository palindromeRepository = new PalindromeRepository(options, sortedList); palindromeRepository.WriteEntries(anagramsIndexes); } }
public async Task ThenItShouldReturnCorrectCount() { var repository = new PalindromeRepository(_dbContextFactory.Object); var result = await repository.GetAllPalindromesAsync(); Assert.Equal(2, result.Count); }