Skip to content

Commit

Permalink
getUUID() reworked
Browse files Browse the repository at this point in the history
  • Loading branch information
oboehm committed Dec 19, 2017
1 parent 9d3eb89 commit 3bdc7a0
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 6 deletions.
16 changes: 12 additions & 4 deletions src/main/java/de/jfachwert/util/TinyUUID.java
Expand Up @@ -111,7 +111,6 @@ private static byte[] to16Bytes(byte[] bytes) {
*/
public BigInteger toNumber() {
UUID uuid = this.getCode();
//return BigInteger.valueOf(uuid.getLeastSignificantBits()).multiply(LIMIT_INT).add(BigInteger.valueOf(uuid.getMostSignificantBits()));
return new BigInteger(uuid.toString().replaceAll("-", ""), 16);
}

Expand All @@ -133,7 +132,7 @@ public byte[] toBytes() {
* @return die {@link UUID}
*/
public UUID getUUID() {
return UUID.fromString(toString());
return this.getCode();
}

/**
Expand All @@ -158,11 +157,11 @@ public long getMostSignificantBits() {
* Da {@link TinyUUID} als Ersatz fuer die {@link UUID}-Klasse gedacht ist,
* liefert sie das gleiche Ergebnis wie die {@link UUID}-Klasse.
*
* @return z.B. "d9b67549-3c53-42f2-a394-33f990e697ce"
* @return z.B. "ix9de14vQgGKwXZUaruCzw"
*/
@Override
public String toString() {
return this.getCode().toString();
return this.toShortString();
}

private static String toString(BigInteger number) {
Expand All @@ -188,6 +187,15 @@ public String toShortString() {
return Base64.getEncoder().withoutPadding().encodeToString(toBytes());
}

/**
* Dies ist das Gegenstueck zu {@link #toShortString()}.
*
* @return z.B. "4e8108fa-e517-41bd-8372-a828843030ba"
*/
public String toLongString() {
return this.getUUID().toString();
}

/**
* Aehnlich wie {@link UUID#fromString(String)} wird hier eine
* {@link TinyUUID} anhand des uebergebenen Strings erzeugt.
Expand Down
15 changes: 13 additions & 2 deletions src/test/java/de/jfachwert/util/TinyUUIDTest.java
Expand Up @@ -23,6 +23,7 @@
import java.util.UUID;

import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.lessThan;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;

Expand Down Expand Up @@ -142,13 +143,13 @@ public void testGetSignificantBits() {

/**
* Da {@link TinyUUID} als Ersatz fuer die {@link UUID}-Klasse gedacht ist,
* sollte sie bei der toString()-Methode das gleiche Ergebnis rauskommen.
* sollte sie bei der toLongString()-Methode das gleiche Ergebnis rauskommen.
*/
@Override
@Test
public void testToString() {
UUID uuid = UUID.randomUUID();
assertEquals(uuid.toString(), new TinyUUID(uuid).toString());
assertEquals(uuid.toString(), new TinyUUID(uuid).toLongString());
}

/**
Expand Down Expand Up @@ -177,8 +178,18 @@ public void testToShortStringMax() {

private void checkToShortString(TinyUUID id) {
String s = id.toShortString();
assertThat(s.length(), is(lessThan(id.toLongString().length())));
assertThat(s, s.length(), is(22));
assertEquals(id, TinyUUID.fromString(s));
}

/**
* Test-Methode fuer {@link TinyUUID#fromString(String)}.
*/
@Test
public void testFromString() {
UUID uuid = UUID.randomUUID();
assertEquals(new TinyUUID(uuid), TinyUUID.fromString(uuid.toString()));
}

}

0 comments on commit 3bdc7a0

Please sign in to comment.