/*
* Copyright 2000-2016 Vaadin Ltd.
*
* 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 com.vaadin.tests.util;
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Date;
import java.util.EnumSet;
import java.util.Locale;
import java.util.Random;
import java.util.TimeZone;
public class TestDataGenerator {
final static String[] fnames = { "Peter", "Alice", "Joshua", "Mike",
"Olivia", "Nina", "Alex", "Rita", "Dan", "Umberto", "Henrik",
"Rene", "Lisa", "Marge" };
final static String[] lnames = { "Smith", "Gordon", "Simpson", "Brown",
"Clavel", "Simons", "Verne", "Scott", "Allison", "Gates", "Rowling",
"Barks", "Ross", "Schneider", "Tate" };
final static String cities[] = { "Amsterdam", "Berlin", "Helsinki",
"Hong Kong", "London", "Luxemburg", "New York", "Oslo", "Paris",
"Rome", "Stockholm", "Tokyo", "Turku" };
final static String streets[] = { "4215 Blandit Av.", "452-8121 Sem Ave",
"279-4475 Tellus Road", "4062 Libero. Av.", "7081 Pede. Ave",
"6800 Aliquet St.", "P.O. Box 298, 9401 Mauris St.",
"161-7279 Augue Ave", "P.O. Box 496, 1390 Sagittis. Rd.",
"448-8295 Mi Avenue", "6419 Non Av.", "659-2538 Elementum Street",
"2205 Quis St.", "252-5213 Tincidunt St.",
"P.O. Box 175, 4049 Adipiscing Rd.", "3217 Nam Ave",
"P.O. Box 859, 7661 Auctor St.", "2873 Nonummy Av.",
"7342 Mi, Avenue", "539-3914 Dignissim. Rd.",
"539-3675 Magna Avenue", "Ap #357-5640 Pharetra Avenue",
"416-2983 Posuere Rd.", "141-1287 Adipiscing Avenue",
"Ap #781-3145 Gravida St.", "6897 Suscipit Rd.",
"8336 Purus Avenue", "2603 Bibendum. Av.", "2870 Vestibulum St.",
"Ap #722 Aenean Avenue", "446-968 Augue Ave",
"1141 Ultricies Street", "Ap #992-5769 Nunc Street",
"6690 Porttitor Avenue", "Ap #105-1700 Risus Street",
"P.O. Box 532, 3225 Lacus. Avenue", "736 Metus Street",
"414-1417 Fringilla Street", "Ap #183-928 Scelerisque Road",
"561-9262 Iaculis Avenue" };
public static String getStreetAddress(Random r) {
return streets[r.nextInt(streets.length)];
}
public static Integer getPostalCode(Random r) {
int n = r.nextInt(100000);
if (n < 10000) {
n += 10000;
}
return n;
}
public static String getPhoneNumber(Random r) {
return "+358 02 555 " + r.nextInt(10) + r.nextInt(10) + r.nextInt(10)
+ r.nextInt(10);
}
public static String getCity(Random r) {
return cities[r.nextInt(cities.length)];
}
public static String getLastName(Random r) {
return lnames[r.nextInt(lnames.length)];
}
public static String getFirstName(Random r) {
return fnames[r.nextInt(fnames.length)];
}
public static int getAge(Random r) {
return r.nextInt(100) + 10;
}
public static Date getBirthDate(Random r) {
Calendar c = Calendar.getInstance(TimeZone.getTimeZone("EET"),
new Locale("FI", "fi"));
c.setLenient(true);
c.setTimeInMillis(0);
c.set(Calendar.YEAR, r.nextInt(100) + 1900);
c.set(Calendar.MONTH, r.nextInt(12));
c.set(Calendar.DAY_OF_MONTH, r.nextInt(31));
return c.getTime();
}
public static BigDecimal getSalary(Random r) {
return new BigDecimal(r.nextInt(80000));
}
public static <T extends Enum<T>> T getEnum(Class<T> class1, Random r) {
EnumSet<T> foo = EnumSet.allOf(class1);
return (T) foo.toArray()[r.nextInt(foo.size() - 1)];
}
}