object LoanSummaryEventProjectorSpekTest : Spek({ val projector: LoanSummaryEventProjector = LoanSummaryEventProjector(repository) fun LoanSummaryEventProjector.handle(obj: T): T = this.handle(obj) describe("verify event is added") { val events = mapOf( "Applicant Created" to { projector.handle(applicantCreatedEvent()) }, "Property Registered" to { projector.handle(propertyRegisteredEvent()) }, "Subject Property Details Registered" to { projector.handle(subjectPropertyDetailsRegisteredEvent()) }, "Applicant Authorized a Credit Pull" to { projector.handle(applicantAuthorizedCreditPullEvent()) }, "Applicant Acknowledged Agreement" to { projector.handle(applicantAcknowledgedAgreementEvent()) }, "Applicant Applied" to { projector.handle(applicantAppliedEvent()) }, "Asset Created" to { projector.handle(assetCreatedEvent()) }, "Applicant Updated" to { projector.handle(applicantUpdatedEvent()) } ) for ((eventText, eventObject) in events) { on("'$eventText' should be added to repository when event is run") { eventObject.invoke() } } } })