From 3e7ade9a67f6caf5fa96a97fe12573bea1bb9a30 Mon Sep 17 00:00:00 2001 From: Justin Richer Date: Sat, 22 Nov 2014 23:45:22 -0500 Subject: [PATCH] fixed unit tests --- ...faultOAuth2ClientDetailsEntityService.java | 3 +- ...faultOAuth2ClientDetailsEntityService.java | 106 +++++++++--------- 2 files changed, 58 insertions(+), 51 deletions(-) diff --git a/openid-connect-server/src/main/java/org/mitre/oauth2/service/impl/DefaultOAuth2ClientDetailsEntityService.java b/openid-connect-server/src/main/java/org/mitre/oauth2/service/impl/DefaultOAuth2ClientDetailsEntityService.java index 3f618cccd..854647e95 100644 --- a/openid-connect-server/src/main/java/org/mitre/oauth2/service/impl/DefaultOAuth2ClientDetailsEntityService.java +++ b/openid-connect-server/src/main/java/org/mitre/oauth2/service/impl/DefaultOAuth2ClientDetailsEntityService.java @@ -149,7 +149,8 @@ public class DefaultOAuth2ClientDetailsEntityService implements ClientDetailsEnt } private void ensureRefreshTokenConsistency(ClientDetailsEntity client) { - if (client.getAuthorizedGrantTypes().contains("refresh_token") || client.getScope().contains(SystemScopeService.OFFLINE_ACCESS)) { + if (client.getAuthorizedGrantTypes().contains("refresh_token") + || client.getScope().contains(SystemScopeService.OFFLINE_ACCESS)) { client.getScope().add(SystemScopeService.OFFLINE_ACCESS); client.getAuthorizedGrantTypes().add("refresh_token"); } diff --git a/openid-connect-server/src/test/java/org/mitre/oauth2/service/impl/TestDefaultOAuth2ClientDetailsEntityService.java b/openid-connect-server/src/test/java/org/mitre/oauth2/service/impl/TestDefaultOAuth2ClientDetailsEntityService.java index d99457170..c6e1f15c9 100644 --- a/openid-connect-server/src/test/java/org/mitre/oauth2/service/impl/TestDefaultOAuth2ClientDetailsEntityService.java +++ b/openid-connect-server/src/test/java/org/mitre/oauth2/service/impl/TestDefaultOAuth2ClientDetailsEntityService.java @@ -16,11 +16,13 @@ ******************************************************************************/ package org.mitre.oauth2.service.impl; +import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.notNullValue; import static org.junit.Assert.assertThat; import static org.junit.Assert.fail; +import java.util.HashSet; import java.util.Set; import org.junit.Before; @@ -39,7 +41,9 @@ import org.mockito.InjectMocks; import org.mockito.Matchers; import org.mockito.Mock; import org.mockito.Mockito; +import org.mockito.invocation.InvocationOnMock; import org.mockito.runners.MockitoJUnitRunner; +import org.mockito.stubbing.Answer; import org.springframework.security.oauth2.common.exceptions.InvalidClientException; import com.google.common.collect.Sets; @@ -78,6 +82,31 @@ public class TestDefaultOAuth2ClientDetailsEntityService { @Before public void prepare() { Mockito.reset(clientRepository, tokenRepository, approvedSiteService, whitelistedSiteService, blacklistedSiteService, scopeService, statsService); + + Mockito.when(clientRepository.saveClient(Mockito.any(ClientDetailsEntity.class))).thenAnswer(new Answer() { + @Override + public ClientDetailsEntity answer(InvocationOnMock invocation) throws Throwable { + Object[] args = invocation.getArguments(); + return (ClientDetailsEntity) args[0]; + } + }); + + Mockito.when(clientRepository.updateClient(Mockito.anyLong(), Mockito.any(ClientDetailsEntity.class))).thenAnswer(new Answer() { + @Override + public ClientDetailsEntity answer(InvocationOnMock invocation) throws Throwable { + Object[] args = invocation.getArguments(); + return (ClientDetailsEntity) args[1]; + } + }); + + Mockito.when(scopeService.removeRestrictedScopes(Mockito.anySet())).thenAnswer(new Answer>() { + @Override + public Set answer(InvocationOnMock invocation) throws Throwable { + Object[] args = invocation.getArguments(); + return (Set) args[0]; + } + }); + } /** @@ -128,20 +157,15 @@ public class TestDefaultOAuth2ClientDetailsEntityService { @Test public void saveNewClient_yesOfflineAccess() { - ClientDetailsEntity client = Mockito.mock(ClientDetailsEntity.class); - Mockito.when(client.getId()).thenReturn(null); + ClientDetailsEntity client = new ClientDetailsEntity(); + + Set grantTypes = new HashSet(); + grantTypes.add("refresh_token"); + client.setGrantTypes(grantTypes); - Mockito.when(client.isAllowRefresh()).thenReturn(true); + client = service.saveNewClient(client); - // scopes returned by client entities are Strings - @SuppressWarnings("unchecked") - Set scopes = Mockito.mock(Set.class); - - Mockito.when(client.getScope()).thenReturn(scopes); - - service.saveNewClient(client); - - Mockito.verify(scopes).add(SystemScopeService.OFFLINE_ACCESS); + assertThat(client.getScope().contains(SystemScopeService.OFFLINE_ACCESS), is(equalTo(true))); } /** @@ -150,20 +174,11 @@ public class TestDefaultOAuth2ClientDetailsEntityService { @Test public void saveNewClient_noOfflineAccess() { - ClientDetailsEntity client = Mockito.mock(ClientDetailsEntity.class); - Mockito.when(client.getId()).thenReturn(null); + ClientDetailsEntity client = new ClientDetailsEntity(); + + client = service.saveNewClient(client); - Mockito.when(client.isAllowRefresh()).thenReturn(false); - - // scopes returned by client entities are Strings - @SuppressWarnings("unchecked") - Set scopes = Mockito.mock(Set.class); - - Mockito.when(client.getScope()).thenReturn(scopes); - - service.saveNewClient(client); - - Mockito.verify(scopes).remove(SystemScopeService.OFFLINE_ACCESS); + assertThat(client.getScope().contains(SystemScopeService.OFFLINE_ACCESS), is(equalTo(false))); } @Test @@ -276,38 +291,29 @@ public class TestDefaultOAuth2ClientDetailsEntityService { @Test public void updateClient_yesOfflineAccess() { - ClientDetailsEntity oldClient = Mockito.mock(ClientDetailsEntity.class); - ClientDetailsEntity newClient = Mockito.mock(ClientDetailsEntity.class); + ClientDetailsEntity oldClient = new ClientDetailsEntity(); + ClientDetailsEntity client = new ClientDetailsEntity(); + + Set grantTypes = new HashSet(); + grantTypes.add("refresh_token"); + client.setGrantTypes(grantTypes); - Mockito.when(newClient.isAllowRefresh()).thenReturn(true); + client = service.updateClient(oldClient, client); - // scopes returned by client entities are Strings - @SuppressWarnings("unchecked") - Set scopes = Mockito.mock(Set.class); - - Mockito.when(newClient.getScope()).thenReturn(scopes); - - service.updateClient(oldClient, newClient); - - Mockito.verify(scopes).add(SystemScopeService.OFFLINE_ACCESS); + assertThat(client.getScope().contains(SystemScopeService.OFFLINE_ACCESS), is(equalTo(true))); } @Test public void updateClient_noOfflineAccess() { - ClientDetailsEntity oldClient = Mockito.mock(ClientDetailsEntity.class); - ClientDetailsEntity newClient = Mockito.mock(ClientDetailsEntity.class); + ClientDetailsEntity oldClient = new ClientDetailsEntity(); + + oldClient.getScope().add(SystemScopeService.OFFLINE_ACCESS); + + ClientDetailsEntity client = new ClientDetailsEntity(); + + client = service.updateClient(oldClient, client); - Mockito.when(newClient.isAllowRefresh()).thenReturn(false); - - // scopes returned by client entities are Strings - @SuppressWarnings("unchecked") - Set scopes = Mockito.mock(Set.class); - - Mockito.when(newClient.getScope()).thenReturn(scopes); - - service.updateClient(oldClient, newClient); - - Mockito.verify(scopes).remove(SystemScopeService.OFFLINE_ACCESS); + assertThat(client.getScope().contains(SystemScopeService.OFFLINE_ACCESS), is(equalTo(false))); } }