KEYCLOAK-6146 Simplify test via RealmCreator

This commit is contained in:
Hynek Mlnarik 2018-02-05 15:04:16 +01:00 committed by Pavel Drozd
parent e3153295a9
commit b3766576d7
2 changed files with 23 additions and 21 deletions

View file

@ -1,5 +1,5 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* Copyright 2018 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@ -16,28 +16,35 @@
*/
package org.keycloak.testsuite.updaters;
import org.keycloak.admin.client.Keycloak;
import java.io.Closeable;
import javax.ws.rs.NotFoundException;
import org.keycloak.admin.client.resource.RealmResource;
import org.keycloak.representations.idm.RealmRepresentation;
import java.io.IOException;
/**
*
* @author <a href="mailto:vramik@redhat.com">Vlastislav Ramik</a>
* Creates a temporary realm and makes sure it is removed.
*/
public class RealmRemover {
public class RealmCreator implements Closeable {
private final RealmResource realmResource;
public RealmRemover(RealmResource realmResource) {
this.realmResource = realmResource;
public RealmCreator(Keycloak adminClient, RealmRepresentation rep) {
adminClient.realms().create(rep);
this.realmResource = adminClient.realm(rep.getRealm());
}
public Closeable remove() {
return () -> {
public RealmResource realm() {
return this.realmResource;
}
@Override
public void close() throws IOException {
try {
realmResource.remove();
} catch (NotFoundException e) {
}
};
// ignore
}
}
}

View file

@ -52,7 +52,7 @@ import org.keycloak.testsuite.auth.page.AuthRealm;
import org.keycloak.testsuite.client.KeycloakTestingClient;
import org.keycloak.testsuite.runonserver.RunOnServerDeployment;
import org.keycloak.testsuite.runonserver.RunHelpers;
import org.keycloak.testsuite.updaters.RealmRemover;
import org.keycloak.testsuite.updaters.RealmCreator;
import org.keycloak.testsuite.util.AdminEventPaths;
import org.keycloak.testsuite.util.ClientBuilder;
import org.keycloak.testsuite.util.CredentialBuilder;
@ -224,14 +224,9 @@ public class RealmTest extends AbstractAdminTest {
//KEYCLOAK-6146
@Test
public void createRealmWithPasswordPolicyFromJsonWithValidPasswords() throws IOException {
//realm with password policies and users have passwords in correct state
RealmRepresentation rep = loadJson(getClass().getResourceAsStream("/import/testrealm-keycloak-6146.json"), RealmRepresentation.class);
adminClient.realms().create(rep);
RealmResource secureApp = adminClient.realms().realm("secure-app");
RealmRepresentation created = secureApp.toRepresentation();
try (Closeable c = new RealmRemover(secureApp).remove()) {
try (RealmCreator c = new RealmCreator(adminClient, rep)) {
RealmRepresentation created = c.realm().toRepresentation();
assertRealm(rep, created);
}
}