コード例 #1
0
        public async Task GetAllReviewedEssayFromTecherInRangeTest()
        {
            var context = EssayCompetitionContextInMemoryFactory.InitializeContext();
            var essay1  = await this.seeder.SeedGradedEssayAsync(context);

            var essay2 = await this.seeder.SeedGradedEssayAsync(context);

            await this.seeder.AddGradeAsync(context, essay1.Id);

            await this.seeder.AddGradeAsync(context, essay2.Id);

            var user1 = await this.seeder.SeedUserAsync(context, "*****@*****.**");

            var essayTeacher1 = await this.seeder.SeedEssayTeacher(context, user1.Id, essay1.Id);

            var essayTeacher2 = await this.seeder.SeedEssayTeacher(context, user1.Id, essay2.Id);

            var essayRepository        = new EfDeletableEntityRepository <Essay>(context);
            var categoryRepository     = new EfDeletableEntityRepository <Category>(context);
            var gradeRepository        = new EfRepository <Grade>(context);
            var essayTeacherRepository = new EfDeletableEntityRepository <EssayTeacher>(context);
            var service = new TeacherReviewedService(essayRepository, categoryRepository, gradeRepository, essayTeacherRepository);

            var result = service.GetAllReviewedEssayFromTecherInRange <EssayViewModel>(user1.Id, 1, 2);

            Assert.True(result.Count() == 2, "GetAllReviewedEssayFromTecherInRange method does not work correctly");
        }
コード例 #2
0
        public async Task GetEssaysFromUserWithIdInRangeTest()
        {
            var context = EssayCompetitionContextInMemoryFactory.InitializeContext();
            var userId  = await this.seeder.SeedUserManyEssaysAsync(context, 4);

            var essayRepository = new EfDeletableEntityRepository <Essay>(context);
            var service         = new EssayService(essayRepository);

            var resultedEssays = service.GetEssaysFromUserWithIdInRange <EssayViewModel>(userId, CurrentPage, PageSize);

            Assert.True(resultedEssays.Count() == (context.Essays.Count() - PageSize), "GetEssaysFromUserWithIdInRange method does not work correctly");
        }
コード例 #3
0
        public async Task GetEssayDetailsTest()
        {
            var context = EssayCompetitionContextInMemoryFactory.InitializeContext();
            var essay   = await this.seeder.SeedEssayAsync(context);

            var essayRepository = new EfDeletableEntityRepository <Essay>(context);
            var service         = new EssayService(essayRepository);

            var resultedEssay = service.GetEssayDetails <EssayViewModel>(essay.Id);

            Assert.True(essay.UserId == resultedEssay.UserId, "GetEssayDetails method does not work correctly");
        }
コード例 #4
0
        public async Task HasAnyGradedEssayTest()
        {
            var context     = EssayCompetitionContextInMemoryFactory.InitializeContext();
            var seededEssay = await this.seeder.SeedEssayAsync(context);

            var essayRepository = new EfDeletableEntityRepository <Essay>(context);
            var service         = new EssayService(essayRepository);

            var result = service.HasAnyGradedEssay();

            Assert.True(result == false, "HasAnyGradedEssay method does not work correctly");
        }
コード例 #5
0
        public async Task GetEssayNameTest()
        {
            var context     = EssayCompetitionContextInMemoryFactory.InitializeContext();
            var seededEssay = await this.seeder.SeedEssayAsync(context);

            var essayRepository = new EfDeletableEntityRepository <Essay>(context);
            var service         = new EssayService(essayRepository);

            var resultedName = service.GetEssayName(seededEssay.UserId, seededEssay.ContestId);

            Assert.True(resultedName == seededEssay.Title, "GetEssayName method does not work correctly");
        }
コード例 #6
0
        public async Task EssayGradedWithoutGrade()
        {
            var context = EssayCompetitionContextInMemoryFactory.InitializeContext();
            var essay   = await this.seeder.SeedEssayAsync(context);

            var gradeRepository = new EfRepository <Grade>(context);
            var service         = new GradeService(gradeRepository);

            var result = service.EssayGradet(essay.Id);

            Assert.True(result == false, "EssayGraded method does not work correctly");
        }
