/*
* Copyright (c) 2010 Mysema Ltd.
* All rights reserved.
*
*/
package com.mysema.rdfbean.object;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.assertTrue;
import org.junit.Before;
import org.junit.Test;
import com.mysema.rdfbean.TEST;
import com.mysema.rdfbean.annotations.ClassMapping;
import com.mysema.rdfbean.annotations.Id;
import com.mysema.rdfbean.model.BID;
import com.mysema.rdfbean.model.ID;
import com.mysema.rdfbean.model.IDType;
import com.mysema.rdfbean.model.LID;
import com.mysema.rdfbean.model.UID;
/**
* @author sasa
*
*/
public class IdReferenceTest {
@ClassMapping
public final static class IDResource {
@Id
ID id;
}
@ClassMapping
public final static class LIDResource {
@Id(IDType.LOCAL)
LID id;
}
private Session session;
@Before
public void setUp() {
session = SessionUtil.openSession(IDResource.class, LIDResource.class);
IDResource idResource = new IDResource();
idResource.id = new UID(TEST.NS, "localResource");
session.save(idResource);
idResource = new IDResource();
idResource.id = new BID("foobar");
session.save(idResource);
session.flush();
session.clear();
}
@Test
public void Uri() {
IDResource resource1 = session.getBean(IDResource.class, new UID(TEST.NS, "localResource"));
assertNotNull(resource1);
ID id = resource1.id;
assertNotNull(id);
assertTrue(id instanceof UID);
assertEquals(new UID(TEST.NS, "localResource"), id);
session.clear();
IDResource resource2 = session.getBean(IDResource.class, new UID(TEST.NS, "localResource"));
assertTrue(resource1 != resource2);
assertEquals(id, resource2.id);
}
@Test
public void Bnode() {
LID lid = session.getLID(new BID("foobar"));
IDResource resource1 = session.get(IDResource.class, lid);
assertNotNull(resource1);
ID id = resource1.id;
assertNotNull(id);
assertTrue(id instanceof BID);
assertEquals(new BID("foobar"), id);
}
@Test
public void Local() {
LID lid = session.getLID(new BID("foobar"));
LIDResource resource1 = session.get(LIDResource.class, lid);
assertNotNull(resource1);
LID id = resource1.id;
assertNotNull(id);
// assertTrue(id instanceof LID);
assertTrue(Integer.parseInt(id.getId()) > 0);
}
}