package gov.samhsa.consent2share.infrastructure.eventlistener;
import java.util.Map;
import gov.samhsa.acs.audit.AuditService;
import gov.samhsa.acs.audit.PredicateKey;
import gov.samhsa.consent2share.domain.SecurityEvent;
import gov.samhsa.consent2share.infrastructure.securityevent.AuthenticationFailedEvent;
import gov.samhsa.consent2share.infrastructure.securityevent.SecurityAuditVerb;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import static org.mockito.Mockito.*;
import ch.qos.logback.audit.AuditException;
@RunWith(MockitoJUnitRunner.class)
public class AuthenticationFailedEventListenerTest {
final static String IP_ADDRESS="192.168.0.1";
final static String USER_NAME="user1";
@Mock
AuditService auditService;
@Mock
EventService eventService;
@InjectMocks
AuthenticationFailedEventListener listener;
@Test
public void testAudit() throws AuditException {
@SuppressWarnings("unchecked")
Map<PredicateKey, String> predicateMap=(Map<PredicateKey, String>)mock(Map.class);
doReturn(predicateMap).when(auditService).createPredicateMap();
SecurityEvent event=new AuthenticationFailedEvent(IP_ADDRESS, USER_NAME);
listener.audit(event);
verify(auditService).audit("AuthenticationFailedEventListener", IP_ADDRESS, SecurityAuditVerb.FAILED_ATTEMPTS_TO_LOGIN_AS, USER_NAME, predicateMap);
}
}