コード例 #7
0
        public async Task HasUserAdditionalInfoWithIdShouldReturnFalse()
        {
            var context = EssayCompetitionContextInMemoryFactory.InitializeContext();
            var user    = await this.seeder.SeedUserAsync(context, "*****@*****.**");

            var userAdditionalInfoRepository = new EfDeletableEntityRepository <UserAdditionalInfo>(context);
            var service = new UserAdditionalInfoService(userAdditionalInfoRepository);

            var result = service.HasUserAdditionalInfoWithId(user.Id);

            Assert.False(result, "HasUserAdditionalInfoWithId method does not work correctly");
        }
コード例 #8
0
        public async Task GetEssayCountTest()
        {
            var context       = EssayCompetitionContextInMemoryFactory.InitializeContext();
            var expectedCount = 4;
            var userId        = await this.seeder.SeedUserManyEssaysAsync(context, expectedCount);

            var essayRepository = new EfDeletableEntityRepository <Essay>(context);
            var service         = new EssayService(essayRepository);

            var resultedCount = service.GetEssaysCount();

            Assert.True(resultedCount == expectedCount, "GetEssayCount method does not work correctly");
        }
コード例 #9
0
        public async Task HasDeletedUserWithIdTest()
        {
            var context = EssayCompetitionContextInMemoryFactory.InitializeContext();
            var user    = await this.seeder.SeedDeletedUserAsync(context, "*****@*****.**");

            var roleRepository = new EfDeletableEntityRepository <ApplicationRole>(context);
            var userRepository = new EfDeletableEntityRepository <ApplicationUser>(context);
            var service        = new UsersService(userRepository, roleRepository);

            var result = service.HasDeletedUserWithId(user.Id);

            Assert.True(result, "HasDeletedUserWithId method does not work correctly");
        }
コード例 #10
0
        public async Task GetNextContestIdTest()
        {
            var context       = EssayCompetitionContextInMemoryFactory.InitializeContext();
            var futureContest = await this.seeder.SeedFutureContestAsync(context);

            var contestantContestRepository = new EfDeletableEntityRepository <ContestantContest>(context);
            var contestRepository           = new EfDeletableEntityRepository <Contest>(context);
            var service = new SignService(contestantContestRepository, contestRepository);

            var reusltedId = service.GetNextContestId();

            Assert.True(reusltedId == futureContest.Id, "GetNextContestId method does not work correctly");
        }
コード例 #11
0
        public async Task HasRoleWithIdTest()
        {
            var context   = EssayCompetitionContextInMemoryFactory.InitializeContext();
            var roleName1 = "Ninja1";
            var role      = await this.seeder.SeedRoleAsync(context, roleName1);

            var roleRepository = new EfDeletableEntityRepository <ApplicationRole>(context);
            var service        = new RolesService(roleRepository);

            var result = service.HasRoleWithId(role.Id);

            Assert.True(result == true, "HasRoleWithId method does not work correctly");
        }
コード例 #12
0
        public async Task UserAlreadyRegisteredForCompetitionTest()
        {
            var context           = EssayCompetitionContextInMemoryFactory.InitializeContext();
            var contestantContest = await this.seeder.SeedContestantContestAsync(context);

            var contestantContestRepository = new EfDeletableEntityRepository <ContestantContest>(context);
            var contestRepository           = new EfDeletableEntityRepository <Contest>(context);
            var service = new SignService(contestantContestRepository, contestRepository);

            var result = service.UserAlreadyRegisteredForCompetition(contestantContest.ContestantId, contestantContest.ContestId);

            Assert.True(result == true, "UserAlreadyRegisteredForCompetition method does not work correctly");
        }
コード例 #13
0
        public async Task GetCommentsFromEssayTest()
        {
            var context = EssayCompetitionContextInMemoryFactory.InitializeContext();
            var essay   = await this.seeder.SeedEssayAsync(context);

            var comment = await this.seeder.AddCommentToEssay(context, "testComment", essay.Id);

            var commentRepository = new EfDeletableEntityRepository <Comment>(context);
            var service           = new CommentService(commentRepository);

            var resultedComment = service.GetCommentsFromEssay <CommentViewModel>(comment.EssayId);

            Assert.True(resultedComment.First().Content == comment.Content, "GetEssayDetails method does not work correctly");
        }
