public async Task DeleteStudentForms()
        {
            var examId    = RandomGen.Next();
            var userId    = RandomGen.Next();
            var studentId = RandomGen.Next();

            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)
                .And
                .Contain(s => s.StudentId == studentId);
                var repository = testServer.Host.Services.GetService(typeof(IOpticalFormRepository));
                var consumer   = new StudentDeletedConsumer(repository as IOpticalFormRepository, null);
                var context    = Substitute.For <ConsumeContext <IStudentDeleted> >();
                context.Message.StudentId.Returns(studentId);
                await consumer.Consume(context);

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

                studentOpticalForms.Should().BeEmpty();
            }
        }
Example #2
0
        public async Task DeleteStudentForms(IFixture fixture, int userId, int examId, int studentId)
        {
            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)
            .And
            .Contain(s => s.StudentId == studentId);
            var repository = _webApplicationFactory.Services.GetRequiredService <IStudentOpticalFormRepository>();
            var consumer   = new StudentDeletedConsumer(repository, null);
            var context    = Substitute.For <ConsumeContext <IStudentDeleted> >();

            context.Message.StudentId.Returns(studentId);
            await consumer.Consume(context);

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

            studentOpticalForms.Should().BeEmpty();
        }