/*
* Copyright (c) 2010 Mysema Ltd.
* All rights reserved.
*
*/
package com.mysema.rdfbean.object;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import org.junit.Test;
import com.mysema.rdfbean.TEST;
import com.mysema.rdfbean.annotations.ClassMapping;
import com.mysema.rdfbean.annotations.Localized;
import com.mysema.rdfbean.annotations.Predicate;
import com.mysema.rdfbean.model.LIT;
import com.mysema.rdfbean.model.MiniRepository;
import com.mysema.rdfbean.model.RDFS;
import com.mysema.rdfbean.model.STMT;
import com.mysema.rdfbean.model.UID;
/**
* @author sasa
*
*/
public class LocalizationTest {
private static final Locale EN = new Locale("en");
private static final Locale FI = new Locale("fi");
protected static List<Locale> locales = Arrays.asList(FI, EN);
@ClassMapping(ns = RDFS.NS, ln = "Resource")
public final static class LocalizedMapTest {
@Predicate(ln = "label")
@Localized
private Map<Locale, String> labels;
public Map<Locale, String> getLabels() {
return this.labels;
}
}
@Test
public void LocalizedMap() {
UID subject = new UID(TEST.NS, "LocalizedMapTest");
MiniRepository repository = new MiniRepository(
new STMT(subject, RDFS.label, new LIT("suomeksi", FI)),
new STMT(subject, RDFS.label, new LIT("in english", EN))
);
Session session = SessionUtil.openSession(repository, locales, LocalizedMapTest.class);
LocalizedMapTest lmaptest = session.getBean(LocalizedMapTest.class, subject);
assertNotNull(lmaptest.getLabels());
assertEquals("suomeksi", lmaptest.getLabels().get(FI));
assertEquals("in english", lmaptest.getLabels().get(EN));
}
}