async Task AndThenGroupIsAdded() { using (var dbContext = new WordkiDbContext(ConnectionStringProvider)) { var user = await dbContext.Users.Include(u => u.Groups).ThenInclude(g => g.Words).SingleAsync(); var group = user.Groups.Single(); Assert.IsNotNull(group); Assert.Greater(group.Id, 0); Assert.AreEqual(group.User.Id, 1); Assert.AreEqual(group.Name, "groupName"); Assert.AreEqual(group.GroupLanguage1, 1); Assert.AreEqual(group.GroupLanguage2, 2); Assert.AreEqual(group.GroupCreationDate, Utils.Time); Assert.AreEqual(2, group.Words.Count); foreach (var word in group.Words) { Assert.IsNotNull(word); Assert.Greater(word.Id, 0); Assert.AreEqual(group.Id, word.Group.Id); Assert.AreEqual("front-value", word.Heads.Value); Assert.AreEqual("back-value", word.Tails.Value); Assert.AreEqual("front-example", word.Heads.Example); Assert.AreEqual("back-example", word.Tails.Example); Assert.AreEqual(true, word.IsVisible); Assert.AreEqual(Utils.Time, word.WordCreationDate); } ; } }
async Task GivenGroupsInDatabase() { using (var dbContext = new WordkiDbContext(ConnectionStringProvider)) { var user = Builder <Api.Domain.User> .CreateNew() .With(u => u.Id = 1) .With(u => u.Name = "user") .With(u => u.Password = Host.EncrypterMock.Object.Md5Hash("pass")) .With(u => u.LastLoginDate = new DateTime(2020, 1, 1)) .With(u => u.CreationDate = new DateTime(2020, 1, 1)) .Build(); dbContext.Users.Add(user); var sequence = new SequentialGenerator <long> { Direction = GeneratorDirection.Ascending, Increment = 1 }; sequence.StartingWith(1); var builder = Builder <Api.Domain.Group> .CreateNew() .With(g => g.Id = sequence.Generate()) .With(g => g.GroupLanguage1 = 1) .With(g => g.GroupLanguage2 = 2) .With(g => g.Name = "name"); var groups = new Api.Domain.Group[] { builder.Build(), builder.Build() }; dbContext.Groups.AddRange(groups); await dbContext.SaveChangesAsync(); } }
async Task GivenUserInDatabase() { using (var dbContext = new WordkiDbContext(ConnectionStringProvider)) { dbContext.Users.Add(Utils.GetUser()); await dbContext.SaveChangesAsync(); } }
async Task AndThenWordIsAdded() { using (var dbContext = new WordkiDbContext(ConnectionStringProvider)) { var counts = await dbContext.Words.CountAsync(); Assert.AreEqual(0, counts); } }
public AddGroupCommandHandler( WordkiDbContext dbContext, ITimeProvider dateTimeProvider, IHttpContextProvider contextProvider) { this.dbContext = dbContext; this.dateTimeProvider = dateTimeProvider; this.contextProvider = contextProvider; }
public GetTodayCardsQueryHandler( WordkiDbContext dbContext, IHttpContextProvider contextProvider, ITimeProvider timeProvider) { this.dbContext = dbContext; this.contextProvider = contextProvider; this.timeProvider = timeProvider; }
async Task AndThenGroupIsAdded() { using (var dbContext = new WordkiDbContext(ConnectionStringProvider)) { var lesson = await dbContext.Lessons.Include(g => g.User).SingleAsync(); Assert.AreEqual(Utils.Time, lesson.FinishDate); } }
public LoginCommandHandler(WordkiDbContext dbContext, IEncrypter encrypter, ITimeProvider dateTimeProvider, IAuthenticationService authenticationService) { this.dbContext = dbContext; this.encrypter = encrypter; this.dateTimeProvider = dateTimeProvider; this.authenticationService = authenticationService; }
public AnswerCommnadHandler( WordkiDbContext dbContext, IHttpContextProvider contextProvider, INextRepeatCalculator nextRepeatCalculator, ITimeProvider timeProvider) { this.dbContext = dbContext; this.contextProvider = contextProvider; this.nextRepeatCalculator = nextRepeatCalculator; this.timeProvider = timeProvider; }
public AdminController( IMediator mediator, IConfiguration configuration, IConnectionStringProvider connectionStringProvider, WordkiDbContext dbContext, IDatabaseInitializer init) : base(mediator) { this.configuration = configuration; this.connectionStringProvider = connectionStringProvider; this.dbContext = dbContext; this.init = init; }
async Task AndThenUserAdded() { using (var dbContext = new WordkiDbContext(ConnectionStringProvider)) { var user = await dbContext.Users.SingleAsync(); Assert.AreEqual("user", user.Name); Assert.Greater(user.Id, 0); Assert.AreEqual(Host.EncrypterMock.Object.Md5Hash(GivenPassword), user.Password); Assert.IsNull(user.LastLoginDate); Assert.AreEqual(Host.Time2ProviderMock.Object.GetTime(), user.CreationDate); } }
async Task AndThenWordIsAdded() { using (var dbContext = new WordkiDbContext(ConnectionStringProvider)) { var group = await dbContext.Groups.SingleOrDefaultAsync(); Assert.IsNotNull(group); Assert.AreEqual(1, group.Id); Assert.AreEqual("group2", group.Name); Assert.AreEqual(2, group.GroupLanguage1); Assert.AreEqual(1, group.GroupLanguage2); } }
async Task AndThenUserAdded() { using (var dbContext = new WordkiDbContext(ConnectionStringProvider)) { var user = await dbContext.Users.SingleAsync(); Assert.AreEqual(user.Name, "user"); Assert.AreEqual(user.Id, 1); Assert.AreEqual(Host.EncrypterMock.Object.Md5Hash("pass"), user.Password); Assert.AreEqual(Host.Time2ProviderMock.Object.GetTime(), user.LastLoginDate); Assert.AreEqual(new DateTime(2020, 1, 1), user.CreationDate); } }
async Task GivenGroupInDatabase() { using (var dbContext = new WordkiDbContext(ConnectionStringProvider)) { var user = Utils.GetUser(); dbContext.Users.Add(user); var group = Utils.GetGroup(); group.User = user; dbContext.Groups.Add(group); await dbContext.SaveChangesAsync(); } }
async Task GivenUserInDatabase() { using (var dbContext = new WordkiDbContext(ConnectionStringProvider)) { var user = Utils.GetUser(); dbContext.Users.Add(user); var lesson = Utils.GetLesson(); lesson.FinishDate = null; lesson.User = user; await dbContext.Lessons.AddAsync(lesson); await dbContext.SaveChangesAsync(); } }
async Task GivenUserInDatabase() { using (var dbContext = new WordkiDbContext(ConnectionStringProvider)) { var user = Builder <Api.Domain.User> .CreateNew() .With(u => u.Id = 1) .With(u => u.Name = "user") .With(u => u.Password = Host.EncrypterMock.Object.Md5Hash(GivenPassword)) .With(u => u.LastLoginDate = new DateTime(2020, 1, 1)) .With(u => u.CreationDate = new DateTime(2020, 1, 1)) .Build(); dbContext.Users.Add(user); await dbContext.SaveChangesAsync(); } }
protected async Task CreateDatabase() { using (var dbContext = new WordkiDbContext(ConnectionStringProvider)) { await dbContext.Database.EnsureCreatedAsync(); await dbContext.Database.ExecuteSqlRawAsync("Delete from wrd.\"Repeats\""); await dbContext.Database.ExecuteSqlRawAsync("Delete from wrd.\"Lessons\""); await dbContext.Database.ExecuteSqlRawAsync("Delete from wrd.\"Words\""); await dbContext.Database.ExecuteSqlRawAsync("Delete from wrd.\"Groups\""); await dbContext.Database.ExecuteSqlRawAsync("Delete from wrd.\"Users\""); } }
async Task AndThenWordIsAdded() { using (var dbContext = new WordkiDbContext(ConnectionStringProvider)) { var word = await dbContext.Words.Include(w => w.Group).SingleOrDefaultAsync(); Assert.IsNotNull(word); Assert.AreEqual(1, word.Id); Assert.AreEqual(1, word.Group.Id); Assert.AreEqual("heads123", word.Heads.Value); Assert.AreEqual("example123", word.Heads.Example); Assert.AreEqual(2, word.Heads.State.Drawer.Value); Assert.AreEqual("tails123", word.Tails.Value); Assert.AreEqual("example456", word.Tails.Example); Assert.AreEqual(2, word.Tails.State.Drawer.Value); Assert.AreEqual(false, word.IsVisible); } }
async Task AndThenWordIsAdded() { using (var dbContext = new WordkiDbContext(ConnectionStringProvider)) { var word = await dbContext.Words.Include(w => w.Group).SingleOrDefaultAsync(); Assert.IsNotNull(word); Assert.Greater(word.Id, 0); Assert.AreEqual(1, word.Group.Id); Assert.AreEqual("word1", word.Heads.Value); Assert.AreEqual("word2", word.Tails.Value); Assert.AreEqual("example1", word.Heads.Example); Assert.AreEqual("example2", word.Tails.Example); Assert.AreEqual(0, word.Heads.State.Drawer.Value); Assert.AreEqual(0, word.Tails.State.Drawer.Value); Assert.AreEqual(true, word.IsVisible); Assert.AreEqual(Utils.Now, word.WordCreationDate); } }
async Task GivenDatabaseContainData() { using (var dbContext = new WordkiDbContext(ConnectionStringProvider)) { var user = Utils.GetUser(); dbContext.Users.Add(user); var group = Utils.GetGroup(); group.User = user; dbContext.Groups.Add(group); var card = Utils.GetCard(); card.Group = group; await dbContext.Words.AddAsync(card); await dbContext.SaveChangesAsync(); } }
async Task AndThenGroupIsAdded() { using (var dbContext = new WordkiDbContext(ConnectionStringProvider)) { var group = await dbContext.Groups.Include(g => g.User).SingleAsync(); Assert.IsNotNull(group); Assert.Greater(group.Id, 0); Assert.AreEqual(group.User.Id, 1); Assert.AreEqual(group.Name, "groupName"); Assert.AreEqual(group.GroupLanguage1, 1); Assert.AreEqual(group.GroupLanguage2, 2); Assert.AreEqual(group.GroupCreationDate, Utils.Time); var wordsCount = await dbContext.Words.CountAsync(); Assert.AreEqual(0, wordsCount); } }
async Task GivenGroupInDatabase() { using (var dbContext = new WordkiDbContext(ConnectionStringProvider)) { var user = new Api.Domain.User { Id = 1, Name = "user", Password = Host.EncrypterMock.Object.GetSalt(string.Empty), CreationDate = Host.Time2ProviderMock.Object.GetTime(), LastLoginDate = Host.Time2ProviderMock.Object.GetTime() }; dbContext.Users.Add(user); var group = new Api.Domain.Group { Id = 1, GroupLanguage1 = 1, GroupLanguage2 = 2, Name = "group", GroupCreationDate = Host.Time2ProviderMock.Object.GetTime() }; dbContext.Groups.Add(group); var word = new Api.Domain.Card { Heads = new Side { Value = "word1" }, Tails = new Side { Value = "word2" }, IsVisible = true, WordCreationDate = new DateTime(2020, 01, 01), }; dbContext.Words.Add(word); await dbContext.SaveChangesAsync(); } }
async Task GivenDatabaseContainData() { using (var dbContext = new WordkiDbContext(ConnectionStringProvider)) { var user = Utils.GetUser(); dbContext.Users.Add(user); var group = Utils.GetGroup(); group.User = user; dbContext.Groups.Add(group); for (int i = 1; i < 4; i++) { var word = Utils.GetCard(); word.Group = group; word.Id = i; word.WordCreationDate = word.WordCreationDate.AddDays(i); dbContext.Words.Add(word); } await dbContext.SaveChangesAsync(); } }
public AddCardCommandHandler(WordkiDbContext dbContext, ITimeProvider dateTimeProvider) { this.dbContext = dbContext; this.dateTimeProvider = dateTimeProvider; }
public RegisterCommandHandler(WordkiDbContext dbContext, IEncrypter encrypter, IUserCreator userCreator) { this.dbContext = dbContext; this.encrypter = encrypter; this.userCreator = userCreator; }
public FinishCommandHandler(WordkiDbContext dbContext, ITimeProvider timeProvider, IHttpContextProvider contextProvider) { this.dbContext = dbContext; this.timeProvider = timeProvider; this.contextProvider = contextProvider; }
public DeleteCardCommandHandler(WordkiDbContext dbContext) { this.dbContext = dbContext; }
public GetLastAddedQueryHandler(WordkiDbContext dbContext, IHttpContextProvider httpContextProvider) { this.dbContext = dbContext; this.httpContextProvider = httpContextProvider; }
public GetCountQueryHandler(WordkiDbContext dbContext, IHttpContextProvider contextProvider) { this.dbContext = dbContext; this.contextProvider = contextProvider; }
public GetCardDetailsQueryHandler(WordkiDbContext dbContext) { this.dbContext = dbContext; }