public async void All()
        {
            Mock <ILogger <MessengerRepository> > loggerMoc = MessengerRepositoryMoc.GetLoggerMoc();
            ApplicationDbContext context = MessengerRepositoryMoc.GetContext();
            var repository = new MessengerRepository(loggerMoc.Object, context);
            var records    = await repository.All();

            records.Should().NotBeEmpty();
            records.Count.Should().Be(1);
        }
        public async void AllWithSearch()
        {
            Mock <ILogger <MessengerRepository> > loggerMoc = MessengerRepositoryMoc.GetLoggerMoc();
            ApplicationDbContext context = MessengerRepositoryMoc.GetContext();
            var repository = new MessengerRepository(loggerMoc.Object, context);

            var records = await repository.All(1, 0, DateTime.Parse("1/1/1987 12:00:00 AM").ToString());

            records.Should().NotBeEmpty();
            records.Count.Should().Be(1);
        }
        public async void Create()
        {
            Mock <ILogger <MessengerRepository> > loggerMoc = MessengerRepositoryMoc.GetLoggerMoc();
            ApplicationDbContext context = MessengerRepositoryMoc.GetContext();
            var repository = new MessengerRepository(loggerMoc.Object, context);

            var entity = new Messenger();
            await repository.Create(entity);

            var record = await context.Set <Messenger>().FirstOrDefaultAsync();

            record.Should().NotBeNull();
        }
        public void DeleteNotFound()
        {
            Mock <ILogger <MessengerRepository> > loggerMoc = MessengerRepositoryMoc.GetLoggerMoc();
            ApplicationDbContext context = MessengerRepositoryMoc.GetContext();
            var repository = new MessengerRepository(loggerMoc.Object, context);

            Func <Task> delete = async() =>
            {
                await repository.Delete(default(int));
            };

            delete.Should().NotThrow();
        }
        public async void Get()
        {
            Mock <ILogger <MessengerRepository> > loggerMoc = MessengerRepositoryMoc.GetLoggerMoc();
            ApplicationDbContext context = MessengerRepositoryMoc.GetContext();
            var repository = new MessengerRepository(loggerMoc.Object, context);

            Messenger entity = new Messenger();

            context.Set <Messenger>().Add(entity);
            await context.SaveChangesAsync();

            var record = await repository.Get(entity.Id);

            record.Should().NotBeNull();
        }
        public async void Create()
        {
            Mock <ILogger <MessengerRepository> > loggerMoc = MessengerRepositoryMoc.GetLoggerMoc();
            ApplicationDbContext context = MessengerRepositoryMoc.GetContext();
            var repository = new MessengerRepository(loggerMoc.Object, context);

            var entity = new Messenger();

            entity.SetProperties(default(int), DateTime.Parse("1/1/1988 12:00:00 AM"), 2, 1, TimeSpan.Parse("02:00:00"), 1, 1);
            await repository.Create(entity);

            var records = await context.Set <Messenger>().ToListAsync();

            records.Count.Should().Be(2);
        }
        public async void Delete()
        {
            Mock <ILogger <MessengerRepository> > loggerMoc = MessengerRepositoryMoc.GetLoggerMoc();
            ApplicationDbContext context = MessengerRepositoryMoc.GetContext();
            var       repository         = new MessengerRepository(loggerMoc.Object, context);
            Messenger entity             = new Messenger();

            context.Set <Messenger>().Add(entity);
            await context.SaveChangesAsync();

            await repository.Delete(entity.Id);

            Messenger modifiedRecord = await context.Set <Messenger>().FirstOrDefaultAsync();

            modifiedRecord.Should().BeNull();
        }
        public async void Update_Entity_Is_Not_Tracked()
        {
            Mock <ILogger <MessengerRepository> > loggerMoc = MessengerRepositoryMoc.GetLoggerMoc();
            ApplicationDbContext context = MessengerRepositoryMoc.GetContext();
            var       repository         = new MessengerRepository(loggerMoc.Object, context);
            Messenger entity             = new Messenger();

            context.Set <Messenger>().Add(entity);
            await context.SaveChangesAsync();

            await repository.Update(new Messenger());

            var modifiedRecord = context.Set <Messenger>().FirstOrDefaultAsync();

            modifiedRecord.Should().NotBeNull();
        }
        public async void Get()
        {
            Mock <ILogger <MessengerRepository> > loggerMoc = MessengerRepositoryMoc.GetLoggerMoc();
            ApplicationDbContext context = MessengerRepositoryMoc.GetContext();
            var repository = new MessengerRepository(loggerMoc.Object, context);

            Messenger entity = new Messenger();

            entity.SetProperties(default(int), DateTime.Parse("1/1/1988 12:00:00 AM"), 2, 1, TimeSpan.Parse("02:00:00"), 1, 1);
            context.Set <Messenger>().Add(entity);
            await context.SaveChangesAsync();

            var record = await repository.Get(entity.Id);

            record.Should().NotBeNull();
        }
        public async void Update_Entity_Is_Not_Tracked()
        {
            Mock <ILogger <MessengerRepository> > loggerMoc = MessengerRepositoryMoc.GetLoggerMoc();
            ApplicationDbContext context = MessengerRepositoryMoc.GetContext();
            var       repository         = new MessengerRepository(loggerMoc.Object, context);
            Messenger entity             = new Messenger();

            entity.SetProperties(default(int), DateTime.Parse("1/1/1988 12:00:00 AM"), 2, 1, TimeSpan.Parse("02:00:00"), 1, 1);
            context.Set <Messenger>().Add(entity);
            await context.SaveChangesAsync();

            context.Entry(entity).State = EntityState.Detached;

            await repository.Update(entity);

            var records = await context.Set <Messenger>().ToListAsync();

            records.Count.Should().Be(2);
        }