public async Task CalculateWordsPerSession() { // Arrange var handler = new Service.Handlers.SubmitWordsHandler(_context, _mapper); var message = new SubmitWords { SessionId = _existingSession.Id, Words = new List <string> { "chocolate", "vanilla", }, DateModified = DateTime.UtcNow }; await handler.Handle(message, new TestsMessageHandlerContext()); // Act await new Worker.Handlers.RefreshCalculationsHandler(Common.GetDbContext(_connectionString), Common.GetMapper()) .Handle(new RefreshCalculations(), new TestsMessageHandlerContext()); // Assert _context = Common.GetDbContext(_connectionString); var vanillaCounts = await _context.SessionWordCounts.SingleAsync(s => s.Word == "vanilla"); var chocolateCounts = await _context.SessionWordCounts.SingleAsync(s => s.Word == "chocolate"); Assert.Equal(2, vanillaCounts.Count); Assert.Equal(1, chocolateCounts.Count); }
public LogRequestHandler() { _connectionString = Environment.GetEnvironmentVariable("CONNECTION_STRING"); _context = Common.GetDbContext(_connectionString); PopulateDatabase(); }
public RefreshCalculationsHandler() { _mapper = Common.GetMapper(); _connectionString = Environment.GetEnvironmentVariable("CONNECTION_STRING"); _context = Common.GetDbContext(_connectionString); PopulateDatabase(); }
public CloseSessionHandler() { _mapper = Common.GetMapper(); _connectionString = Environment.GetEnvironmentVariable("CONNECTION_STRING"); _context = Common.GetDbContext(_connectionString); _existingSession = new Session() { Id = Guid.NewGuid(), DateCreated = DateTime.UtcNow, Status = 1 }; PopulateDatabase(); }
public CloseSessionHandler(CountingStringsContext db, IMapper mapper) { _db = db; _mapper = mapper; }
public LogRequestHandler(CountingStringsContext db) { _db = db; }
public SubmitWordsHandler(CountingStringsContext db, IMapper mapper) { _db = db; _mapper = mapper; }
public RefreshCalculationsHandler(CountingStringsContext db, IMapper mapper) { _db = db; _mapper = mapper; }
public async Task CalculateWordFrequency() { // Arrange var handler = new Service.Handlers.SubmitWordsHandler(Common.GetDbContext(_connectionString), Common.GetMapper()); var worker = new Worker.Handlers.RefreshCalculationsHandler(Common.GetDbContext(_connectionString), Common.GetMapper()); var messageOld = new SubmitWords { SessionId = _existingSession.Id, Words = new List <string> { "chocolate", // new "vanilla", // existing }, DateModified = DateTime.UtcNow }; await handler.Handle(messageOld, new TestsMessageHandlerContext()); // Act await worker.Handle(new RefreshCalculations(), new TestsMessageHandlerContext()); //Assert var refreshedContext = Common.GetDbContext(_connectionString); var vanillaData = await refreshedContext.WordDateCounts.Where(s => s.Word == "vanilla").ToListAsync(); var chocolateData = await _context.WordDateCounts.Where(s => s.Word == "chocolate").ToListAsync(); Assert.True(vanillaData.Count == 2); Assert.Contains(vanillaData, d => d.Date.Date == DateTime.UtcNow.Date); Assert.Contains(vanillaData, d => d.Date.Date == DateTime.UtcNow.AddDays(-1).Date); Assert.True(vanillaData.All(d => d.Count == 1)); Assert.True(chocolateData.Count == 1); Assert.Contains(chocolateData, d => d.Date.Date == DateTime.UtcNow.Date); Assert.True(vanillaData.All(d => d.Count == 1)); // Submit new words and recalculate counts. // Arrange handler = new Service.Handlers.SubmitWordsHandler(Common.GetDbContext(_connectionString), Common.GetMapper()); var messageNew = new SubmitWords { SessionId = _existingSession.Id, Words = new List <string> { "chocolate", // existing "vanilla", // existing }, DateModified = DateTime.UtcNow }; await handler.Handle(messageNew, new TestsMessageHandlerContext()); // Act await new Worker.Handlers.RefreshCalculationsHandler(Common.GetDbContext(_connectionString), Common.GetMapper()) .Handle(new RefreshCalculations(), new TestsMessageHandlerContext()); //Assert _context = Common.GetDbContext(_connectionString); vanillaData = await _context.WordDateCounts.Where(s => s.Word == "vanilla").ToListAsync(); chocolateData = await _context.WordDateCounts.Where(s => s.Word == "chocolate").ToListAsync(); Assert.True(vanillaData.Count == 2); Assert.NotNull(vanillaData.SingleOrDefault(v => v.Date.Date == DateTime.UtcNow.Date && v.Count == 2)); Assert.NotNull(vanillaData.SingleOrDefault(v => v.Date.Date == DateTime.UtcNow.AddDays(-1).Date&& v.Count == 1)); Assert.True(chocolateData.Count == 1); Assert.NotNull(chocolateData.SingleOrDefault(v => v.Date.Date == DateTime.UtcNow.Date && v.Count == 2)); }