public async Task UpdateStudentInfoInStudentForms(IFixture fixture, int userId, int examId,
                                                          int studentId, int classroomId, string firstName, string lastName, int studentNumber)
        {
            var forms    = GenerateStudentForms(fixture, examId, userId, studentId);
            var client   = _webApplicationFactory.CreateClientWithUserId(userId);
            var response = await client.PostAsync(ApiPath, forms.ToJsonContent());

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

            studentOpticalForms.Should()
            .HaveCount(1);
            var repository = _webApplicationFactory.Services.GetRequiredService <IStudentOpticalFormRepository>();
            var consumer   = new StudentUpdatedConsumer(repository);
            var context    = Substitute.For <ConsumeContext <IStudentUpdated> >();

            context.Message.ClassroomId.Returns(classroomId);
            context.Message.FirstName.Returns(firstName);
            context.Message.LastName.Returns(lastName);
            context.Message.StudentId.Returns(studentId);
            context.Message.StudentNumber.Returns(studentNumber);
            await consumer.Consume(context);

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

            studentOpticalForms.First()
            .Should().Match <StudentOpticalForm>(
                x => x.StudentId == studentId &&
                x.ClassroomId == classroomId &&
                x.StudentFirstName == firstName &&
                x.StudentLastName == lastName &&
                x.StudentNumber == studentNumber);
        }
Example #2
0
        public async Task UpdateStudentInfoInStudentForms()
        {
            var examId        = RandomGen.Next();
            var userId        = RandomGen.Next();
            var studentId     = RandomGen.Next();
            var firstName     = RandomGen.String(20);
            var lastName      = RandomGen.String(20);
            var classroomId   = RandomGen.Next();
            var studentNumber = RandomGen.Next(1000);

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

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

                studentOpticalForms.Should()
                .HaveCount(1);
                var repository = testServer.Host.Services.GetService(typeof(IOpticalFormRepository));
                var consumer   = new StudentUpdatedConsumer(repository as IOpticalFormRepository);
                var context    = Substitute.For <ConsumeContext <IStudentUpdated> >();
                context.Message.ClassroomId.Returns(classroomId);
                context.Message.FirstName.Returns(firstName);
                context.Message.LastName.Returns(lastName);
                context.Message.StudentId.Returns(studentId);
                context.Message.StudentNumber.Returns(studentNumber);
                await consumer.Consume(context);

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

                studentOpticalForms.First()
                .Should().Match <StudentOpticalForm>(
                    x => x.StudentId == studentId &&
                    x.ClassroomId == classroomId &&
                    x.StudentFirstName == firstName &&
                    x.StudentLastName == lastName &&
                    x.StudentNumber == studentNumber);
            }
        }