diff options
Diffstat (limited to 'test-suite/src/test/scala/scala/scalajs/testsuite/javalib/UUIDTest.scala')
-rw-r--r-- | test-suite/src/test/scala/scala/scalajs/testsuite/javalib/UUIDTest.scala | 180 |
1 files changed, 180 insertions, 0 deletions
diff --git a/test-suite/src/test/scala/scala/scalajs/testsuite/javalib/UUIDTest.scala b/test-suite/src/test/scala/scala/scalajs/testsuite/javalib/UUIDTest.scala new file mode 100644 index 0000000..b22fe02 --- /dev/null +++ b/test-suite/src/test/scala/scala/scalajs/testsuite/javalib/UUIDTest.scala @@ -0,0 +1,180 @@ +/* __ *\ +** ________ ___ / / ___ __ ____ Scala.js Test Suite ** +** / __/ __// _ | / / / _ | __ / // __/ (c) 2013, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ |/_// /_\ \ http://scala-js.org/ ** +** /____/\___/_/ |_/____/_/ | |__/ /____/ ** +** |/____/ ** +\* */ +package scala.scalajs.testsuite.javalib + +import scala.scalajs.js +import org.scalajs.jasminetest.JasmineTest + +import java.util.UUID + +object UUIDTest extends JasmineTest { + describe("java.util.UUID") { + it("constructor") { + val uuid = new UUID(0xf81d4fae7dec11d0L, 0xa76500a0c91e6bf6L) + expect(uuid.getMostSignificantBits() == 0xf81d4fae7dec11d0L).toBeTruthy + expect(uuid.getLeastSignificantBits() == 0xa76500a0c91e6bf6L).toBeTruthy + expect(uuid.variant()).toEqual(2) + expect(uuid.version()).toEqual(1) + expect(uuid.timestamp() == 0x1d07decf81d4faeL).toBeTruthy + expect(uuid.clockSequence()).toEqual(0x2765) + expect(uuid.node() == 0xA0C91E6BF6L).toBeTruthy + } + + it("getLeastSignificantBits") { + expect(new UUID(0L, 0L).getLeastSignificantBits() == 0L).toBeTruthy + expect(new UUID(0L, Long.MinValue).getLeastSignificantBits() == Long.MinValue).toBeTruthy + expect(new UUID(0L, Long.MaxValue).getLeastSignificantBits() == Long.MaxValue).toBeTruthy + } + + it("getMostSignificantBits") { + expect(new UUID(0L, 0L).getMostSignificantBits() == 0L).toBeTruthy + expect(new UUID(Long.MinValue, 0L).getMostSignificantBits() == Long.MinValue).toBeTruthy + expect(new UUID(Long.MaxValue, 0L).getMostSignificantBits() == Long.MaxValue).toBeTruthy + } + + it("version") { + expect(new UUID(0L, 0L).version()).toEqual(0) + expect(new UUID(0x0000000000001000L, 0L).version()).toEqual(1) + expect(new UUID(0x00000000000f2f00L, 0L).version()).toEqual(2) + } + + it("variant") { + expect(new UUID(0L, 0L).variant()).toEqual(0) + expect(new UUID(0L, 0x7000000000000000L).variant()).toEqual(0) + expect(new UUID(0L, 0x3ff0000000000000L).variant()).toEqual(0) + expect(new UUID(0L, 0x1ff0000000000000L).variant()).toEqual(0) + + expect(new UUID(0L, 0x8000000000000000L).variant()).toEqual(2) + expect(new UUID(0L, 0xb000000000000000L).variant()).toEqual(2) + expect(new UUID(0L, 0xaff0000000000000L).variant()).toEqual(2) + expect(new UUID(0L, 0x9ff0000000000000L).variant()).toEqual(2) + + expect(new UUID(0L, 0xc000000000000000L).variant()).toEqual(6) + expect(new UUID(0L, 0xdf00000000000000L).variant()).toEqual(6) + } + + it("timestamp") { + expect(new UUID(0x0000000000001000L, + 0x8000000000000000L).timestamp() == 0L).toBeTruthy + expect(new UUID(0x7777777755551333L, + 0x8000000000000000L).timestamp() == 0x333555577777777L).toBeTruthy + + expect(() => new UUID(0x0000000000000000L, 0x8000000000000000L).timestamp()).toThrow + expect(() => new UUID(0x0000000000002000L, 0x8000000000000000L).timestamp()).toThrow + } + + it("clockSequence") { + expect(new UUID(0x0000000000001000L, 0x8000000000000000L).clockSequence()).toEqual(0) + expect(new UUID(0x0000000000001000L, 0x8fff000000000000L).clockSequence()).toEqual(0x0fff) + expect(new UUID(0x0000000000001000L, 0xBfff000000000000L).clockSequence()).toEqual(0x3fff) + + expect(() => new UUID(0x0000000000000000L, 0x8000000000000000L).clockSequence()).toThrow + expect(() => new UUID(0x0000000000002000L, 0x8000000000000000L).clockSequence()).toThrow + } + + it("node") { + expect(new UUID(0x0000000000001000L, 0x8000000000000000L).node() == 0L).toBeTruthy + expect(new UUID(0x0000000000001000L, 0x8000ffffffffffffL).node() == 0xffffffffffffL).toBeTruthy + + expect(() => new UUID(0x0000000000000000L, 0x8000000000000000L).node()).toThrow + expect(() => new UUID(0x0000000000002000L, 0x8000000000000000L).node()).toThrow + } + + it("compareTo") { + val uuid0101 = new UUID(1L, 1L) + val uuid0111 = new UUID(1L, 0x100000001L) + val uuid1000 = new UUID(0x100000000L, 0L) + + expect(uuid0101.compareTo(uuid0101)).toEqual(0) + expect(uuid0111.compareTo(uuid0111)).toEqual(0) + expect(uuid1000.compareTo(uuid1000)).toEqual(0) + + expect(uuid0101.compareTo(uuid0111)).toBeLessThan(0) + expect(uuid0101.compareTo(uuid1000)).toBeLessThan(0) + expect(uuid0111.compareTo(uuid1000)).toBeLessThan(0) + + expect(uuid0111.compareTo(uuid0101)).toBeGreaterThan(0) + expect(uuid1000.compareTo(uuid0101)).toBeGreaterThan(0) + expect(uuid1000.compareTo(uuid0111)).toBeGreaterThan(0) + } + + it("hashCode") { + expect(new UUID(0L, 0L).hashCode()).toEqual(0) + expect(new UUID(123L, 123L).hashCode()).toEqual(new UUID(123L, 123L).hashCode()) + } + + it("equals") { + val uuid1 = new UUID(0L, 0L) + expect(uuid1.equals(uuid1)).toBeTruthy + expect(uuid1.equals(null)).toBeFalsy + expect(uuid1.equals("something else")).toBeFalsy + + val uuid2 = new UUID(0L, 0L) + expect(uuid1.equals(uuid2)).toBeTruthy + + val uuid3 = new UUID(0xf81d4fae7dec11d0L, 0xa76500a0c91e6bf6L) + val uuid4 = new UUID(0xf81d4fae7dec11d0L, 0xa76500a0c91e6bf6L) + expect(uuid3.equals(uuid4)).toBeTruthy + expect(uuid3.equals(uuid1)).toBeFalsy + + expect(uuid3.equals(new UUID(0x781d4fae7dec11d0L, 0xa76500a0c91e6bf6L))).toBeFalsy + expect(uuid3.equals(new UUID(0xf81d4fae7dec11d1L, 0xa76500a0c91e6bf6L))).toBeFalsy + expect(uuid3.equals(new UUID(0xf81d4fae7dec11d0L, 0xa76530a0c91e6bf6L))).toBeFalsy + expect(uuid3.equals(new UUID(0xf81d4fae7dec11d0L, 0xa76500a0c91e6cf6L))).toBeFalsy + } + + it("toString") { + expect(new UUID(0xf81d4fae7dec11d0L, + 0xa76500a0c91e6bf6L).toString()).toEqual("f81d4fae-7dec-11d0-a765-00a0c91e6bf6") + expect(new UUID(0x0000000000001000L, + 0x8000000000000000L).toString()).toEqual("00000000-0000-1000-8000-000000000000") + } + + it("randomUUID") { + val uuid = UUID.randomUUID() + expect(uuid.variant()).toEqual(2) + expect(uuid.version()).toEqual(4) + } + + it("fromString") { + val uuid1 = UUID.fromString("f81d4fae-7dec-11d0-a765-00a0c91e6bf6") + expect(uuid1.equals(new UUID(0xf81d4fae7dec11d0L, 0xa76500a0c91e6bf6L))).toBeTruthy + expect(uuid1.getMostSignificantBits() == 0xf81d4fae7dec11d0L).toBeTruthy + expect(uuid1.getLeastSignificantBits() == 0xa76500a0c91e6bf6L).toBeTruthy + expect(uuid1.variant()).toEqual(2) + expect(uuid1.version()).toEqual(1) + expect(uuid1.timestamp() == 130742845922168750L).toBeTruthy + expect(uuid1.clockSequence()).toEqual(10085) + expect(uuid1.node() == 690568981494L).toBeTruthy + + val uuid2 = UUID.fromString("00000000-0000-1000-8000-000000000000") + expect(uuid2.equals(new UUID(0x0000000000001000L, 0x8000000000000000L))) + expect(uuid2.getMostSignificantBits() == 0x0000000000001000L).toBeTruthy + expect(uuid2.getLeastSignificantBits() == 0x8000000000000000L).toBeTruthy + expect(uuid2.variant()).toEqual(2) + expect(uuid2.version()).toEqual(1) + expect(uuid2.timestamp() == 0L).toBeTruthy + expect(uuid2.clockSequence()).toEqual(0) + expect(uuid2.node() == 0L).toBeTruthy + + expect(() => UUID.fromString(null)).toThrow + expect(() => UUID.fromString("")).toThrow + expect(() => UUID.fromString("f81d4fae_7dec-11d0-a765-00a0c91e6bf6")).toThrow + expect(() => UUID.fromString("f81d4fae-7dec_11d0-a765-00a0c91e6bf6")).toThrow + expect(() => UUID.fromString("f81d4fae-7dec-11d0_a765-00a0c91e6bf6")).toThrow + expect(() => UUID.fromString("f81d4fae-7dec-11d0-a765_00a0c91e6bf6")).toThrow + expect(() => UUID.fromString("-7dec-11d0-a765-00a0c91e6bf6")).toThrow + expect(() => UUID.fromString("f81d4fae--11d0-a765-00a0c91e6bf6")).toThrow + expect(() => UUID.fromString("f81d4fae-7dec--a765-00a0c91e6bf6")).toThrow + expect(() => UUID.fromString("f81d4fae-7dec-11d0--00a0c91e6bf6")).toThrow + expect(() => UUID.fromString("f81d4fae-7dec-11d0-a765-")).toThrow + expect(() => UUID.fromString("f81d4fae-7dec-11d0-a765")).toThrow + expect(() => UUID.fromString("f81d4fae-7dZc-11d0-a765-00a0c91e6bf6")).toThrow + } + } +} |