package org.ovirt.engine.core.searchbackend; import java.text.DateFormat; import java.util.Calendar; import java.util.Date; import org.ovirt.engine.core.compat.DateTime; import org.ovirt.engine.core.compat.RefObject; import junit.framework.TestCase; public class AuditLogConditionFieldAutoCompleterTest extends TestCase { public void testValidateFieldValueWithEnum() { IConditionFieldAutoCompleter comp = new AuditLogConditionFieldAutoCompleter(); assertTrue("VDC_START", comp.validateFieldValue("TYPE", "1")); assertFalse("SOME_RANDOM_TEXT", comp.validateFieldValue("TYPE", "SOME_RANDOM_TEXT")); } public void testValidateFieldValueWithTime() { IConditionFieldAutoCompleter comp = new AuditLogConditionFieldAutoCompleter(); String dateString = "01/12/1972"; assertTrue(dateString, comp.validateFieldValue("TIME", dateString)); assertFalse("SOME_RANDOM_TEXT", comp.validateFieldValue("TIME", "SOME_RANDOM_TEXT")); } public void testformatValueWithTime() { RefObject<String> rels = new RefObject<String>(); RefObject<String> value = new RefObject<String>(); IConditionFieldAutoCompleter comp = new AuditLogConditionFieldAutoCompleter(); Date date = new Date(72, 0, 12); String dateString = DateFormat.getDateInstance(DateFormat.SHORT).format(date); value.argvalue = dateString; comp.formatValue("TIME", rels, value, false); DateFormat fmt = DateFormat.getDateTimeInstance(DateFormat.DEFAULT, DateFormat.SHORT); assertEquals(quote(fmt.format(date)), value.argvalue); value.argvalue = "1"; comp.formatValue("TIME", rels, value, false); // Try today // SimpleDateFormat fmt = new SimpleDateFormat("MM/dd/yyyy" + // " 23:59:59 "); //Today begins at 00:00 - this is why we reset the DateTime object to midnight. DateTime dt = new DateTime(new Date()); dt = dt.resetToMidnight(); assertEquals(quote(fmt.format(dt)), value.argvalue); // Try Yesterday Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); cal.add(Calendar.DATE, -1); value.argvalue = "2"; comp.formatValue("TIME", rels, value, false); //Yesterday (as any other day) begins at 00:00 - this is why we reset the DateTime object to midnight. dt = new DateTime(cal.getTime()); dt = dt.resetToMidnight(); assertEquals(quote(fmt.format(dt)), value.argvalue); // Just going to test that this works value.argvalue = "Wednesday"; comp.formatValue("TIME", rels, value, false); assertFalse("Day should be transformed to a date", value.argvalue.equals("Wednesday")); } private String quote(String s) { return "'" + s + "'"; } }