package de.otto.edison.togglz.authentication;
import org.junit.Test;
import org.mockito.stubbing.OngoingStubbing;
import org.springframework.util.Base64Utils;
import javax.servlet.http.HttpServletRequest;
import java.util.Optional;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.springframework.util.Base64Utils.encodeToString;
public class CredentialsTest {
@Test
public void shouldBeAbleToReadCredentialsFromRequest() {
HttpServletRequest httpServletRequest = mock(HttpServletRequest.class);
when(httpServletRequest.getHeader("Authorization"))
.thenReturn("Basic " + encodeToString("someUsername:somePassword".getBytes()));
Optional<Credentials> credentials = Credentials.readFrom(httpServletRequest);
assertThat(credentials.isPresent(), is(true));
assertThat(credentials.get().getUsername(), is("someUsername"));
assertThat(credentials.get().getPassword(), is("somePassword"));
}
@Test
public void shouldReturnEmptyCredentialsIfHeaderDoesNotExist() {
Optional<Credentials> credentials = Credentials.readFrom(mock(HttpServletRequest.class));
assertThat(credentials.isPresent(), is(false));
}
}