コード例 #1
0
        public async Task UpdateClassroomName(int userId, int examId, int classroomId,
                                              string classroom, int newGrade, string newClassName, IFixture fixture)
        {
            var client   = _webApplicationFactory.CreateClientWithUserId(userId);
            var forms    = GenerateStudentForms(fixture, examId, userId, classroomId, classroom);
            var response = await client.PostAsync(ApiPath, forms.ToJsonContent());

            response.EnsureSuccessStatusCode();
            var studentOpticalForms = await GetListAsync <StudentOpticalForm>(client, examId);

            studentOpticalForms.Should()
            .HaveCount(2)
            .And
            .NotContain(s => s.ClassroomId != classroomId);
            var repository = _webApplicationFactory.Services.GetService(typeof(IStudentOpticalFormRepository));
            var consumer   = new ClassroomUpdatedConsumer(repository as IStudentOpticalFormRepository);
            var context    = Substitute.For <ConsumeContext <IClassroomUpdated> >();

            context.Message.ClassroomId.Returns(classroomId);
            context.Message.Grade.Returns(newGrade);
            context.Message.Name.Returns(newClassName);
            await consumer.Consume(context);

            studentOpticalForms = await GetListAsync <StudentOpticalForm>(client, examId);

            studentOpticalForms.Select(s => s.Classroom)
            .Distinct()
            .Should()
            .HaveCount(1)
            .And
            .Contain($"{newGrade}/{newClassName}");
        }
コード例 #2
0
        public async Task UpdateClassroomName()
        {
            var classroomId  = RandomGen.Next();
            var classroom    = RandomGen.String(4);
            var newGrade     = RandomGen.Next(11);
            var newClassName = RandomGen.String(3);
            var examId       = RandomGen.Next();
            var userId       = RandomGen.Next();

            using (var testServer = Create(userId))
            {
                var forms    = GenerateStudentForms(examId, userId, classroomId, classroom);
                var client   = testServer.CreateClient();
                var response = await client.PostAsync(ApiPath, forms.ToJsonContent());

                response.EnsureSuccessStatusCode();
                var studentOpticalForms = await GetListAsync <StudentOpticalForm>(client, examId);

                studentOpticalForms.Should()
                .HaveCount(2)
                .And
                .NotContain(s => s.ClassroomId != classroomId);
                var repository = testServer.Host.Services.GetService(typeof(IOpticalFormRepository));
                var consumer   = new ClassroomUpdatedConsumer(repository as IOpticalFormRepository);
                var context    = Substitute.For <ConsumeContext <IClassroomUpdated> >();
                context.Message.ClassroomId.Returns(classroomId);
                context.Message.Grade.Returns(newGrade);
                context.Message.Name.Returns(newClassName);
                await consumer.Consume(context);

                studentOpticalForms = await GetListAsync <StudentOpticalForm>(client, examId);

                studentOpticalForms.Select(s => s.Classroom)
                .Distinct()
                .ToList()
                .Should()
                .HaveCount(1)
                .And
                .Contain($"{newGrade}/{newClassName}");
            }
        }