コード例 #14
0
        public async Task HasWithId()
        {
            var context = EssayCompetitionContextInMemoryFactory.InitializeContext();

            await this.SeedData(context);

            var repository = new EfDeletableEntityRepository <Category>(context);
            var service    = new CategoryService(repository);

            var firstId   = service.GetFirstOrDefaultCategoryId();
            var hasWithId = await service.HasWithIdAsync(firstId);

            Assert.True(hasWithId == true, "GetWithId method does not work correctly");
        }
コード例 #15
0
        public async Task GetEssayPointsTest()
        {
            var context = EssayCompetitionContextInMemoryFactory.InitializeContext();
            var essay   = await this.seeder.SeedEssayAsync(context);

            var grade = await this.seeder.AddGradeAsync(context, essay.Id);

            var gradeRepository = new EfRepository <Grade>(context);
            var service         = new GradeService(gradeRepository);

            var resultedPoints = service.GetEssayPoints(essay.Id);

            Assert.True(resultedPoints == grade.Points, "GetEssayPoints method does not work correctly");
        }
コード例 #16
0
        public async Task GetUserWithIdAdditionalInfoTest()
        {
            var context = EssayCompetitionContextInMemoryFactory.InitializeContext();
            var user    = await this.seeder.SeedUserAsync(context, "*****@*****.**");

            var userAdditionalInfo = await this.seeder.SeedUserAdditionalInfo(context, user.Id, "#");

            var userAdditionalInfoRepository = new EfDeletableEntityRepository <UserAdditionalInfo>(context);
            var service = new UserAdditionalInfoService(userAdditionalInfoRepository);

            var result = service.GetUserWithIdAdditionalInfo <IndexViewModel>(user.Id);

            Assert.True(result.UserId == user.Id, "GetUserWithIdAdditionalInfo method does not work correctly");
        }
コード例 #17
0
        public async Task NextContextTest()
        {
            var context      = EssayCompetitionContextInMemoryFactory.InitializeContext();
            var contestRetId = await this.SeedNextContest(context);

            var contestRepository           = new EfDeletableEntityRepository <Contest>(context);
            var essayRepository             = new EfDeletableEntityRepository <Essay>(context);
            var essayTeacherRepository      = new EfDeletableEntityRepository <EssayTeacher>(context);
            var contestantContestRepository = new EfDeletableEntityRepository <ContestantContest>(context);
            var service = new ContestService(contestRepository, essayRepository, essayTeacherRepository, contestantContestRepository);

            var result = service.NextContext <ContestViewModel>();

            Assert.True(contestRetId == result.Id, "NextContextTest method does not work correctly");
        }
コード例 #18
0
        public async Task GetContestParticipantsCount()
        {
            var context = EssayCompetitionContextInMemoryFactory.InitializeContext();
            var seedContestanContest = await this.SeedContestContestant(context);

            var contestRepository           = new EfDeletableEntityRepository <Contest>(context);
            var essayRepository             = new EfDeletableEntityRepository <Essay>(context);
            var essayTeacherRepository      = new EfDeletableEntityRepository <EssayTeacher>(context);
            var contestantContestRepository = new EfDeletableEntityRepository <ContestantContest>(context);
            var service = new ContestService(contestRepository, essayRepository, essayTeacherRepository, contestantContestRepository);

            var participantsCount = service.GetContestParticipantsCount(seedContestanContest.First().Contest.Id);

            Assert.True(participantsCount == seedContestanContest.Count(), "GetContestParticipantsCount method does not work correctly");
        }
コード例 #19
0
        public async Task GetContestNameTest()
        {
            var context = EssayCompetitionContextInMemoryFactory.InitializeContext();

            await this.seeder.SeedContestAsync(context);

            var contestantContestRepository = new EfDeletableEntityRepository <ContestantContest>(context);
            var contestRepository           = new EfDeletableEntityRepository <Contest>(context);
            var service = new SignService(contestantContestRepository, contestRepository);

            var currentContext = context.Contests.First();
            var reusltedName   = service.GetContestName(currentContext.Id);

            Assert.True(currentContext.Name == reusltedName, "GetContestName method does not work correctly");
        }
