/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jena.shared.uuid;
import junit.framework.TestCase;
import static org.apache.jena.shared.uuid.UUIDTestSuite.* ;
public class TestUUID extends TestCase
{
public void testNilUUID1()
{
JenaUUID u = JenaUUID.nil();
assertTrue(u.getVariant() == 0) ;
assertTrue(u.getVersion() == 0) ;
assertTrue(u == UUID_nil.getNil()) ;
}
public void testNilUUID2()
{
JenaUUID u = JenaUUID.nil();
assertTrue(u.isNil()) ;
}
public void testNilUUID3()
{
JenaUUID u = JenaUUID.nil();
String s = u.asString() ;
assertEquals(s, UUID_nil.getNilString()) ;
}
public void testTime1()
{
JenaUUID u = JenaUUID.generate() ;
assertTrue(u.getVersion() == UUID_V1.version) ;
assertTrue(u.getVariant() == UUID_V1.variant) ;
}
public void testTime2()
{
JenaUUID u = JenaUUID.generate() ;
check(u) ;
}
public void testTime3()
{
UUID_V1 u1 = factory1.generateV1() ;
UUID_V1 u2 = UUID_V1_Gen.generate(u1.getVersion(), u1.getVariant(), u1.getTimestamp(), u1.getClockSequence(), u1.getNode()) ;
assertEquals(u1.getVersion(), u2.getVersion() ) ;
assertEquals(u1.getVariant(), u2.getVariant() ) ;
assertEquals(u1.getTimestamp(), u2.getTimestamp() ) ;
assertEquals(u1.getClockSequence(), u2.getClockSequence() ) ;
assertEquals(u1.getNode(), u2.getNode() ) ;
}
public void testTime4()
{
UUID_V1 u1 = factory1.generateV1() ;
UUID_V1 u2 = UUID_V1_Gen.generate(u1.getVersion(), u1.getVariant(), u1.getTimestamp(), u1.getClockSequence(), u1.getNode()) ;
assertEquals(u1, u2) ;
assertEquals(u1.asString(), u2.asString()) ;
}
public void testTime5()
{
UUID_V1 u1 = factory1.generateV1() ;
UUID_V1 u2 = UUID_V1_Gen.generate(u1.getVersion(), u1.getVariant(), u1.getTimestamp(), u1.getClockSequence(), u1.getNode()) ;
assertEquals(u1.asString(), u2.asString()) ;
}
public void testTime6()
{
JenaUUID u1 = JenaUUID.generate() ;
JenaUUID u2 = JenaUUID.generate() ;
assertFalse(u1.equals(u2)) ;
}
public void testRandom1()
{
JenaUUID u = factory4.generate() ;
assertEquals(u.getVersion(), UUID_V4.version) ;
assertEquals(u.getVariant(), UUID_V4.variant) ;
}
public void testRandom2()
{
JenaUUID u = factory4.generate() ;
check(u) ;
}
public void testRandom3()
{
JenaUUID u = factory4.generate() ;
check(u.asString()) ;
}
public void testRandom4()
{
JenaUUID u1 = factory4.generate() ;
JenaUUID u2 = factory4.generate() ;
assertFalse(u1.equals(u2)) ;
}
public void testEquals1()
{
JenaUUID u1 = JenaUUID.generate() ;
JenaUUID u2 = JenaUUID.parse(u1.asString()) ;
assertNotSame(u1, u2) ;
assertEquals(u1, u2) ;
JenaUUID u3 = JenaUUID.generate() ;
assertFalse(u1.equals(u3)) ;
assertFalse(u3.equals(u1)) ;
assertFalse(u2.equals(u3)) ;
assertFalse(u3.equals(u2)) ;
}
public void testEquals2()
{
JenaUUID u1 = factory4.generate() ;
JenaUUID u2 = JenaUUID.parse(u1.asString()) ;
assertNotSame(u1, u2) ;
assertEquals(u1, u2) ;
JenaUUID u3 = factory4.generate() ;
assertFalse(u1.equals(u3)) ;
assertFalse(u3.equals(u1)) ;
assertFalse(u2.equals(u3)) ;
assertFalse(u3.equals(u2)) ;
}
public void testHash1()
{
JenaUUID u1 = JenaUUID.generate() ;
JenaUUID u2 = JenaUUID.parse(u1.asString()) ;
assertNotSame(u1, u2) ;
assertEquals(u1.hashCode(), u2.hashCode()) ;
JenaUUID u3 = JenaUUID.generate() ;
// Time/increment based so should be different
assertFalse(u1.hashCode() == u3.hashCode()) ;
}
public void testHash2()
{
JenaUUID u1 = factory4.generate() ;
JenaUUID u2 = JenaUUID.parse(u1.asString()) ;
assertNotSame(u1, u2) ;
assertEquals(u1.hashCode(), u2.hashCode()) ;
}
public void testMisc1()
{
check("8609C81E-EE1F-4D5A-B202-3EB13AD01823") ;
check("uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384") ;
check("UUID:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2") ;
check("urn:8609C81E-EE1F-4D5A-B202-3EB13AD01823") ;
check("urn:uuid:70A80F61-77BC-4821-A5E2-2A406ACC35DD") ;
}
private void check(String uuidString)
{
JenaUUID uuid = JenaUUID.parse(uuidString) ;
//assertFalse(u.equals(JenaUUID.nil())) ;
String s2 = uuid.asString() ;
String s = uuidString ;
if ( s.matches("[uU][rR][nN]:") )
s = s.substring(4) ;
if ( s.startsWith("[uU][uU][iI][dD]:") )
s = s.substring(5) ;
assertTrue(uuidString.equalsIgnoreCase(s)) ;
}
private void check(JenaUUID uuid)
{
String s = uuid.asString() ;
if ( uuid.isNil() )
{
assertEquals(JenaUUID.strNil(), s) ;
return ;
}
JenaUUID uuid2 = JenaUUID.parse(s) ;
assertTrue(uuid2.equals(uuid)) ;
}
}