public void MembershipApplications_WhenRetrived_NotNull()
        {
            Domain.CBS requestDirector        = new Domain.CBS(connectionString);
            var        membershipApplications = requestDirector.GetMembershipApplications(DateTime.Today.AddDays(-29), DateTime.Today.AddDays(1));

            Assert.NotNull(membershipApplications);
        }
        public void MembershipApplication_Recorded_ExistsWhenRetrieved()
        {
            Domain.CBS requestDirector = new Domain.CBS(connectionString);
            requestDirector.RecordMembershipApplication(membershipApplication);
            var membershipApplications = requestDirector.GetMembershipApplications(DateTime.Today.AddDays(-29), DateTime.Today.AddDays(1));

            Assert.True(membershipApplications.Exists(ma => ma.ProspectiveMemberContactInfo.LastName == membershipApplication.ProspectiveMemberContactInfo.LastName &&
                                                      ma.ProspectiveMemberContactInfo.FirstName == membershipApplication.ProspectiveMemberContactInfo.FirstName));
        }
        private MembershipApplication CreateAndRecordMembershipApplication(MembershipType membershipType)
        {
            Domain.CBS requestDirector = new Domain.CBS(connectionString);
            membershipApplication.MembershipType = membershipType;
            bool success          = requestDirector.RecordMembershipApplication(membershipApplication);
            var  foundApplication = requestDirector.GetMembershipApplications(DateTime.Today.AddDays(-29), DateTime.Today.AddDays(1)).FirstOrDefault();

            return(foundApplication);
        }
        public void MembershipApplication_WhenUpdated_Persist(ApplicationStatus applicationStatus)
        {
            Domain.CBS requestDirector     = new Domain.CBS(connectionString);
            var        applicationToUpdate = requestDirector.GetMembershipApplications(DateTime.Today.AddDays(-29), DateTime.Today.AddDays(1)).FirstOrDefault();

            Assert.NotNull(applicationToUpdate);
            ApplicationStatus initialStatus = applicationToUpdate.ApplicationStatus;

            bool confirmation = applicationToUpdate.UpdateMembershipApplication(applicationStatus, out string message);

            Assert.True(confirmation);

            var retrievedApplication = requestDirector.GetMembershipApplications(DateTime.Today.AddDays(-29), DateTime.Today.AddDays(1)).Where(ma =>
                                                                                                                                               ma.ApplicationStatus == applicationStatus && ma.ProspectiveMemberContactInfo.FirstName == applicationToUpdate.ProspectiveMemberContactInfo.FirstName &&
                                                                                                                                               ma.ProspectiveMemberContactInfo.LastName == applicationToUpdate.ProspectiveMemberContactInfo.LastName).FirstOrDefault();

            Assert.NotNull(retrievedApplication);

            retrievedApplication.UpdateMembershipApplication(initialStatus, out string _);
        }