package com.ctrip.framework.apollo.openapi.util; import com.ctrip.framework.apollo.openapi.service.ConsumerService; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.springframework.test.util.ReflectionTestUtils; import javax.servlet.http.HttpServletRequest; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; /** * @author Jason Song(song_s@ctrip.com) */ @RunWith(MockitoJUnitRunner.class) public class ConsumerAuthUtilTest { private ConsumerAuthUtil consumerAuthUtil; @Mock private ConsumerService consumerService; @Mock private HttpServletRequest request; @Before public void setUp() throws Exception { consumerAuthUtil = new ConsumerAuthUtil(); ReflectionTestUtils.setField(consumerAuthUtil, "consumerService", consumerService); } @Test public void testGetConsumerId() throws Exception { String someToken = "someToken"; Long someConsumerId = 1L; when(consumerService.getConsumerIdByToken(someToken)).thenReturn(someConsumerId); assertEquals(someConsumerId, consumerAuthUtil.getConsumerId(someToken)); verify(consumerService, times(1)).getConsumerIdByToken(someToken); } @Test public void testStoreConsumerId() throws Exception { long someConsumerId = 1L; consumerAuthUtil.storeConsumerId(request, someConsumerId); verify(request, times(1)).setAttribute(ConsumerAuthUtil.CONSUMER_ID, someConsumerId); } @Test public void testRetrieveConsumerId() throws Exception { long someConsumerId = 1; when(request.getAttribute(ConsumerAuthUtil.CONSUMER_ID)).thenReturn(someConsumerId); assertEquals(someConsumerId, consumerAuthUtil.retrieveConsumerId(request)); verify(request, times(1)).getAttribute(ConsumerAuthUtil.CONSUMER_ID); } @Test(expected = IllegalStateException.class) public void testRetrieveConsumerIdWithConsumerIdNotSet() throws Exception { consumerAuthUtil.retrieveConsumerId(request); } @Test(expected = IllegalStateException.class) public void testRetrieveConsumerIdWithConsumerIdInvalid() throws Exception { String someInvalidConsumerId = "abc"; when(request.getAttribute(ConsumerAuthUtil.CONSUMER_ID)).thenReturn(someInvalidConsumerId); consumerAuthUtil.retrieveConsumerId(request); } }