예제 #1
0
        public void All_ShouldReturnsNotDeletedObjects_IfValid()
        {
            // Arrange
            var notDeletedUser = new User {
                IsDeleted = false
            };
            var DeletedUser = new User {
                IsDeleted = true
            };

            var users = new List <User>()
            {
                notDeletedUser,
                DeletedUser
            };

            var usersDbSet = GetQueryableMockDbSet(users);

            var mockedContext = new Mock <DbContext>();

            mockedContext.Setup(c => c.Set <User>()).Returns(usersDbSet);

            var repository = new DbRepository <User>(mockedContext.Object);

            // Act
            var result = repository.All();

            // Assert
            Assert.AreEqual(1, result.ToList().Count);
        }
        public void CreateReturnsClassInRepository()
        {
            var model = new ClassesCreateViewModel
            {
                DayOfWeek  = DaysOfWeek.Понеделник.ToString(),
                Discipline = Disciplines.Английски_език.ToString(),
                Room       = Room.Стая_1.ToString(),
                TimeOfDay  = "11:00 - 12:30",
                TeacherId  = "teacherId",
                StudentIds = new List <string> {
                    "studentId"
                }
            };

            var options = new DbContextOptionsBuilder <LearningPlusDbContext>()
                          .UseInMemoryDatabase(databaseName: "Create_Classes_Database") // Give a Unique name to the DB
                          .Options;
            var dbContext = new LearningPlusDbContext(options);

            var repository     = new DbRepository <LearningPlusClass>(dbContext);
            var classesService = new ClassesService(null, null, repository, null);

            var createdModel = classesService.Create(model);

            repository.All().CountAsync().GetAwaiter().GetResult().ShouldBe(1);
        }
        public async void Import()
        {
            IEnumerable <Quote> quotes = await this.GetQuotes();

            var context = new ApplicationDbContext();
            IDbRepository <SQL.Quote> repo = new DbRepository <SQL.Quote>(context);
            var quotesService = new QuotesService(repo);

            foreach (var quote in quotes)
            {
                if (repo.All().Any(q => q.Text.ToLower() == quote.Text.ToLower()))
                {
                    continue;
                }
                quotesService.Add(new SQL.Quote()
                {
                    Text       = quote.Text,
                    Author     = this.LoadOrCreateAuthor(context, quote.Author, quote.AuthorImageUrl),
                    CreatedOn  = DateTime.Now,
                    ModifiedOn = DateTime.Now,
                    IsDeleted  = false,
                    Tags       = quote.Tags.Select(tag => new SQL.Tag
                    {
                        Name = tag
                    }
                                                   ).ToList()
                });
                Console.Write(".");
            }
            Console.WriteLine("Done!");
        }
예제 #4
0
        public async Task UpdateArticleShouldBeSuccessfull()
        {
            var options = new DbContextOptionsBuilder <SportsNewsContext>()
                          .UseInMemoryDatabase(databaseName: "Find_User_Database4")
                          .Options;

            var dbContext       = new SportsNewsContext(options);
            var repository      = new DbRepository <Article>(dbContext);
            var articlesService = new ArticlesService(repository, null);

            await articlesService.Create(1, "sdsda", "dasasd");

            var id = repository.All().FirstOrDefault().Id;
            await articlesService.Update(id, "Changed", 2, "Ok");

            var article = repository.All().FirstOrDefault();

            Assert.Equal("Changed", article.Content);
        }
예제 #5
0
        public async Task DeleteShouldBeSuccessfull()
        {
            var options = new DbContextOptionsBuilder <SportsNewsContext>()
                          .UseInMemoryDatabase(databaseName: "VideosTests2")
                          .Options;

            var dbContext = new SportsNewsContext(options);

            var repository    = new DbRepository <Video>(dbContext);
            var videosService = new VideosService(repository);

            await videosService.Create(1, "dasasd");

            await videosService.Create(1, "dasasd");

            var id = repository.All().FirstOrDefault().Id;
            await videosService.Delete(id);

            var count = repository.All().Count();

            Assert.Equal(1, count);
        }
예제 #6
0
        public void RegisterFeedBackShouldActuallyRegistersFeedback()
        {
            var options = new DbContextOptionsBuilder <TattooShopContext>()
                          .UseInMemoryDatabase(databaseName: "Unique_Db_Name_57852181")
                          .Options;
            var dbContext = new TattooShopContext(options);

            var feedbackRepository = new DbRepository <ContactInfo>(dbContext);
            var homeService        = new HomeService(null, null, feedbackRepository);

            homeService.RegisterFeedBack("Kaloqn", "Kaloqnov", "mn qk sait", "*****@*****.**", "975649867");
            Assert.Equal(1, feedbackRepository.All().Count());
        }
        private SQL.Author LoadOrCreateAuthor(ApplicationDbContext context, string author, string authorImageUrl)
        {
            IDbRepository <SQL.Author> repo = new DbRepository <SQL.Author>(context);
            var dbAuthor = repo.All()
                           .FirstOrDefault(a => a.Name.ToLower() == author.ToLower()) ?? new SQL.Author
            {
                Name       = author,
                ImageUrl   = authorImageUrl,
                CreatedOn  = DateTime.Now,
                ModifiedOn = DateTime.Now,
                IsDeleted  = false
            };

            return(dbAuthor);
        }
예제 #8
0
        public async Task CreateArticleShouldBeSuccessfull()
        {
            var options = new DbContextOptionsBuilder <SportsNewsContext>()
                          .UseInMemoryDatabase(databaseName: "CategoryTests")
                          .Options;

            var dbContext = new SportsNewsContext(options);

            var repository        = new DbRepository <Category>(dbContext);
            var categoriesService = new CategoriesService(repository);

            await categoriesService.Create("Football", "dsdaasd");

            var count = repository.All().Count();

            Assert.Equal(1, count);
        }
예제 #9
0
        public async Task CreateArticleShouldBeSuccessfull()
        {
            var options = new DbContextOptionsBuilder <SportsNewsContext>()
                          .UseInMemoryDatabase(databaseName: "VideosTests")
                          .Options;

            var dbContext = new SportsNewsContext(options);

            var repository    = new DbRepository <Video>(dbContext);
            var videosService = new VideosService(repository);

            await videosService.Create(1, "test");

            var count = repository.All().Count();

            Assert.Equal(1, count);
        }
예제 #10
0
        public async Task CategoryShouldBeValid()
        {
            var options = new DbContextOptionsBuilder <SportsNewsContext>()
                          .UseInMemoryDatabase(databaseName: "CategoryTests2")
                          .Options;

            var dbContext = new SportsNewsContext(options);

            var repository        = new DbRepository <Category>(dbContext);
            var categoriesService = new CategoriesService(repository);

            await categoriesService.Create("Basket", "dsasddas");

            var categoryId = repository.All().FirstOrDefault().Id;
            var isValid    = categoriesService.IsCategoryIdValid(categoryId);

            Assert.True(isValid);
        }
        public void GetByIdReturnsCorrectNews()
        {
            var mockNews = new Mock <LearningPlusNews>();
            var options  = new DbContextOptionsBuilder <LearningPlusDbContext>()
                           .UseInMemoryDatabase(databaseName: "GetById_News_Database") // Give a Unique name to the DB
                           .Options;
            var dbContext = new LearningPlusDbContext(options);

            dbContext.News.Add(mockNews.Object);
            dbContext.SaveChanges();
            var newsRepo      = new DbRepository <LearningPlusNews>(dbContext);
            var newsId        = newsRepo.All().FirstOrDefaultAsync().GetAwaiter().GetResult().Id.ToString();
            var lpNewsService = new LearningPlusNewsService(null, newsRepo);

            var newsById = lpNewsService.GetById(newsId);

            newsById.CountAsync().GetAwaiter().GetResult().ShouldBe(1);
        }
예제 #12
0
        public async Task AddBookShouldActuallyAddBookToDatabase()
        {
            var options = new DbContextOptionsBuilder <TattooShopContext>()
                          .UseInMemoryDatabase(databaseName: "Unique_Db_Name_5785216")
                          .Options;
            var dbContext = new TattooShopContext(options);

            dbContext.Artists.Add(new Artist()
            {
                Id = "1"
            });
            dbContext.Users.Add(new TattooShopUser()
            {
                Id = "2"
            });
            dbContext.SaveChanges();

            var artistsRepository = new DbRepository <Artist>(dbContext);
            var booksRepository   = new DbRepository <Book>(dbContext);
            var imageService      = new ImageService(dbContext);
            var tattoosRepository = new DbRepository <Tattoo>(dbContext);

            var artistsService = new ArtistsService(artistsRepository, imageService, booksRepository, tattoosRepository);
            var fileMock       = new Mock <IFormFile>();
            var content        = "Hallo world from a fake file!";
            var fileName       = "test.pdf";
            var ms             = new MemoryStream();
            var writer         = new StreamWriter(ms);

            writer.Write(content);
            writer.Flush();
            ms.Position = 0;
            fileMock.Setup(x => x.OpenReadStream()).Returns(ms);
            fileMock.Setup(x => x.FileName).Returns(fileName);
            fileMock.Setup(x => x.Length).Returns(ms.Length);

            await artistsService.AddBook(DateTime.UtcNow.AddDays(3).ToString(), "short description", fileMock.Object, "Geometric",
                                         "2", "1");

            Assert.Equal(1, booksRepository.All().Count());
        }
        public async Task AllShouldReturnEntitiesCountOfDbSet()
        {
            var options = new DbContextOptionsBuilder <TimeMachineContext>()
                          .UseInMemoryDatabase(databaseName: "Get_All_Tags_Db")
                          .Options;

            var db = new TimeMachineContext(options);

            var dbRepository = new DbRepository <Tag>(db);

            await dbRepository.AddAsync(new Tag());

            await dbRepository.AddAsync(new Tag());

            await dbRepository.AddAsync(new Tag());

            await dbRepository.SaveChangesAsync();

            var tagsCount = dbRepository.All().Count();

            Assert.Equal(3, tagsCount);
        }
        public void FakeDeleteReturnsCorrectItem()
        {
            var mockNews = new Mock <LearningPlusNews>();

            mockNews.Setup(n => n.ExpiresOn).Returns(DateTime.UtcNow);

            var options = new DbContextOptionsBuilder <LearningPlusDbContext>()
                          .UseInMemoryDatabase(databaseName: "FakeDelete_News_Database") // Give a Unique name to the DB
                          .Options;
            var dbContext = new LearningPlusDbContext(options);

            dbContext.News.Add(mockNews.Object);

            dbContext.SaveChanges();
            var newsRepo      = new DbRepository <LearningPlusNews>(dbContext);
            var lpNewsService = new LearningPlusNewsService(null, newsRepo);
            var id            = newsRepo.All().FirstOrDefaultAsync().GetAwaiter().GetResult().Id.ToString();

            var news = lpNewsService.FakeDelete(id);

            DateTime.UtcNow.AddDays(-1).ShouldBeLessThanOrEqualTo(news.ExpiresOn);
        }
예제 #15
0
 public IEnumerable <StudentEntity> All()
 {
     return(respository.All <StudentEntity>());
 }