public async Task AllHomeNewsAsyncShouldRerutnCorectedOrderedNewsArticles()
        {
            //Arrange
            var dbOptions = new DbContextOptionsBuilder <UndergroundStationDbContext>()
                            .UseInMemoryDatabase("UndergroundStationTestDb")
                            .Options;

            var db = new UndergroundStationDbContext(dbOptions);

            var accountService = new AccountService(db);

            var user = new User
            {
                Id       = "1",
                UserName = "******"
            };

            db.AddRange(user);

            await db.SaveChangesAsync();

            //Act
            var result = await accountService.ProfileByUsername("UserUsername");


            //Assert
            result.Username
            .Should()
            .Equals("UserUsername");
        }
        public async Task AllAsyncShouldRerutnCorectedOrderedNewsArticles()
        {
            //Arrange
            var dbOptions = new DbContextOptionsBuilder <UndergroundStationDbContext>()
                            .UseInMemoryDatabase("UndergroundStationTestDb")
                            .Options;

            var db = new UndergroundStationDbContext(dbOptions);

            var newsService = new NewsService(db);

            //Act
            var result = await newsService.AllAsync(1);


            //Assert
            result
            .Should()
            .Match
                (r => r.ElementAt(0).Id == 2 &&
                r.ElementAt(1).Id == 3 &&
                r.ElementAt(2).Id == 1)
            .And
            .HaveCount(3);
        }
예제 #3
0
        public async Task BySectionIdAsyncReturnsTheRightAnswerOrderedProperly()
        {
            //Arrange
            var dbOptions = new DbContextOptionsBuilder <UndergroundStationDbContext>()
                            .UseInMemoryDatabase("UndergroundStationTestDb")
                            .Options;

            var db = new UndergroundStationDbContext(dbOptions);

            var themesService = new ThemesService(db);

            var firstTheme = new ForumTheme
            {
                Id             = 1,
                PublishedDate  = DateTime.UtcNow,
                ForumSectionId = 1
            };

            var secondTheme = new ForumTheme
            {
                Id             = 2,
                PublishedDate  = DateTime.UtcNow.AddDays(-1),
                ForumSectionId = 1
            };

            var thirdTheme = new ForumTheme
            {
                Id             = 3,
                IsDeleted      = true,
                ForumSectionId = 1
            };

            var fourthTheme = new ForumTheme
            {
                Id             = 4,
                ForumSectionId = 2
            };

            db.AddRange(firstTheme, secondTheme, thirdTheme, fourthTheme);

            await db.SaveChangesAsync();

            //Act
            var result = await themesService
                         .BySectionIdAsync(1);

            //Assert
            result
            .Should()
            .Match
                (r => r.ElementAt(0).Id == 2 &&
                r.ElementAt(1).Id == 1)
            .And
            .HaveCount(2);
        }
        public async Task AllHomeNewsAsyncShouldRerutnCorectedOrderedNewsArticles()
        {
            //Arrange
            var dbOptions = new DbContextOptionsBuilder <UndergroundStationDbContext>()
                            .UseInMemoryDatabase("UndergroundStationTestDb")
                            .Options;

            var db = new UndergroundStationDbContext(dbOptions);

            var newsService = new NewsService(db);

            var firstNewsArticle = new NewsArticle
            {
                Id            = 1,
                Title         = "First Article",
                PublishedDate = DateTime.UtcNow.AddDays(-1),
                ArticleType   = ArticleType.Interviews
            };

            var secondNewsArticle = new NewsArticle
            {
                Id            = 2,
                Title         = "Second Article",
                PublishedDate = DateTime.UtcNow.AddHours(1),
                ArticleType   = ArticleType.Interviews
            };

            var thirdNewsArticle = new NewsArticle
            {
                Id            = 3,
                Title         = " Third Article",
                PublishedDate = DateTime.UtcNow,
                ArticleType   = ArticleType.History
            };

            db.AddRange(firstNewsArticle, secondNewsArticle, thirdNewsArticle);

            await db.SaveChangesAsync();

            //Act
            var result = await newsService.AllHomeNewsAsync();


            //Assert
            result
            .Should()
            .Match
                (r => r.ElementAt(0).Id == 2 &&
                r.ElementAt(1).Id == 3 &&
                r.ElementAt(2).Id == 1)
            .And
            .HaveCount(3);
        }
        public async Task ByThemeIdAsyncShouldReturnCorrectAnswerAndOrderCorrectly()
        {
            //Arrange
            var dbOptions = new DbContextOptionsBuilder <UndergroundStationDbContext>()
                            .UseInMemoryDatabase("UndergroundStationTestDb")
                            .Options;

            var db = new UndergroundStationDbContext(dbOptions);

            var articleService = new ArticleService(db);

            var firstArticle = new ForumArticle
            {
                Id            = 2,
                PublishedDate = DateTime.UtcNow,
                ForumThemeId  = 1
            };

            var secondArticle = new ForumArticle
            {
                Id            = 3,
                PublishedDate = DateTime.UtcNow.AddDays(-1),
                ForumThemeId  = 1
            };

            var thirdArticle = new ForumArticle
            {
                Id            = 4,
                PublishedDate = DateTime.UtcNow,
                ForumThemeId  = 2
            };

            db.AddRange(firstArticle, secondArticle, thirdArticle);

            await db.SaveChangesAsync();

            //Act
            var result = await articleService.ByThemeIdAsync(1, 1);

            //Assert
            result
            .Should()
            .Match
                (r => r.ElementAt(0).Id == 3 &&
                r.ElementAt(1).Id == 2)
            .And
            .HaveCount(2);
        }
        public async Task TotalByTypeAsyncShouldRerutnCorectInteger()
        {
            //Arrange
            var dbOptions = new DbContextOptionsBuilder <UndergroundStationDbContext>()
                            .UseInMemoryDatabase("UndergroundStationTestDb")
                            .Options;

            var db = new UndergroundStationDbContext(dbOptions);

            var articleService = new ArticleService(db);

            //Act
            var result = await articleService.TotalByThemeIdAsync(1);

            //Assert
            result
            .Should()
            .Equals(2);
        }
        public async Task ByIdAsyncShouldRerutnCorectEntity()
        {
            //Arrange
            var dbOptions = new DbContextOptionsBuilder <UndergroundStationDbContext>()
                            .UseInMemoryDatabase("UndergroundStationTestDb")
                            .Options;

            var db = new UndergroundStationDbContext(dbOptions);

            var newsService = new NewsService(db);

            //Act
            var result = newsService.ByIdAsync(1);

            //Assert
            result.Id
            .Should()
            .Equals(1);
        }
        public async Task TotalAsyncShouldRerutnCorectInteger()
        {
            //Arrange
            var dbOptions = new DbContextOptionsBuilder <UndergroundStationDbContext>()
                            .UseInMemoryDatabase("UndergroundStationTestDb")
                            .Options;

            var db = new UndergroundStationDbContext(dbOptions);

            var newsService = new NewsService(db);

            //Act
            var result = await newsService.TotalAsync();

            //Assert
            result
            .Should()
            .Equals(3);
        }
