1 package org.onap.vid.controller;
4 import org.junit.Assert;
5 import org.mockito.Mockito;
6 import org.onap.vid.controller.filter.ClientCredentialsFilter;
7 import org.testng.annotations.DataProvider;
8 import org.testng.annotations.Test;
10 import javax.servlet.FilterChain;
11 import javax.servlet.ServletException;
12 import javax.servlet.http.HttpServletRequest;
13 import javax.servlet.http.HttpServletResponse;
14 import java.io.IOException;
16 import static org.mockito.ArgumentMatchers.any;
20 * Created by amichai on 16/05/2018.
22 public class ClientCredentialsFilterTest {
25 public static Object[][] authorizedData() {
26 return new Object[][] {
27 {"Basic 123==", null},
31 {"Basic 123==", "Basic 123=="}
36 public static Object[][] notAuthorizedData() {
37 return new Object[][] {
38 {null, "Basic 123=="},
40 {"not null but not as expected", "Basic 123=="},
41 {"basic 123==", "Basic 123=="}
46 public static Object[][] clientVerified() {
47 return new Object[][] {
53 @Test(dataProvider = "authorizedData")
54 public void givenAuthorizationHeader_Authorized(String actualAuth, String expectedAuth){
55 ClientCredentialsFilter filter = new ClientCredentialsFilter();
56 Assert.assertTrue(filter.verifyClientCredentials(actualAuth, expectedAuth));
59 @Test(dataProvider = "notAuthorizedData")
60 public void givenAuthorizationHeader_NotAuthorized(String actualAuth, String expectedAuth){
61 ClientCredentialsFilter filter = new ClientCredentialsFilter();
62 Assert.assertFalse(filter.verifyClientCredentials(actualAuth, expectedAuth));
65 //@Test(dataProvider = "clientVerified")
66 public void notAuthorized_return401(Boolean clientVerified) throws IOException, ServletException {
67 ClientCredentialsFilter filter = Mockito.mock(ClientCredentialsFilter.class);
68 HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
69 HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
70 FilterChain chain = Mockito.mock(FilterChain.class);
73 Mockito.when(filter.verifyClientCredentials(any(),any())).thenReturn(clientVerified);
74 Mockito.doNothing().when(response).sendError(401);
76 Mockito.doCallRealMethod().when(filter).doFilter(request,response,chain);
77 filter.doFilter(request,response,chain);
81 Mockito.verify(chain).doFilter(request,response);
85 Mockito.verify(response).sendError(401);