package org.qi4j.entitystore.qrm.internal; import java.util.HashMap; import java.util.Map; import org.junit.Test; import org.qi4j.api.common.QualifiedName; import static org.junit.Assert.*; public class CapitalizingIdentifierConverterTest { private final CapitalizingIdentifierConverter converter = new CapitalizingIdentifierConverter(); @Test public void convertToUpperCase() { assertEquals( "identity -> ID", "ID", converter.convertIdentifier( QualifiedName.fromQN( "abc:identity" ) ) ); assertEquals( "uppercase ABC", "ABC", converter.convertIdentifier( QualifiedName.fromQN( "abc:abc" ) ) ); assertEquals( "removed qualified prefix", "ABC", converter.convertIdentifier( QualifiedName.fromQN( "aaa:abc" ) ) ); assertEquals( "removed qualified prefixes", "ABC", converter.convertIdentifier( QualifiedName.fromQN( "aaa:bbb:abc" ) ) ); } @Test public void removeFromMap() { Map<String, Object> rawData = new HashMap<String, Object>(); rawData.put( "ABC", "test" ); assertEquals( "converted key and found value", "test", converter.getValueFromData( rawData, QualifiedName.fromQN( "aaa:abc" ) ) ); assertEquals( "entry removed", 0, rawData.size() ); } @Test public void nullIfNotFound() { Map<String, Object> rawData = new HashMap<String, Object>(); assertEquals( "converted key and found value", null, converter.getValueFromData( rawData, QualifiedName.fromQN( "aaa:abc" ) ) ); } @Test public void convertMapKeys() { Map<QualifiedName, Object> rawData = new HashMap<QualifiedName, Object>(); rawData.put( QualifiedName.fromQN( "abc:abc" ), "test1" ); rawData.put( QualifiedName.fromQN( "abc:DEF" ), "test2" ); rawData.put( QualifiedName.fromQN( "aaa:GHI" ), "test3" ); rawData.put( QualifiedName.fromQN( "aaa:bbb:JKL" ), "test4" ); final Map<String, Object> convertedData = converter.convertKeys( rawData ); assertEquals( "all entries remained", 4, convertedData.size() ); assertEquals( "converted key and found value ABC", "test1", convertedData.get( "ABC" ) ); assertEquals( "converted key and found value DEF", "test2", convertedData.get( "DEF" ) ); assertEquals( "converted key and found value GHI", "test3", convertedData.get( "GHI" ) ); assertEquals( "converted key and found value JKL", "test4", convertedData.get( "JKL" ) ); } @Test( expected = IllegalArgumentException.class ) public void failDuplicateKeys() { Map<QualifiedName, Object> rawData = new HashMap<QualifiedName, Object>(); rawData.put( QualifiedName.fromQN( "abc" ), "test1" ); rawData.put( QualifiedName.fromQN( "ABC" ), "test2" ); converter.convertKeys( rawData ); } @Test( expected = IllegalArgumentException.class ) public void failDuplicateQualfiedKeys() { Map<QualifiedName, Object> rawData = new HashMap<QualifiedName, Object>(); rawData.put( QualifiedName.fromQN( "abc" ), "test1" ); rawData.put( QualifiedName.fromQN( "aaa:abc" ), "test2" ); converter.convertKeys( rawData ); } }