package gov.samhsa.consent2share.domain.consent; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import gov.samhsa.consent2share.domain.AbstractDomainEventHandler; import gov.samhsa.consent2share.domain.DomainEventManager; import gov.samhsa.consent2share.domain.DomainEventServiceImpl; import gov.samhsa.consent2share.domain.consent.event.ConsentSignedEvent; import org.junit.Test; public class SignedPDFConsentTest { @Test public void testSetContent_SignedPDFConsent_Has_Same_Content_As_Given_Content() { // Arrange SignedPDFConsent sut = new SignedPDFConsent(); byte[] content = new byte[] {}; final Long consentId = (Long) 1L; // Act sut.setContent(content, consentId); // Assert assertEquals(content, sut.getContent()); } @Test public void testSetContent_ConsentSignedEvent_Is_Fired() { // Arrange SignedPDFConsent sut = new SignedPDFConsent(); byte[] content = new byte[] {}; final Long consentId = (Long) 1L; ConsentSignedEventHandler domainEventHandler = new ConsentSignedEventHandler(new ConsentSignedEvent(consentId)); DomainEventManager.registerDomainEventService(new DomainEventServiceImpl()); DomainEventManager.register(domainEventHandler); // Act sut.setContent(content, consentId); // Assert assertTrue(domainEventHandler.isEventFired()); } private class ConsentSignedEventHandler extends AbstractDomainEventHandler<ConsentSignedEvent> { private boolean eventFired = false; private ConsentSignedEvent expectedEvent; public ConsentSignedEventHandler(ConsentSignedEvent expectedEvent) { this.expectedEvent = expectedEvent; } @Override protected Class<ConsentSignedEvent> getEventClass() { return ConsentSignedEvent.class; } @Override public void handle(ConsentSignedEvent event) { eventFired = false; if (event.getConsentId().equals(expectedEvent.getConsentId())) { eventFired = true; } } public boolean isEventFired() { return eventFired; } } }