1 24 25 package org.objectweb.cjdbc.scenario.standalone.sql.filters; 26 27 import java.text.SimpleDateFormat ; 28 import java.util.Date ; 29 30 import org.objectweb.cjdbc.common.sql.filters.MacrosHandler; 31 import org.objectweb.cjdbc.scenario.templates.NoTemplate; 32 33 39 public class MacrosHandlerTest extends NoTemplate 40 { 41 44 public void testNowMacro() 45 { 46 MacrosHandler handler = new MacrosHandler(MacrosHandler.RAND_FLOAT, 120000, 47 MacrosHandler.DATE_TIMESTAMP, MacrosHandler.DATE_DATE, 48 MacrosHandler.DATE_TIMESTAMP, MacrosHandler.DATE_TIMESTAMP, 49 MacrosHandler.DATE_TIMESTAMP); 50 51 String select = " select With nothing to be Replaced"; 52 String replaced = handler.processMacros(select); 53 assertEquals("", " select With nothing to be Replaced", replaced); 54 55 SimpleDateFormat fmt = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss.0"); 57 58 String expectedResult = ""; 59 String update = "update TABLE set column = now() where name = 'AAA'"; 61 replaced = handler.processMacros(update); 62 Date date = new Date (); 63 long td = date.getTime() - date.getTime() % 120000; 64 String time = fmt.format(new Date (td)); 65 expectedResult = "update TABLE set column = {ts '" + time 66 + "'} where name = 'AAA'"; 67 assertEquals("test replacement of now() " + replaced, replaced, 68 expectedResult); 69 70 } 71 72 75 public void testTimeStampMacro() 76 { 77 MacrosHandler handler = new MacrosHandler(MacrosHandler.RAND_FLOAT, 120000, 78 MacrosHandler.DATE_TIMESTAMP, MacrosHandler.DATE_DATE, 79 MacrosHandler.DATE_TIMESTAMP, MacrosHandler.DATE_TIMESTAMP, 80 MacrosHandler.DATE_TIMESTAMP); 81 82 SimpleDateFormat fmt = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss.0"); 84 85 Date date = new Date (); 86 long td = date.getTime() - date.getTime() % 120000; 87 String time = fmt.format(new Date (td)); 88 89 fmt = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss.0"); 91 92 String update = "update table set column = CURRENT_TIMESTAMP"; 93 String replaced = handler.processMacros(update); 94 date = new Date (); 95 td = date.getTime() - date.getTime() % 120000; 96 time = fmt.format(new Date (td)); 97 String expectedResult = "update table set column = {ts '" + time + "'}"; 98 assertEquals("test replacement of CURRENT_TIMESTAMP " + replaced, replaced, 99 expectedResult); 100 } 101 102 105 public void testRandMacro() throws Exception 106 { 107 MacrosHandler handler = new MacrosHandler(MacrosHandler.RAND_FLOAT, 1000, 108 MacrosHandler.DATE_DATE, MacrosHandler.DATE_DATE, 109 MacrosHandler.DATE_TIMESTAMP, MacrosHandler.DATE_TIMESTAMP, 110 MacrosHandler.DATE_TIMESTAMP); 111 String query = " select With nothing to be Replaced"; 112 String replaced = handler.macroRand(query, null); 113 assertEquals("", " select With nothing to be Replaced", replaced); 114 } 115 116 119 public void testReplaceMacro() 120 { 121 MacrosHandler handler = new MacrosHandler(MacrosHandler.RAND_FLOAT, 1000, 122 MacrosHandler.DATE_DATE, MacrosHandler.DATE_DATE, 123 MacrosHandler.DATE_TIMESTAMP, MacrosHandler.DATE_TIMESTAMP, 124 MacrosHandler.DATE_TIMESTAMP); 125 126 String query = "update table set stringvalue= 'macros in string should not be replaced , like rand(), now() and current_timestamp'"; 127 String replaced = handler.processMacros(query); 128 assertEquals("Query was replaced while it should not have", query, replaced); 129 } 130 } | Popular Tags |