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); }
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); } }