package uk.ac.ic.wlgitbridge.application.config;
import org.junit.Test;
import java.io.Reader;
import java.io.StringReader;
import static org.junit.Assert.*;
/**
* Created by winston on 25/10/15.
*/
public class ConfigTest {
@Test
public void testConstructWithOauth() {
Reader reader = new StringReader("{\n" +
" \"port\": 80,\n" +
" \"rootGitDirectory\": \"/var/wlgb/git\",\n" +
" \"apiBaseUrl\": \"http://127.0.0.1:60000/api/v0\",\n" +
" \"username\": \"REDACTED\",\n" +
" \"password\": \"REDACTED\",\n" +
" \"postbackBaseUrl\": \"http://127.0.0.1\",\n" +
" \"serviceName\": \"Overleaf\",\n" +
" \"oauth2\": {\n" +
" \"oauth2ClientID\": \"clientID\",\n" +
" \"oauth2ClientSecret\": \"oauth2 client secret\",\n" +
" \"oauth2Server\": \"https://www.overleaf.com\"\n" +
" }\n" +
"}\n");
Config config = new Config(reader);
assertEquals(80, config.getPort());
assertEquals("/var/wlgb/git", config.getRootGitDirectory());
assertEquals("http://127.0.0.1:60000/api/v0/", config.getAPIBaseURL());
assertEquals("REDACTED", config.getUsername());
assertEquals("REDACTED", config.getPassword());
assertEquals("http://127.0.0.1/", config.getPostbackURL());
assertEquals("Overleaf", config.getServiceName());
assertTrue(config.isUsingOauth2());
assertEquals("clientID", config.getOauth2().getOauth2ClientID());
assertEquals("oauth2 client secret", config.getOauth2().getOauth2ClientSecret());
assertEquals("https://www.overleaf.com", config.getOauth2().getOauth2Server());
}
@Test (expected = AssertionError.class)
public void testConstructWithoutOauth() {
Reader reader = new StringReader("{\n" +
" \"port\": 80,\n" +
" \"rootGitDirectory\": \"/var/wlgb/git\",\n" +
" \"apiBaseUrl\": \"http://127.0.0.1:60000/api/v0\",\n" +
" \"username\": \"REDACTED\",\n" +
" \"password\": \"REDACTED\",\n" +
" \"postbackBaseUrl\": \"http://127.0.0.1\",\n" +
" \"serviceName\": \"Overleaf\",\n" +
" \"oauth2\": null\n" +
"}\n");
Config config = new Config(reader);
assertEquals(80, config.getPort());
assertEquals("/var/wlgb/git", config.getRootGitDirectory());
assertEquals("http://127.0.0.1:60000/api/v0/", config.getAPIBaseURL());
assertEquals("REDACTED", config.getUsername());
assertEquals("REDACTED", config.getPassword());
assertEquals("http://127.0.0.1/", config.getPostbackURL());
assertEquals("Overleaf", config.getServiceName());
assertFalse(config.isUsingOauth2());
config.getOauth2();
}
@Test
public void asSanitised() throws Exception {
Reader reader = new StringReader("{\n" +
" \"port\": 80,\n" +
" \"rootGitDirectory\": \"/var/wlgb/git\",\n" +
" \"apiBaseUrl\": \"http://127.0.0.1:60000/api/v0\",\n" +
" \"username\": \"username\",\n" +
" \"password\": \"my super secret password\",\n" +
" \"postbackBaseUrl\": \"http://127.0.0.1\",\n" +
" \"serviceName\": \"Overleaf\",\n" +
" \"oauth2\": {\n" +
" \"oauth2ClientID\": \"my oauth2 client id\",\n" +
" \"oauth2ClientSecret\": \"my oauth2 client secret\",\n" +
" \"oauth2Server\": \"https://www.overleaf.com\"\n" +
" }\n" +
"}\n");
Config config = new Config(reader);
String expected = "{\n" +
" \"port\": 80,\n" +
" \"rootGitDirectory\": \"/var/wlgb/git\",\n" +
" \"username\": \"username\",\n" +
" \"password\": \"<password>\",\n" +
" \"apiBaseURL\": \"http://127.0.0.1:60000/api/v0/\",\n" +
" \"postbackURL\": \"http://127.0.0.1/\",\n" +
" \"serviceName\": \"Overleaf\",\n" +
" \"oauth2\": {\n" +
" \"oauth2ClientID\": \"<oauth2ClientID>\",\n" +
" \"oauth2ClientSecret\": \"<oauth2ClientSecret>\",\n" +
" \"oauth2Server\": \"https://www.overleaf.com\"\n" +
" }\n" +
"}";
assertEquals(
"sanitised config did not hide sensitive fields",
expected,
config.getSanitisedString()
);
}
}