public void After_submitting_recruitment_form_candidate_can_be_invited_to_training()
        {
            // Arrange
            var id = EnrollmentAggregate.EnrollmentId.New;
            var selectedTraining = BuildScheduledTraining(1, CreateOffsetDateTimeDaysInTheFuture(14), CreateOffsetDateTimeDaysInTheFuture(15));

            selectedTraining.Campaign = new Campaign(CreateOffsetDateTimeDaysInTheFuture(-7), CreateOffsetDateTimeDaysInTheFuture(+7), 1, "kampania testowa");
            selectedTraining.Campaign.GetType().GetProperty(nameof(selectedTraining.Campaign.Id)).SetValue(selectedTraining.Campaign, 1);

            var now        = NodaTime.SystemClock.Instance.GetCurrentInstant();
            var enrollment = new EnrollmentAggregate(id);

            // Act
            var result = enrollment.SubmitRecruitmentForm(new SubmitRecruitmentForm.Command()
            {
                FirstName   = "Andrzej",
                LastName    = "Strzelba",
                Email       = EmailAddress.Parse("*****@*****.**"),
                PhoneNumber = Consts.FakePhoneNumber,
                AboutMe     = "ala ma kota",
                Region      = "Wolne Miasto Gdańsk",
                PreferredLecturingCities = new[] { "Wadowice" },
                PreferredTrainingIds     = new[] { 1 },
                GdprConsentGiven         = true
            },
                                                          new[] { selectedTraining },
                                                          now);

            // Assert
            Assert.True(result.IsSuccess);
            Assert.True(enrollment.CanAcceptTrainingInvitation(new[] { selectedTraining }, now).IsSuccess);
        }