Пример #1
0
        public async Task ChangeSubjectsOfQuestions(IFixture fixture, int subjectId, string subject, int userId, string newSubject, int examId)
        {
            var answerKeyForms = SetSubject(
                GenerateAnswerKeyOpticalForms(fixture, 1).ToList(),
                subjectId,
                subject);

            var client = _webApplicationFactory.CreateClientWithUserId(userId);
            var answerKeyOpticalFormRepository = _webApplicationFactory.Services.GetRequiredService <IAnswerKeyOpticalFormRepository>();

            await ExecuteExamCreatedConsumerAsync(answerKeyOpticalFormRepository, answerKeyForms, examId);

            var repository = _webApplicationFactory.Services.GetRequiredService <IStudentOpticalFormRepository>();

            var consumer = new SubjectChangedConsumer(repository, answerKeyOpticalFormRepository);
            var context  = Substitute.For <ConsumeContext <ISubjectChanged> >();

            context.Message.SubjectId.Returns(subjectId);
            context.Message.NewName.Returns(newSubject);
            await consumer.Consume(context);

            var answerKeyOpticalForms = await GetListAsync <AnswerKeyOpticalForm>(client, examId);

            answerKeyOpticalForms.SelectMany(a => a.Sections)
            .SelectMany(s => s.Answers)
            .Select(a => a.SubjectName)
            .Distinct()
            .ToList()
            .Should()
            .HaveCount(1)
            .And
            .Contain(newSubject);
        }
Пример #2
0
        public async Task ChangeSubjectsOfQuestions()
        {
            var userId         = RandomGen.Next(10000);
            var subjectId      = RandomGen.Next();
            var subject        = RandomGen.String(40);
            var newSubject     = RandomGen.String(40);
            var answerKeyForms = SetSubject(
                GenerateAnswerKeyOpticalForms(1).ToList(),
                subjectId,
                subject);

            using (var testServer = Create(userId))
            {
                var client = testServer.CreateClient();
                var examId = await ExecuteExamCreatedConsumerAsync(testServer, answerKeyForms);

                var repository = testServer.Host.Services.GetService(typeof(IOpticalFormRepository));
                var consumer   = new SubjectChangedConsumer(repository as IOpticalFormRepository);
                var context    = Substitute.For <ConsumeContext <ISubjectChanged> >();
                context.Message.SubjectId.Returns(subjectId);
                context.Message.NewName.Returns(newSubject);
                await consumer.Consume(context);

                var answerKeyOpticalForms = await GetListAsync <AnswerKeyOpticalForm>(client, examId);

                answerKeyOpticalForms.SelectMany(a => a.Sections)
                .SelectMany(s => s.Answers)
                .Select(a => a.SubjectName)
                .Distinct()
                .ToList()
                .Should()
                .HaveCount(1)
                .And
                .Contain(newSubject);
            }
        }