/* Copyright 2009-2016 Igor Polevoy Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ package org.javalite.common; import org.javalite.test.jspec.JSpecSupport; import org.junit.Test; import java.math.BigDecimal; import java.sql.Date; import java.sql.Time; import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.TimeZone; /** * @author Igor Polevoy * @author Eric Nielsen */ public class ConvertTest implements JSpecSupport { @Test public void shouldCovertToSqlDate() throws ParseException { Date d = new Date(new SimpleDateFormat("yyyy-MM-dd").parse("2001-01-01").getTime()); Date d1 = Convert.toSqlDate("2001-01-01"); a(d).shouldBeEqual(d1); Date date = Convert.toSqlDate(1416127392928L); a(date.toString()).shouldBeEqual("2014-11-16"); } @Test public void shouldTruncateToSqlDate() { //util date java.util.Date now = new java.util.Date(); java.sql.Date today = Convert.truncateToSqlDate(now); String string = new java.util.Date(today.getTime()).toString(); //format: Fri Jun 17 12:55:47 CDT 2011 a(string.contains("00:00:00")).shouldBeTrue(); //util Timestamp Timestamp t = new Timestamp(System.currentTimeMillis()); today = Convert.truncateToSqlDate(t); string = new java.util.Date(today.getTime()).toString(); //format: Fri Jun 17 12:55:47 CDT 2011 a(string.contains("00:00:00")).shouldBeTrue(); //util Time Time tm = new Time(System.currentTimeMillis()); today = Convert.truncateToSqlDate(tm); string = new java.util.Date(today.getTime()).toString(); //format: Fri Jun 17 12:55:47 CDT 2011 a(string.contains("00:00:00")).shouldBeTrue(); //Long java.sql.Date date = Convert.truncateToSqlDate(1416127392928L); string = new java.util.Date(date.getTime()).toString(); a(string.contains("00:00:00")).shouldBeTrue(); } @Test public void shouldCovertToTimestamp() { //string Timestamp ts = new Timestamp(System.currentTimeMillis()); Timestamp ts1 = Convert.toTimestamp(ts.toString()); a(ts).shouldBeEqual(ts1); //java.sql.Date java.sql.Date date = new Date(System.currentTimeMillis()); ts1 = new Timestamp(date.getTime()); ts = Convert.toTimestamp(date); a(ts).shouldBeEqual(ts1); //java.util.Date java.util.Date date1 = new java.util.Date(System.currentTimeMillis()); ts1 = new Timestamp(date1.getTime()); ts = Convert.toTimestamp(date1); a(ts).shouldBeEqual(ts1); //Long ts = Convert.toTimestamp(1416127392928L); a(ts).shouldBeEqual(new Timestamp(1416127392928L)); } @Test public void shouldCovertToBigDecimal() { //integer Object o = Convert.toBigDecimal(1); a(o instanceof BigDecimal).shouldBeTrue(); a(o).shouldBeEqual(1); //string o = Convert.toBigDecimal("1"); a(o instanceof BigDecimal).shouldBeTrue(); a(o).shouldBeEqual(1); //double o = Convert.toBigDecimal(1d); a(o instanceof BigDecimal).shouldBeTrue(); a(o).shouldBeEqual(1); //long o = Convert.toBigDecimal(1L); a(o instanceof BigDecimal).shouldBeTrue(); a(o).shouldBeEqual(1); } @Test public void shouldCovertToLong() { //integer Object o = Convert.toLong(1); a(o instanceof Long).shouldBeTrue(); a(o).shouldBeEqual(1); //string o = Convert.toLong("1"); a(o instanceof Long).shouldBeTrue(); a(o).shouldBeEqual(1); //double o = Convert.toLong(1d); a(o instanceof Long).shouldBeTrue(); a(o).shouldBeEqual(1); //BigDecimal o = Convert.toLong(new BigDecimal(1)); a(o instanceof Long).shouldBeTrue(); a(o).shouldBeEqual(1); //java.util.Date Date date = new Date(1416127392928L); o = Convert.toLong(date); a(o instanceof Long).shouldBeTrue(); a(o).shouldBeEqual(1416127392928L); } @Test public void shouldCovertToDouble() { //integer Object o = Convert.toDouble(1); a(o instanceof Double).shouldBeTrue(); a(o).shouldBeEqual(1); //string o = Convert.toDouble("1"); a(o instanceof Double).shouldBeTrue(); a(o).shouldBeEqual(1); //long o = Convert.toDouble(1L); a(o instanceof Double).shouldBeTrue(); a(o).shouldBeEqual(1); //BigDecimal o = Convert.toDouble(new BigDecimal(1)); a(o instanceof Double).shouldBeTrue(); a(o).shouldBeEqual(1); } @Test public void shouldCovertToFloat() { //float Object o = Convert.toFloat(1F); a(o instanceof Float).shouldBeTrue(); a(o).shouldBeEqual(1); //string o = Convert.toFloat("1"); a(o instanceof Float).shouldBeTrue(); a(o).shouldBeEqual(1); //long o = Convert.toFloat(1L); a(o instanceof Float).shouldBeTrue(); a(o).shouldBeEqual(1); //BigDecimal o = Convert.toFloat(new BigDecimal(1)); a(o instanceof Float).shouldBeTrue(); a(o).shouldBeEqual(1); } @Test public void shouldCovertToShort() { //float Object o = Convert.toShort(1F); a(o instanceof Short).shouldBeTrue(); a(o).shouldBeEqual(1); //string o = Convert.toShort("1"); a(o instanceof Short).shouldBeTrue(); a(o).shouldBeEqual(1); //long o = Convert.toShort(1L); a(o instanceof Short).shouldBeTrue(); a(o).shouldBeEqual(1); //BigDecimal o = Convert.toShort(new BigDecimal(1)); a(o instanceof Short).shouldBeTrue(); a(o).shouldBeEqual(1); } @Test public void shouldCovertToBoolean() { a(Convert.toBoolean(null)).shouldBeFalse(); a(Convert.toBoolean("true")).shouldBeTrue(); a(Convert.toBoolean("false")).shouldBeFalse(); a(Convert.toBoolean("TRUE")).shouldBeTrue(); a(Convert.toBoolean("FALSE")).shouldBeFalse(); a(Convert.toBoolean("True")).shouldBeTrue(); a(Convert.toBoolean("False")).shouldBeFalse(); a(Convert.toBoolean("yes")).shouldBeTrue(); a(Convert.toBoolean("no")).shouldBeFalse(); a(Convert.toBoolean("YES")).shouldBeTrue(); a(Convert.toBoolean("NO")).shouldBeFalse(); a(Convert.toBoolean("Yes")).shouldBeTrue(); a(Convert.toBoolean("No")).shouldBeFalse(); a(Convert.toBoolean("t")).shouldBeTrue(); a(Convert.toBoolean("f")).shouldBeFalse(); a(Convert.toBoolean("T")).shouldBeTrue(); a(Convert.toBoolean("F")).shouldBeFalse(); a(Convert.toBoolean("y")).shouldBeTrue(); a(Convert.toBoolean("n")).shouldBeFalse(); a(Convert.toBoolean("Y")).shouldBeTrue(); a(Convert.toBoolean("N")).shouldBeFalse(); a(Convert.toBoolean("1")).shouldBeTrue(); a(Convert.toBoolean("0")).shouldBeFalse(); a(Convert.toBoolean('t')).shouldBeTrue(); a(Convert.toBoolean('f')).shouldBeFalse(); a(Convert.toBoolean('T')).shouldBeTrue(); a(Convert.toBoolean('F')).shouldBeFalse(); a(Convert.toBoolean('y')).shouldBeTrue(); a(Convert.toBoolean('n')).shouldBeFalse(); a(Convert.toBoolean('Y')).shouldBeTrue(); a(Convert.toBoolean('N')).shouldBeFalse(); a(Convert.toBoolean('1')).shouldBeTrue(); a(Convert.toBoolean('0')).shouldBeFalse(); a(Convert.toBoolean(1)).shouldBeTrue(); a(Convert.toBoolean(0)).shouldBeFalse(); a(Convert.toBoolean(1L)).shouldBeTrue(); a(Convert.toBoolean(0L)).shouldBeFalse(); a(Convert.toBoolean(1f)).shouldBeTrue(); a(Convert.toBoolean(0f)).shouldBeFalse(); a(Convert.toBoolean(1d)).shouldBeTrue(); a(Convert.toBoolean(0d)).shouldBeFalse(); short t = (short)1; short f = (short)0; a(Convert.toBoolean(t)).shouldBeTrue(); a(Convert.toBoolean(f)).shouldBeFalse(); } @Test public void shouldCovertToIsoString() { Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC")); cal.set(1970, 0, 1, 0, 0, 0); the(Convert.toIsoString(cal.getTime())).shouldBeEqual("1970-01-01T00:00:00Z"); cal.set(1912, 5, 23, 2, 15, 47); the(Convert.toIsoString(cal.getTime())).shouldBeEqual("1912-06-23T02:15:47Z"); cal.set(2014, 11, 31, 23, 59, 59); the(Convert.toIsoString(cal.getTime())).shouldBeEqual("2014-12-31T23:59:59Z"); } @Test public void shouldToBytesCovertNull() { the(Convert.toBytes((Object) null)).shouldBeNull(); } }