/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.store.hibernate.cache.invalidation;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import static org.junit.Assert.*;
public class PrimaryKeyResolverTest
{
private PrimaryKeyResolver primaryKeyResolver = new PrimaryKeyResolver();
@Test
public void testResolveIntegerWithHardcodedValues()
{
String sql = "update tmenuitem set mei_pag_lkey = 4, mei_mid_lkey = 3 " + "where mei_lkey = 43";
String columnName = "mei_lkey";
assertEquals( 43, primaryKeyResolver.resolveIntegerValue( sql, null, columnName ) );
}
@Test
public void testResolveStringWithHardCodedValues()
{
String columnName = "grp_hkey";
assertEquals( "ABC123",
primaryKeyResolver.resolveStringValue( "update tgroup set grp_sname = 'name' where grp_hkey = 'ABC123'", null,
columnName ) );
assertEquals( "ABC123",
primaryKeyResolver.resolveStringValue( "update tgroup set grp_sname = 'name' where grp_hkey ='ABC123'", null,
columnName ) );
assertEquals( "ABC123",
primaryKeyResolver.resolveStringValue( "update tgroup set grp_sname = 'name' where grp_hkey ='ABC123' and x = 3",
null, columnName ) );
}
/* These are not working at the moment...but not really needed yet either
@Test
public void testResolveStringSpecialWithHardCodedValues() {
assertEquals("ABC#.$&?ÆØÅOK^", primaryKeyResolver.resolveStringValue(
"update tgroup set grp_sname = 'name' where grp_hkey = 'ABC#.$&?ÆØÅOK^'", null, "grp_hkey"));
assertEquals("ABC#.$&?ÆØÅOK^", primaryKeyResolver.resolveStringValue(
"update tgroup set grp_sname = 'name' where grp_hkey = 'ABC#.$&?ÆØÅOK^' and b=3", null, "grp_hkey"));
}*/
/* These are not working at the moment...but not really needed yet either
@Test
public void testResolveStringSpecialWithHardCodedValues2() {
assertEquals("ABC#.$&?ÆØÅOK^", primaryKeyResolver.resolveStringValue(
"update tgroup set grp_sname = 'name' where grp_hkey = ABC#.$&?ÆØÅOK^", null, "grp_hkey"));
assertEquals("ABC#.$&?ÆØÅOK^", primaryKeyResolver.resolveStringValue(
"update tgroup set grp_sname = 'name' where grp_hkey = ABC#.$&?ÆØÅOK^ and b=3", null, "grp_hkey"));
}
*/
@Test
public void testResolveAsInteger1()
{
String sql = "update tmenuitem set mei_pag_lkey = ?, mei_mid_lkey = ? where mei_lkey = ?";
List paramList = new ArrayList();
paramList.add( 13 );
paramList.add( 4 );
paramList.add( 132 );
String columnName = "mei_lkey";
assertEquals( 132, primaryKeyResolver.resolveIntegerValue( sql, paramList, columnName ) );
}
@Test
public void testResolveAsInteger2()
{
String sql =
"update tmenuitem set mei_sname = ?, mei_lparent = ?, mei_lorder = ?, mei_dtetimestamp = current_timestamp, mei_ssubtitle = ?, mei_bhidden = ?, mei_sdescription = ?, mei_skeywords = ?, mei_lan_lkey = ?, mei_usr_howner = ?, mei_usr_hmodifier = ?, mei_xmldata = ? where mei_lkey = ?";
ArrayList paramList = new ArrayList();
paramList.add( 0, null );
paramList.add( 1, null );
paramList.add( 2, 0 );
paramList.add( 3, null );
paramList.add( 4, 0 );
paramList.add( 5, null );
paramList.add( 6, null );
paramList.add( 7, null );
paramList.add( 8, null );
paramList.add( 9, null );
paramList.add( 10, null );
paramList.add( 11, 133 );
String columnName = "mei_lkey";
assertEquals( 133, primaryKeyResolver.resolveIntegerValue( sql, paramList, columnName ) );
}
@Test
public void testResolveAsInteger3()
{
String sql =
"update tmenuitem set mei_sname = ?, mei_lparent = ?, mei_lorder = ?, mei_dtetimestamp = current_timestamp, mei_ssubtitle = ?, mei_bhidden = ?, mei_sdescription = ?, mei_skeywords = ?, mei_lan_lkey = ?, mei_usr_howner = ?, mei_usr_hmodifier = ?, mei_xmldata = ? where mei_lkey = ?";
ArrayList paramList = new ArrayList();
paramList.add( 0, 34 );
paramList.add( 1, 64 );
paramList.add( 2, 88 );
paramList.add( 3, 23 );
paramList.add( 4, 867 );
paramList.add( 5, 33 );
paramList.add( 6, 46 );
paramList.add( 7, 98 );
paramList.add( 8, 443 );
paramList.add( 9, 22 );
paramList.add( 10, 43 );
paramList.add( 11, 133 );
String columnName = "mei_lkey";
assertEquals( 133, primaryKeyResolver.resolveIntegerValue( sql, paramList, columnName ) );
}
@Test
public void testResolveAsString1()
{
String sql = "update tgroup set grp_sname = ?, grp_brestricted = ?, grp_sdescription = ? where grp_hkey = ?";
List paramList = new ArrayList();
paramList.add( "name" );
paramList.add( 1 );
paramList.add( "description" );
paramList.add( "7258C487F730945C0049A108E88D13CBB745211F" );
String columnName = "grp_hkey";
assertEquals( "7258C487F730945C0049A108E88D13CBB745211F", primaryKeyResolver.resolveStringValue( sql, paramList, columnName ) );
}
}