@Test(enabled = false, expectedExceptions = BadRequestException.class) public void shouldNotCreateDuplicateResourceSetWithSameId() throws Exception { // Given OAuth2Request request = mock(OAuth2Request.class); ResourceSetDescription resourceSetDescription = new ResourceSetDescription( "RESOURCE_SET_ID", "CLIENT_ID", "RESOURCE_OWNER_ID", Collections.<String, Object>singletonMap("name", "RESOURCE_SET_NAME")); resourceSetDescription.setRealm("REALM"); given(dataStore.query(Matchers.<QueryFilter<String>>anyObject())) .willReturn(Collections.singleton(resourceSetDescription)); // When try { store.create(request, resourceSetDescription); } catch (BadRequestException e) { // Then assertThat(resourceSetDescription.getPolicyUri()).isNull(); verify(dataStore, never()).create(any(ResourceSetDescription.class)); throw e; } }
@Test public void shouldQueryResourceSetToken() throws Exception { // Given Map<String, Object> queryParameters = new HashMap<String, Object>(); queryParameters.put(ResourceSetTokenField.CLIENT_ID, "CLIENT_ID"); ResourceSetDescription resourceSet1 = new ResourceSetDescription( "123", "CLIENT_ID", "RESOURCE_OWNER_ID", Collections.<String, Object>emptyMap()); ResourceSetDescription resourceSet2 = new ResourceSetDescription( "456", "CLIENT_ID", "RESOURCE_OWNER_ID", Collections.<String, Object>emptyMap()); given(dataStore.query(Matchers.<QueryFilter<String>>anyObject())) .willReturn(asSet(resourceSet1, resourceSet2)); resourceSet1.setRealm("REALM"); resourceSet2.setRealm("REALM"); // When QueryFilter<String> query = QueryFilter.alwaysTrue(); Set<ResourceSetDescription> resourceSetDescriptions = store.query(query); // Then assertThat(resourceSetDescriptions).contains(resourceSet1, resourceSet2); ArgumentCaptor<QueryFilter> tokenFilterCaptor = ArgumentCaptor.forClass(QueryFilter.class); verify(dataStore).query(tokenFilterCaptor.capture()); assertThat(tokenFilterCaptor.getValue()) .isEqualTo( QueryFilter.and(query, QueryFilter.equalTo(ResourceSetTokenField.REALM, "REALM"))); }
@Test public void shouldDeleteResourceSetToken() throws Exception { // Given ResourceSetDescription resourceSetDescription = new ResourceSetDescription( "RESOURCE_SET_ID", "CLIENT_ID", "RESOURCE_OWNER_ID", Collections.<String, Object>emptyMap()); resourceSetDescription.setRealm("REALM"); given( dataStore.query( QueryFilter.and( QueryFilter.equalTo(ResourceSetTokenField.RESOURCE_SET_ID, "RESOURCE_SET_ID"), QueryFilter.equalTo(ResourceSetTokenField.REALM, "REALM")))) .willReturn(Collections.singleton(resourceSetDescription)); // When store.delete("RESOURCE_SET_ID", "RESOURCE_OWNER_ID"); // Then verify(dataStore).delete("RESOURCE_SET_ID"); }
@Test public void shouldReadResourceSetToken() throws Exception { // Given ResourceSetDescription resourceSetDescription = new ResourceSetDescription( "RESOURCE_SET_ID", "CLIENT_ID", "RESOURCE_OWNER_ID", Collections.<String, Object>emptyMap()); given( dataStore.query( QueryFilter.and( QueryFilter.equalTo(ResourceSetTokenField.RESOURCE_SET_ID, "RESOURCE_SET_ID"), QueryFilter.equalTo(ResourceSetTokenField.REALM, "REALM")))) .willReturn(Collections.singleton(resourceSetDescription)); // When ResourceSetDescription readResourceSetDescription = store.read("RESOURCE_SET_ID", "RESOURCE_OWNER_ID"); // Then assertThat(readResourceSetDescription).isEqualTo(readResourceSetDescription); }
@Test(expectedExceptions = NotFoundException.class) public void shouldNotDeleteResourceSetTokenIfResourceSetNotFound() throws Exception { // Given // When store.delete("RESOURCE_SET_ID", "RESOURCE_OWNER_ID"); // Then // Excepted NotFoundException }
@Test(expectedExceptions = NotFoundException.class) public void readWithResourceSetUidShouldThrowNotFoundExceptionWhenMultipleResourceSetsFound() throws Exception { // Given given(dataStore.read("123")) .willThrow(new org.forgerock.openam.sm.datalayer.store.NotFoundException("not found")); // When store.read("123", "RESOURCE_OWNER_ID"); // Then // Excepted NotFoundException }
@Test public void shouldCreateResourceSetToken() throws Exception { // Given OAuth2Request request = mock(OAuth2Request.class); ResourceSetDescription resourceSetDescription = new ResourceSetDescription( "RESOURCE_SET_ID", "CLIENT_ID", "RESOURCE_OWNER_ID", Collections.<String, Object>singletonMap("name", "RESOURCE_SET_NAME")); given(dataStore.query(Matchers.<QueryFilter<String>>anyObject())) .willReturn(Collections.<ResourceSetDescription>emptySet()); // When store.create(request, resourceSetDescription); // Then assertThat(resourceSetDescription.getPolicyUri()).isEqualTo("POLICY_URI"); verify(dataStore).create(resourceSetDescription); }