コード例 #20
0
        public async Task HasEssayWithIdTest()
        {
            var context = EssayCompetitionContextInMemoryFactory.InitializeContext();
            var essay   = await this.seeder.SeedEssayAsync(context);

            var essayRepository        = new EfDeletableEntityRepository <Essay>(context);
            var categoryRepository     = new EfDeletableEntityRepository <Category>(context);
            var gradeRepository        = new EfRepository <Grade>(context);
            var essayTeacherRepository = new EfDeletableEntityRepository <EssayTeacher>(context);
            var service = new TeacherReviewedService(essayRepository, categoryRepository, gradeRepository, essayTeacherRepository);

            var result = service.HasEssayWithId(essay.Id);

            Assert.True(result == true, "HasEssayWithId method does not work correctly");
        }
コード例 #21
0
        public async Task GetEssayInfoTest()
        {
            var context = EssayCompetitionContextInMemoryFactory.InitializeContext();
            var essay   = await this.seeder.SeedEssayAsync(context);

            var essayRepository        = new EfDeletableEntityRepository <Essay>(context);
            var categoryRepository     = new EfDeletableEntityRepository <Category>(context);
            var gradeRepository        = new EfRepository <Grade>(context);
            var essayTeacherRepository = new EfDeletableEntityRepository <EssayTeacher>(context);
            var service = new TeacherReviewedService(essayRepository, categoryRepository, gradeRepository, essayTeacherRepository);

            var essayInfo = service.GetEssayInfo <EssayViewModel>(essay.Id);

            Assert.True(essay.Id == essayInfo.Id, "GetEssayInfo method does not work correctly");
        }
コード例 #22
0
        public async Task IsUserAlreadySubmitedEssay()
        {
            var context     = EssayCompetitionContextInMemoryFactory.InitializeContext();
            var seededEssay = await this.SeedSubmitedEssay(context);

            var contestRepository           = new EfDeletableEntityRepository <Contest>(context);
            var essayRepository             = new EfDeletableEntityRepository <Essay>(context);
            var essayTeacherRepository      = new EfDeletableEntityRepository <EssayTeacher>(context);
            var contestantContestRepository = new EfDeletableEntityRepository <ContestantContest>(context);
            var service = new ContestService(contestRepository, essayRepository, essayTeacherRepository, contestantContestRepository);

            var userSubmited = service.IsUserAlreadySubmitedEssay(seededEssay.UserId);

            Assert.True(userSubmited == true, "IsUserAlreadySubmitedEssay method does not work correctly");
        }
コード例 #23
0
        public async Task GetUserByIdTest()
        {
            var context = EssayCompetitionContextInMemoryFactory.InitializeContext();
            var user1   = await this.seeder.SeedDeletedUserAsync(context, "*****@*****.**");

            var user2 = await this.seeder.SeedDeletedUserAsync(context, "*****@*****.**");

            var roleRepository = new EfDeletableEntityRepository <ApplicationRole>(context);
            var userRepository = new EfDeletableEntityRepository <ApplicationUser>(context);
            var service        = new UsersService(userRepository, roleRepository);

            var result = service.GetUserById <DetailsViewModel>(user1.Id);

            Assert.True(result.Id == user1.Id, "GetUserById method does not work correctly");
        }
コード例 #24
0
        public async Task GradeEssayAsyncTest()
        {
            var context = EssayCompetitionContextInMemoryFactory.InitializeContext();
            var essay   = await this.seeder.SeedEssayAsync(context);

            var essayRepository        = new EfDeletableEntityRepository <Essay>(context);
            var categoryRepository     = new EfDeletableEntityRepository <Category>(context);
            var gradeRepository        = new EfRepository <Grade>(context);
            var essayTeacherRepository = new EfDeletableEntityRepository <EssayTeacher>(context);
            var service = new TeacherService(essayRepository, categoryRepository, gradeRepository, essayTeacherRepository);

            await service.GradeEssayAsync("stava", 12, essay.Id);

            Assert.True(context.Grades.First(x => x.EssayId == essay.Id).Points == 12, "GradeEssayAsync method does not work correctly");
        }
