Created
December 30, 2016 04:19
-
-
Save jplagostena/4aa1443624cb086efbcf1593df27bb2b to your computer and use it in GitHub Desktop.
HerokuDatasourceParser
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package ar.edu.undav.ejemplo.config; | |
/** | |
* Juan Lagostena on 30/12/16 | |
* . | |
*/ | |
public class HerokuDatasourceParser { | |
public static final String SEPARATOR = ":"; | |
public static final String SLASH = "/"; | |
private String url; | |
private String username; | |
private String password; | |
public void parseCompleteURL(String url) { | |
String[] urlFragments = url.split(SEPARATOR); | |
this.username = urlFragments[2].substring(2); | |
String[] passwordAndHostFragments = urlFragments[3].split("@"); | |
String host = passwordAndHostFragments[1]; | |
String[] portAndSchemaFragments = urlFragments[4].split(SLASH); | |
this.password = passwordAndHostFragments[0]; | |
String port = portAndSchemaFragments[0]; | |
String schema = portAndSchemaFragments[1]; | |
StringBuffer buffer = new StringBuffer(); | |
this.url = buffer.append(urlFragments[0]).append(SEPARATOR).append(urlFragments[1]).append(SEPARATOR) | |
.append(SLASH).append(SLASH).append(host).append(SEPARATOR).append(port). | |
append("/").append(schema).toString(); | |
} | |
public String getUrl() { | |
return url; | |
} | |
public String getUsername() { | |
return username; | |
} | |
public String getPassword() { | |
return password; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package ar.edu.undav.ejemplo.config; | |
import org.junit.Assert; | |
import org.junit.Test; | |
/** | |
* Juan Lagostena on 30/12/16 | |
* . | |
*/ | |
public class HerokuDatasourceParserTest { | |
@Test | |
public void parseCompleteURL() throws Exception { | |
String username = "pepe"; | |
String password = "bfw8wr0oss0uw3k1"; | |
String host = "mcldisu5rtyu29wf.cbetxkdyhwsb.us-east-1.rds.amazonaws.com"; | |
int port = 3306; | |
String schema = "lyti5ouskt6frrrr"; | |
String driver = "mariadb"; | |
String completeURL = "jdbc:" + driver + "://" + username + ":" + password + "@" + host + ":" + port + "/" + schema; | |
HerokuDatasourceParser parser = new HerokuDatasourceParser(); | |
parser.parseCompleteURL(completeURL); | |
String jdbcUrl = "jdbc:" + driver + "://" + host + ":" + port + "/" + schema; | |
Assert.assertEquals(username, parser.getUsername()); | |
Assert.assertEquals(password, parser.getPassword()); | |
Assert.assertEquals(jdbcUrl, parser.getUrl()); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment