/*
* (c) Copyright 2005-2012 JAXIO, www.jaxio.com
* Source code generated by Celerio, a Jaxio product
* Want to use Celerio within your company? email us at info@jaxio.com
* Follow us on twitter: @springfuse
* Template pack-backend-sd:src/test/java/util/ValueGenerator.p.vm.java
*/
package com.company.demo.util;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Calendar;
import java.util.Date;
import java.util.concurrent.atomic.AtomicInteger;
/**
* Generate values for database tests
*/
public class ValueGenerator {
/**
* Get a min date
*
* @return the min date
*/
public static Date getMinDate() {
Calendar cal = Calendar.getInstance();
cal.set(1970, 1, 1, 1, 1, 1);
return cal.getTime();
}
/**
* Get a max date
*
* @return the max date
*/
public static Date getMaxDate() {
Calendar cal = Calendar.getInstance();
cal.set(2036, 12, 28, 23, 59, 59);
return cal.getTime();
}
private static final String MAX_STRING = "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ";
/**
* Use for fill the bdd
* @param size
* @return a long dummy string
*/
public static String getMaxString(int size) {
return MAX_STRING.substring(0, Math.min(size, MAX_STRING.length()));
}
private static final int NUM_CHARS = 32;
private static int[] lastString = new int[NUM_CHARS];
private static final String CHARS = "abcdefghijklmonpqrstuvwxyz";
/**
* Get a unique string
*
* @return the unique string
*/
private static String getUniqueString() {
char[] buf = new char[NUM_CHARS];
carry(lastString, buf.length - 1);
for (int i = 0; i < buf.length; i++) {
buf[i] = CHARS.charAt(lastString[i]);
}
return new String(buf);
}
private static void carry(int[] ca, int index) {
if (ca[index] == (CHARS.length() - 1)) {
ca[index] = 0;
carry(ca, --index);
} else {
ca[index] = ca[index] + 1;
}
}
/**
* Get a unique string with length < maxLength
*
* @return the unique string
*/
public static String getUniqueString(int maxLength) {
if (maxLength == 1) {
return "" + getUniqueChar();
}
if (maxLength < NUM_CHARS) {
return getUniqueString().substring(NUM_CHARS - maxLength);
}
return getUniqueString();
}
private static Calendar uniqueCal;
/**
* Get a unique date
* start in 1970 and day auto increment
* @return the unique date
*/
synchronized public static Date getUniqueDate() {
if (uniqueCal == null) {
uniqueCal = Calendar.getInstance();
uniqueCal.set(1970, 1, 1, 1, 1, 1);
}
uniqueCal.add(Calendar.DAY_OF_MONTH, 1);
return uniqueCal.getTime();
}
/**
* Get a unique emain
* @return the unique mail
*/
public static String getUniqueEmail() {
return "email" + getUniqueString(6) + "-" + getUniqueString(10) + "@domain" + getUniqueString(10) + ".com";
}
/**
* Get a unique bytes
* @return the unique bytes
*/
public static byte[] getUniqueBytes(int maxSize) {
return getUniqueString(maxSize).getBytes();
}
private static AtomicInteger counter = new AtomicInteger();
public static Integer getUniqueInteger() {
return counter.incrementAndGet();
}
public static Long getUniqueLong() {
return new Long(counter.incrementAndGet());
}
public static Float getUniqueFloat() {
return new Float(counter.incrementAndGet());
}
public static Double getUniqueDouble() {
return new Double(counter.incrementAndGet());
}
public static BigInteger getUniqueBigInteger() {
return new BigInteger("" + counter.incrementAndGet());
}
public static BigDecimal getUniqueBigDecimal() {
return new BigDecimal(counter.incrementAndGet());
}
/**
* Get a unique char
*
* @return the unique char
*/
public static char getUniqueChar() {
return CHARS.charAt(getNextPosition());
}
/**
* Get a unique byte
* @return the unique byte
*/
public static byte getUniqueByte() {
return (byte) getUniqueChar();
}
private static AtomicInteger charPosition = new AtomicInteger();
private static int getNextPosition() {
return charPosition.incrementAndGet() % CHARS.length();
}
}