package org.apereo.cas.services;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.io.FileUtils;
import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.core.io.ClassPathResource;
import java.io.File;
import java.io.IOException;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
/**
* @author Misagh Moayyed
* @since 5.0.0
*/
public class OidcRegisteredServiceTests {
private static final File JSON_FILE = new File(FileUtils.getTempDirectoryPath(), "oidcRegisteredService.json");
private static final ObjectMapper MAPPER = new ObjectMapper();
private static final ClassPathResource RESOURCE = new ClassPathResource("services");
private final ServiceRegistryDao dao;
public OidcRegisteredServiceTests() throws Exception {
this.dao = new JsonServiceRegistryDao(RESOURCE, false, mock(ApplicationEventPublisher.class));
}
@BeforeClass
public static void prepTests() throws Exception {
FileUtils.cleanDirectory(RESOURCE.getFile());
}
@Test
public void checkSaveMethod() {
final OidcRegisteredService r = new OidcRegisteredService();
r.setName("checkSaveMethod");
r.setServiceId("testId");
r.setJwks("file:/etc/cas/thekeystorehere.jwks");
r.setSignIdToken(true);
r.setBypassApprovalPrompt(true);
final RegisteredService r2 = this.dao.save(r);
assertTrue(r2 instanceof OidcRegisteredService);
this.dao.load();
final RegisteredService r3 = this.dao.findServiceById(r2.getId());
assertTrue(r3 instanceof OidcRegisteredService);
assertEquals(r, r2);
assertEquals(r2, r3);
}
@Test
public void verifySerializeAOidcRegisteredServiceToJson() throws IOException {
final OidcRegisteredService serviceWritten = new OidcRegisteredService();
serviceWritten.setName("checkSaveMethod");
serviceWritten.setServiceId("testId");
serviceWritten.setJwks("file:/etc/cas/thekeystorehere.jwks");
serviceWritten.setSignIdToken(true);
serviceWritten.setBypassApprovalPrompt(true);
MAPPER.writeValue(JSON_FILE, serviceWritten);
final RegisteredService serviceRead = MAPPER.readValue(JSON_FILE, OidcRegisteredService.class);
assertEquals(serviceWritten, serviceRead);
}
}