예제 #9
0
        public async Task AllAsyncShouldReturnCorrectAnswerAndOrderedProperly()
        {
            //Arrange
            var dbOptions = new DbContextOptionsBuilder<UndergroundStationDbContext>()
                .UseInMemoryDatabase("UndergroundStationTestDb")
                .Options;

            var db = new UndergroundStationDbContext(dbOptions);

            var sectionsService = new SectionsService(db);

            var firtSection = new ForumSection
            {
                Id = 1,
                Tittle = "b"
            };

            var secondSection = new ForumSection
            {
                Id = 2,
                Tittle = "a"
            };

            db.AddRange(firtSection, secondSection);

            await db.SaveChangesAsync();

            //Act
            var result = await sectionsService
                .AllAsync();

            //Assert
            result
               .Should()
               .Match
               (r => r.ElementAt(0).Id == 2
               && r.ElementAt(1).Id == 1)
               .And
               .HaveCount(2);
        }
        public async Task CreateCreatesSuccesssully()
        {
            //Arrange
            var dbOptions = new DbContextOptionsBuilder <UndergroundStationDbContext>()
                            .UseInMemoryDatabase("UndergroundStationTestDb")
                            .Options;

            var db = new UndergroundStationDbContext(dbOptions);

            var articleService = new ArticleService(db);

            await db.SaveChangesAsync();

            //Act
            var success = await articleService
                          .CreateAsync("Title", "Content", "1", 2, DateTime.UtcNow, 1);

            //Assert
            success
            .Should()
            .Equals(true);
        }
예제 #11
0
 public ThemesService(UndergroundStationDbContext db)
 {
     this.db = db;
 }
 public SectionsService(UndergroundStationDbContext db)
 {
     this.db = db;
 }
예제 #13
0
 public AdminArticleService(UndergroundStationDbContext db)
 {
     this.db = db;
 }
예제 #14
0
 public AccountService(UndergroundStationDbContext db)
 {
     this.db = db;
 }
 public AdminUserService(UndergroundStationDbContext db)
 {
     this.db = db;
 }