use of org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev140708.CreateDataChangeEventSubscriptionInput1.Scope in project gravitee-access-management by gravitee-io.
the class ScopeRepositoryTest method testFindByDomainAndKeys.
@Test
public void testFindByDomainAndKeys() {
// create scope
Scope scope = new Scope();
scope.setName("firstOne");
scope.setKey("one");
scope.setDomain("testDomain");
Scope scopeCreated1 = scopeRepository.create(scope).blockingGet();
scope.setId(null);
scope.setName("anotherOne");
scope.setDomain("another");
scopeRepository.create(scope).blockingGet();
scope.setId(null);
scope.setName("secondOne");
scope.setKey("two");
scope.setDomain("testDomain");
Scope scopeCreated2 = scopeRepository.create(scope).blockingGet();
// fetch scopes
TestObserver<List<Scope>> testObserver = scopeRepository.findByDomainAndKeys("testDomain", Arrays.asList("one", "two", "three")).toList().test();
testObserver.awaitTerminalEvent();
testObserver.assertComplete();
testObserver.assertNoErrors();
testObserver.assertValue(scopes -> scopes.size() == 2 && scopes.stream().map(Scope::getId).collect(Collectors.toList()).containsAll(Arrays.asList(scopeCreated1.getId(), scopeCreated2.getId())));
}
use of org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev140708.CreateDataChangeEventSubscriptionInput1.Scope in project gravitee-access-management by gravitee-io.
the class OpenIDScopeUpgrader method createSystemScope.
private Single<Scope> createSystemScope(String domain, io.gravitee.am.common.oidc.Scope systemScope) {
return scopeService.findByDomainAndKey(domain, systemScope.getKey()).map(scope -> Optional.of(scope)).defaultIfEmpty(Optional.empty()).flatMapSingle(optScope -> {
if (!optScope.isPresent()) {
logger.info("Create a new system scope key[{}] for domain[{}]", systemScope.getKey(), domain);
NewSystemScope scope = new NewSystemScope();
scope.setKey(systemScope.getKey());
scope.setClaims(systemScope.getClaims());
scope.setName(systemScope.getLabel());
scope.setDescription(systemScope.getDescription());
scope.setDiscovery(systemScope.isDiscovery());
return scopeService.create(domain, scope);
} else if (shouldUpdateSystemScope(optScope, systemScope)) {
logger.info("Update a system scope key[{}] for domain[{}]", systemScope.getKey(), domain);
final Scope existingScope = optScope.get();
UpdateSystemScope scope = new UpdateSystemScope();
scope.setName(existingScope.getName() != null ? existingScope.getName() : systemScope.getLabel());
scope.setDescription(existingScope.getDescription() != null ? existingScope.getDescription() : systemScope.getDescription());
scope.setClaims(systemScope.getClaims());
scope.setExpiresIn(existingScope.getExpiresIn());
scope.setDiscovery(systemScope.isDiscovery());
return scopeService.update(domain, optScope.get().getId(), scope);
}
return Single.just(optScope.get());
});
}
use of org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev140708.CreateDataChangeEventSubscriptionInput1.Scope in project gravitee-access-management by gravitee-io.
the class ScopeUpgrader method createScope.
private Single<Scope> createScope(String domain, String scopeKey) {
return scopeService.findByDomain(domain, 0, Integer.MAX_VALUE).flatMap(scopes -> {
Optional<Scope> optScope = scopes.getData().stream().filter(scope -> scope.getKey().equalsIgnoreCase(scopeKey)).findFirst();
if (!optScope.isPresent()) {
logger.info("Create a new scope key[{}] for domain[{}]", scopeKey, domain);
NewScope scope = new NewScope();
scope.setKey(scopeKey);
scope.setName(Character.toUpperCase(scopeKey.charAt(0)) + scopeKey.substring(1));
scope.setDescription("Default description for scope " + scopeKey);
return scopeService.create(domain, scope);
}
return Single.just(optScope.get());
});
}
use of org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev140708.CreateDataChangeEventSubscriptionInput1.Scope in project gravitee-access-management by gravitee-io.
the class ScopeServiceTest method shouldUpdate_systemScope_discoveryNotReplaced.
@Test
public void shouldUpdate_systemScope_discoveryNotReplaced() {
UpdateScope updateScope = new UpdateScope();
updateScope.setDiscovery(true);
updateScope.setName("name");
final String scopeId = "toUpdateId";
Scope toUpdate = new Scope();
toUpdate.setId(scopeId);
toUpdate.setSystem(true);
toUpdate.setDiscovery(false);
toUpdate.setName("oldName");
toUpdate.setDescription("oldDescription");
ArgumentCaptor<Scope> argument = ArgumentCaptor.forClass(Scope.class);
when(scopeRepository.findById(scopeId)).thenReturn(Maybe.just(toUpdate));
when(scopeRepository.update(argument.capture())).thenReturn(Single.just(new Scope()));
when(eventService.create(any())).thenReturn(Single.just(new Event()));
TestObserver testObserver = scopeService.update(DOMAIN, scopeId, updateScope).test();
testObserver.assertComplete();
testObserver.assertNoErrors();
verify(scopeRepository, times(1)).update(any(Scope.class));
assertNotNull(argument.getValue());
assertEquals("name", argument.getValue().getName());
assertNull(argument.getValue().getDescription());
assertFalse(argument.getValue().isDiscovery());
}
use of org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev140708.CreateDataChangeEventSubscriptionInput1.Scope in project gravitee-access-management by gravitee-io.
the class ScopeServiceTest method shouldDelete3_technicalException.
@Test
public void shouldDelete3_technicalException() {
when(scopeRepository.findById("my-scope")).thenReturn(Maybe.just(new Scope()));
TestObserver testObserver = new TestObserver();
scopeService.delete("my-scope", false).subscribe(testObserver);
testObserver.assertError(TechnicalManagementException.class);
testObserver.assertNotComplete();
}
Aggregations