コード例 #25
0
        public async Task GetAll()
        {
            var context = EssayCompetitionContextInMemoryFactory.InitializeContext();

            await this.SeedData(context);

            var repository = new EfDeletableEntityRepository <Category>(context);
            var service    = new CategoryService(repository);

            var countBefore   = service.GetCount();
            var allCategories = service.GetAll <CategoryViewModel>();
            var countAfter    = allCategories.Count();

            Assert.True(countBefore == countAfter, "GetAll method does not work correctly");
        }
コード例 #26
0
        public async Task GetContestIdTest()
        {
            var context       = EssayCompetitionContextInMemoryFactory.InitializeContext();
            var seededContest = await this.SeedContestAsync(context);

            var contestRepository           = new EfDeletableEntityRepository <Contest>(context);
            var essayRepository             = new EfDeletableEntityRepository <Essay>(context);
            var essayTeacherRepository      = new EfDeletableEntityRepository <EssayTeacher>(context);
            var contestantContestRepository = new EfDeletableEntityRepository <ContestantContest>(context);
            var service = new ContestService(contestRepository, essayRepository, essayTeacherRepository, contestantContestRepository);

            var resultId = service.GetContestId(seededContest.Name);

            Assert.True(seededContest.Id == resultId, "GetContestIdTest method does not work correctly");
        }
コード例 #27
0
        public async Task CreateRoleAsyncTest()
        {
            var context       = EssayCompetitionContextInMemoryFactory.InitializeContext();
            var roleName      = "Ninja";
            var roleViewModel = new CreateViewModel()
            {
                Name = roleName
            };
            var roleRepository = new EfDeletableEntityRepository <ApplicationRole>(context);
            var service        = new RolesService(roleRepository);

            await service.CreateRoleAsync <CreateViewModel>(roleViewModel.ToQueryable());

            Assert.True(roleRepository.All().Any(x => x.Name == roleName), "CreateRoleAsync method does not work correctly");
        }
コード例 #28
0
        public async Task GetContestNowId()
        {
            var context = EssayCompetitionContextInMemoryFactory.InitializeContext();

            await this.SeedData(context);

            var contestRepository           = new EfDeletableEntityRepository <Contest>(context);
            var essayRepository             = new EfDeletableEntityRepository <Essay>(context);
            var essayTeacherRepository      = new EfDeletableEntityRepository <EssayTeacher>(context);
            var contestantContestRepository = new EfDeletableEntityRepository <ContestantContest>(context);
            var service = new ContestService(contestRepository, essayRepository, essayTeacherRepository, contestantContestRepository);

            var contestNow = service.HasContextNow(DateTime.Now);

            Assert.True(contestNow == true, "GetContestNowId method does not work correctly");
        }
コード例 #29
0
        public async Task GetCalendarInfoTest()
        {
            var context = EssayCompetitionContextInMemoryFactory.InitializeContext();

            await this.seeder.SeedContestAsync(context);

            await this.seeder.SeedContestAsync(context);

            var contestRepository = new EfDeletableEntityRepository <Contest>(context);
            var service           = new CalendarService(contestRepository);

            var expectedEventsCount = 2;
            var result = service.GetCalendarInfo(DateTime.Now.Month, DateTime.Now.Year);

            Assert.True(result.Events.Count() == expectedEventsCount, "GetCalendarInfo method does not work correctly");
        }
コード例 #30
0
        public async Task AddCategory()
        {
            var context = EssayCompetitionContextInMemoryFactory.InitializeContext();

            await this.SeedData(context);

            var repository = new EfDeletableEntityRepository <Category>(context);
            var service    = new CategoryService(repository);

            var initialCount = service.GetCount();
            await service.CreateAsync("test", "test", "#");

            var count = service.GetCount();

            Assert.True(count == initialCount + 1, "Create method does not work correctly");
        }