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.ConsentRevokedEvent; import org.junit.Test; public class SignedPDFConsentRevocationTest { @Test public void testSetContent_SignedPDFConsentRevocation_Has_Same_Content_As_Given_Content() { // Arrange SignedPDFConsentRevocation sut = new SignedPDFConsentRevocation(); byte[] content = new byte[] {}; final Long consentId = (Long) 1L; // Act sut.setContent(content, consentId); // Assert assertEquals(content, sut.getContent()); } @Test public void testSetContent_ConsentRevokedEvent_Is_Fired() { // Arrange SignedPDFConsentRevocation sut = new SignedPDFConsentRevocation(); byte[] content = new byte[] {}; final Long consentId = (Long) 1L; ConsentRevokedEventHandler domainEventHandler = new ConsentRevokedEventHandler(new ConsentRevokedEvent(consentId)); DomainEventManager.registerDomainEventService(new DomainEventServiceImpl()); DomainEventManager.register(domainEventHandler); // Act sut.setContent(content, consentId); // Assert assertTrue(domainEventHandler.isEventFired()); } private class ConsentRevokedEventHandler extends AbstractDomainEventHandler<ConsentRevokedEvent> { private boolean eventFired = false; private ConsentRevokedEvent expectedEvent; public ConsentRevokedEventHandler(ConsentRevokedEvent expectedEvent) { this.expectedEvent = expectedEvent; } @Override protected Class<ConsentRevokedEvent> getEventClass() { return ConsentRevokedEvent.class; } @Override public void handle(ConsentRevokedEvent event) { eventFired = false; if (event.getConsentId().equals(expectedEvent.getConsentId())) { eventFired = true; } } public boolean isEventFired() { return eventFired; } } }