refactored to break out to different classes
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
package com.github.javafaker;
|
||||
|
||||
public class Address {
|
||||
|
||||
private final Name name;
|
||||
private final FakeValuesService fakeValuesService;
|
||||
|
||||
public Address(Name name, FakeValuesService fakeValuesService) {
|
||||
this.name = name;
|
||||
this.fakeValuesService = fakeValuesService;
|
||||
}
|
||||
|
||||
public String streetName() {
|
||||
return fakeValuesService.composite("address.street_name_formats",
|
||||
(String) fakeValuesService.fetchObject("address.street_name_joiner"),
|
||||
this);
|
||||
}
|
||||
|
||||
public String streetAddressNumber() {
|
||||
return fakeValuesService.fetchString("address.street_address");
|
||||
}
|
||||
|
||||
public String streetAddress(boolean includeSecondary) {
|
||||
String streetAddress = fakeValuesService.composite("address.street_formats", " ", this);
|
||||
if (includeSecondary) {
|
||||
streetAddress = streetAddress + " " + secondaryAddress();
|
||||
}
|
||||
return fakeValuesService.numerify(streetAddress);
|
||||
}
|
||||
|
||||
public String secondaryAddress() {
|
||||
return fakeValuesService.numerify(fakeValuesService.fetchString("address.secondary_address"));
|
||||
}
|
||||
|
||||
public String zipCode() {
|
||||
return fakeValuesService.bothify(fakeValuesService.fetchString("address.postcode"));
|
||||
}
|
||||
|
||||
public String streetSuffix() {
|
||||
return fakeValuesService.fetchString("address.street_suffix");
|
||||
}
|
||||
|
||||
public String citySuffix() {
|
||||
return fakeValuesService.fetchString("address.city_suffix");
|
||||
}
|
||||
|
||||
public String cityPrefix() {
|
||||
return fakeValuesService.fetchString("address.city_prefix");
|
||||
}
|
||||
|
||||
public String stateAbbr() {
|
||||
return fakeValuesService.fetchString("address.state_abbr");
|
||||
}
|
||||
|
||||
public String country() {
|
||||
return fakeValuesService.fetchString("address.country");
|
||||
}
|
||||
|
||||
public String firstName() {
|
||||
return name.firstName();
|
||||
}
|
||||
|
||||
public String lastName() {
|
||||
return name.lastName();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
package com.github.javafaker;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.lang.WordUtils;
|
||||
import org.ho.yaml.Yaml;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
@SuppressWarnings({"unchecked", "rawtypes"})
|
||||
public class FakeValuesService {
|
||||
private static final char[] METHOD_NAME_DELIMITERS = {'_'};
|
||||
private static final Logger logger = LoggerFactory.getLogger(FakeValuesService.class);
|
||||
private final Map<String, Object> fakeValuesMap;
|
||||
private final RandomService randomService;
|
||||
|
||||
public FakeValuesService(Locale locale, RandomService randomService) {
|
||||
logger.info("Using locale " + locale);
|
||||
|
||||
String languageCode = locale.getLanguage();
|
||||
Map valuesMap = (Map) Yaml.load(findStream(languageCode + ".yml"));
|
||||
valuesMap = (Map) valuesMap.get(languageCode);
|
||||
fakeValuesMap = (Map<String, Object>) valuesMap.get("faker");
|
||||
this.randomService = randomService;
|
||||
}
|
||||
|
||||
private InputStream findStream(String filename) {
|
||||
InputStream streamOnClass = getClass().getResourceAsStream(filename);
|
||||
if (streamOnClass != null) {
|
||||
return streamOnClass;
|
||||
}
|
||||
return getClass().getClassLoader().getResourceAsStream(filename);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Fetch a random value from an array item specified by the key
|
||||
*
|
||||
* @param key
|
||||
* @return
|
||||
*/
|
||||
public Object fetch(String key) {
|
||||
List valuesArray = (List) fetchObject(key);
|
||||
return valuesArray.get(nextInt(valuesArray.size()));
|
||||
}
|
||||
|
||||
public String fetchString(String key) {
|
||||
return (String) fetch(key);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the object selected by the key from yaml file.
|
||||
*
|
||||
* @param key
|
||||
* key contains path to an object. Path segment is separated by
|
||||
* dot. E.g. name.first_name
|
||||
* @return
|
||||
*/
|
||||
public Object fetchObject(String key) {
|
||||
String[] path = key.split("\\.");
|
||||
Object currentValue = fakeValuesMap;
|
||||
for (String pathSection : path) {
|
||||
currentValue = ((Map<String, Object>) currentValue).get(pathSection);
|
||||
}
|
||||
return currentValue;
|
||||
}
|
||||
|
||||
public String composite(String formatKey, String joiner, Object objectToInvokeMethodOn) {
|
||||
List<String> format = (List<String>) fetch(formatKey);
|
||||
|
||||
String[] parts = new String[format.size()];
|
||||
for (int i = 0; i < parts.length; i++) {
|
||||
// remove leading colon
|
||||
String methodName = format.get(i).substring(1);
|
||||
// convert to camel case
|
||||
methodName = WordUtils.capitalizeFully(methodName, METHOD_NAME_DELIMITERS).replaceAll("_", "");
|
||||
methodName = methodName.substring(0, 1).toLowerCase() + methodName.substring(1);
|
||||
|
||||
try {
|
||||
parts[i] = (String) objectToInvokeMethodOn.getClass().getMethod(methodName, (Class[]) null).invoke(objectToInvokeMethodOn);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
return StringUtils.join(parts, joiner);
|
||||
}
|
||||
|
||||
public String numerify(String numberString) {
|
||||
StringBuffer sb = new StringBuffer();
|
||||
for (int i = 0; i < numberString.length(); i++) {
|
||||
if (numberString.charAt(i) == '#') {
|
||||
sb.append(nextInt(10));
|
||||
} else {
|
||||
sb.append(numberString.charAt(i));
|
||||
}
|
||||
}
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
public String bothify(String string) {
|
||||
return letterify(numerify(string));
|
||||
}
|
||||
|
||||
public String letterify(String letterString) {
|
||||
StringBuffer sb = new StringBuffer();
|
||||
for (int i = 0; i < letterString.length(); i++) {
|
||||
if (letterString.charAt(i) == '?') {
|
||||
sb.append((char) (97 + nextInt(26))); // a-z
|
||||
} else {
|
||||
sb.append(letterString.charAt(i));
|
||||
}
|
||||
}
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
private int nextInt(int n) {
|
||||
return randomService.nextInt(n);
|
||||
}
|
||||
}
|
||||
@@ -1,34 +1,23 @@
|
||||
package com.github.javafaker;
|
||||
|
||||
import static org.apache.commons.lang.StringUtils.capitalize;
|
||||
import static org.apache.commons.lang.StringUtils.join;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.lang.WordUtils;
|
||||
import org.ho.yaml.Yaml;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* Provides utility methods for generating fake strings, such as names, phone
|
||||
* numbers, addresses. generate random strings with given patterns
|
||||
*
|
||||
* @author ren
|
||||
*
|
||||
*/
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public class Faker {
|
||||
private static final Logger logger = LoggerFactory.getLogger(Faker.class);
|
||||
private static final char[] METHOD_NAME_DELIMITERS = { '_' };
|
||||
private final RandomService randomService;
|
||||
private Map<String, Object> fakeValuesMap;
|
||||
private final FakeValuesService fakeValuesService;
|
||||
private final Lorem lorem;
|
||||
private final Name name;
|
||||
private final Internet internet;
|
||||
private final PhoneNumber phoneNumber;
|
||||
private final Address address;
|
||||
|
||||
public Faker() {
|
||||
this(Locale.ENGLISH);
|
||||
@@ -43,231 +32,146 @@ public class Faker {
|
||||
}
|
||||
|
||||
public Faker(Locale locale, Random random) {
|
||||
logger.info("Using default locale " + locale);
|
||||
String languageCode = locale.getLanguage();
|
||||
Map valuesMap = (Map) Yaml.load(findStream(languageCode + ".yml"));
|
||||
valuesMap = (Map) valuesMap.get(languageCode);
|
||||
fakeValuesMap = (Map<String, Object>) valuesMap.get("faker");
|
||||
this.randomService = new RandomService(random);
|
||||
}
|
||||
|
||||
private InputStream findStream(String filename) {
|
||||
InputStream streamOnClass = getClass().getResourceAsStream(filename);
|
||||
if (streamOnClass != null) {
|
||||
return streamOnClass;
|
||||
}
|
||||
return getClass().getClassLoader().getResourceAsStream(filename);
|
||||
this.fakeValuesService = new FakeValuesService(locale, randomService);
|
||||
this.lorem = new Lorem(fakeValuesService, randomService);
|
||||
this.name = new Name(fakeValuesService);
|
||||
this.internet = new Internet(name, fakeValuesService);
|
||||
this.phoneNumber = new PhoneNumber(fakeValuesService);
|
||||
this.address = new Address(name, fakeValuesService);
|
||||
}
|
||||
|
||||
public String numerify(String numberString) {
|
||||
StringBuffer sb = new StringBuffer();
|
||||
for (int i = 0; i < numberString.length(); i++) {
|
||||
if (numberString.charAt(i) == '#') {
|
||||
sb.append(nextInt(10));
|
||||
} else {
|
||||
sb.append(numberString.charAt(i));
|
||||
}
|
||||
}
|
||||
|
||||
return sb.toString();
|
||||
return fakeValuesService.numerify(numberString);
|
||||
}
|
||||
|
||||
public String letterify(String letterString) {
|
||||
StringBuffer sb = new StringBuffer();
|
||||
for (int i = 0; i < letterString.length(); i++) {
|
||||
if (letterString.charAt(i) == '?') {
|
||||
sb.append((char) (97 + nextInt(26))); // a-z
|
||||
} else {
|
||||
sb.append(letterString.charAt(i));
|
||||
}
|
||||
}
|
||||
|
||||
return sb.toString();
|
||||
return fakeValuesService.letterify(letterString);
|
||||
}
|
||||
|
||||
public String bothify(String string) {
|
||||
return letterify(numerify(string));
|
||||
return fakeValuesService.bothify(string);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch a random value from an array item specified by the key
|
||||
*
|
||||
* @param key
|
||||
* @return
|
||||
*/
|
||||
public Object fetch(String key) {
|
||||
List valuesArray = (List) fetchObject(key);
|
||||
return valuesArray.get(nextInt(valuesArray.size()));
|
||||
}
|
||||
// name
|
||||
|
||||
public String fetchString(String key) {
|
||||
return (String) fetch(key);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the object selected by the key from yaml file.
|
||||
*
|
||||
* @param key
|
||||
* key contains path to an object. Path segment is separated by
|
||||
* dot. E.g. name.first_name
|
||||
* @return
|
||||
*/
|
||||
public Object fetchObject(String key) {
|
||||
String[] path = key.split("\\.");
|
||||
Object currentValue = fakeValuesMap;
|
||||
for (String pathSection : path) {
|
||||
currentValue = ((Map<String, Object>) currentValue).get(pathSection);
|
||||
}
|
||||
return currentValue;
|
||||
}
|
||||
|
||||
public String composite(String formatKey, String joiner) {
|
||||
List<String> format = (List<String>) fetch(formatKey);
|
||||
|
||||
String[] parts = new String[format.size()];
|
||||
for (int i = 0; i < parts.length; i++) {
|
||||
// remove leading colon
|
||||
String methodName = format.get(i).substring(1);
|
||||
// convert to camel case
|
||||
methodName = WordUtils.capitalizeFully(methodName, METHOD_NAME_DELIMITERS).replaceAll("_", "");
|
||||
methodName = methodName.substring(0, 1).toLowerCase() + methodName.substring(1);
|
||||
|
||||
try {
|
||||
parts[i] = (String) Faker.class.getDeclaredMethod(methodName, (Class[]) null).invoke(this);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
return StringUtils.join(parts, joiner);
|
||||
}
|
||||
|
||||
public String name() {
|
||||
return composite("name.formats", " ");
|
||||
public Name name() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String firstName() {
|
||||
return fetchString("name.first_name");
|
||||
return name.firstName();
|
||||
}
|
||||
|
||||
public String lastName() {
|
||||
return fetchString("name.last_name");
|
||||
return name.lastName();
|
||||
}
|
||||
|
||||
public String prefix() {
|
||||
return fetchString("name.prefix");
|
||||
return name.prefix();
|
||||
}
|
||||
|
||||
public String suffix() {
|
||||
return fetchString("name.suffix");
|
||||
return name.suffix();
|
||||
}
|
||||
|
||||
// internet
|
||||
|
||||
public Internet internet() {
|
||||
return internet;
|
||||
}
|
||||
|
||||
public String emailAddress() {
|
||||
return join(new Object[]{
|
||||
firstName().toLowerCase(),
|
||||
".",
|
||||
lastName().toLowerCase(),
|
||||
"@",
|
||||
fetchString("internet.free_email")
|
||||
});
|
||||
return internet.emailAddress();
|
||||
}
|
||||
|
||||
public String phoneNumber() {
|
||||
return numerify(fetchString("phone_number.formats"));
|
||||
// phone number
|
||||
|
||||
public PhoneNumber phoneNumber() {
|
||||
return phoneNumber;
|
||||
}
|
||||
|
||||
// lorem
|
||||
|
||||
public Lorem lorem() {
|
||||
return lorem;
|
||||
}
|
||||
|
||||
public List<String> words(int num) {
|
||||
List<String> words = (List<String>) fetchObject("lorem.words");
|
||||
List<String> returnList = new ArrayList();
|
||||
for (int i = 0; i < num; i++) {
|
||||
returnList.add(words.get(nextInt(words.size())));
|
||||
}
|
||||
return returnList;
|
||||
return lorem.words(num);
|
||||
}
|
||||
|
||||
public List<String> words() {
|
||||
return words(3);
|
||||
return lorem.words();
|
||||
}
|
||||
|
||||
public String sentence(int wordCount) {
|
||||
return capitalize(join(words(wordCount + nextInt(6)), " ") + ".");
|
||||
return lorem.sentence(wordCount);
|
||||
}
|
||||
|
||||
public String sentence() {
|
||||
return sentence(3);
|
||||
return lorem.sentence();
|
||||
}
|
||||
|
||||
public List<String> sentences(int sentenceCount) {
|
||||
List<String> sentences = new ArrayList<String>(sentenceCount);
|
||||
for (int i = 0; i < sentenceCount; i++) {
|
||||
sentences.add(sentence());
|
||||
}
|
||||
return sentences;
|
||||
return lorem.sentences(sentenceCount);
|
||||
}
|
||||
|
||||
public String paragraph(int sentenceCount) {
|
||||
return join(sentences(sentenceCount + nextInt(3)), " ");
|
||||
return lorem.paragraph(sentenceCount);
|
||||
}
|
||||
|
||||
public String paragraph() {
|
||||
return paragraph(3);
|
||||
return lorem.paragraph();
|
||||
}
|
||||
|
||||
public List<String> paragraphs(int paragraphCount) {
|
||||
List<String> paragraphs = new ArrayList<String>(paragraphCount);
|
||||
for (int i = 0; i < paragraphCount; i++) {
|
||||
paragraphs.add(paragraph());
|
||||
}
|
||||
return paragraphs;
|
||||
return lorem.paragraphs(paragraphCount);
|
||||
}
|
||||
|
||||
// address
|
||||
|
||||
public String streetName() {
|
||||
return composite("address.street_name_formats", (String)fetchObject("address.street_name_joiner"));
|
||||
public Address address() {
|
||||
return address;
|
||||
}
|
||||
|
||||
|
||||
public String streetName() {
|
||||
return address.streetName();
|
||||
}
|
||||
|
||||
public String streetAddressNumber() {
|
||||
return fetchString("address.street_address");
|
||||
return address.streetAddressNumber();
|
||||
}
|
||||
|
||||
public String streetAddress(boolean includeSecondary) {
|
||||
String streetAddress = composite("address.street_formats", " ");
|
||||
if (includeSecondary) {
|
||||
streetAddress = streetAddress + " " + secondaryAddress();
|
||||
}
|
||||
return numerify(streetAddress);
|
||||
return address.streetAddress(includeSecondary);
|
||||
}
|
||||
|
||||
public String secondaryAddress() {
|
||||
return numerify(fetchString("address.secondary_address"));
|
||||
return address.secondaryAddress();
|
||||
}
|
||||
|
||||
public String zipCode() {
|
||||
return bothify(fetchString("address.postcode"));
|
||||
return address.zipCode();
|
||||
}
|
||||
|
||||
public String streetSuffix() {
|
||||
return fetchString("address.street_suffix");
|
||||
return address.streetSuffix();
|
||||
}
|
||||
|
||||
public String citySuffix() {
|
||||
return fetchString("address.city_suffix");
|
||||
return address.citySuffix();
|
||||
}
|
||||
|
||||
public String cityPrefix() {
|
||||
return fetchString("address.city_prefix");
|
||||
return address.cityPrefix();
|
||||
}
|
||||
|
||||
public String stateAbbr() {
|
||||
return fetchString("address.state_abbr");
|
||||
return address.stateAbbr();
|
||||
}
|
||||
|
||||
public String country() {
|
||||
return fetchString("address.country");
|
||||
}
|
||||
|
||||
private int nextInt(int n) {
|
||||
return randomService.nextInt(n);
|
||||
return address.country();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.github.javafaker;
|
||||
|
||||
import static org.apache.commons.lang.StringUtils.join;
|
||||
|
||||
public class Internet {
|
||||
|
||||
private final Name name;
|
||||
private final FakeValuesService fakeValuesService;
|
||||
|
||||
public Internet(Name name, FakeValuesService fakeValuesService) {
|
||||
this.name = name;
|
||||
this.fakeValuesService = fakeValuesService;
|
||||
}
|
||||
|
||||
public String emailAddress() {
|
||||
return join(new Object[]{
|
||||
name.firstName().toLowerCase(),
|
||||
".",
|
||||
name.lastName().toLowerCase(),
|
||||
"@",
|
||||
fakeValuesService.fetchString("internet.free_email")
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
package com.github.javafaker;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static org.apache.commons.lang.StringUtils.capitalize;
|
||||
import static org.apache.commons.lang.StringUtils.join;
|
||||
|
||||
@SuppressWarnings({"unchecked", "rawtypes"})
|
||||
public class Lorem {
|
||||
|
||||
private final FakeValuesService fakeValuesService;
|
||||
private final RandomService randomService;
|
||||
|
||||
public Lorem(FakeValuesService fakeValuesService, RandomService randomService) {
|
||||
this.fakeValuesService = fakeValuesService;
|
||||
this.randomService = randomService;
|
||||
}
|
||||
|
||||
public List<String> words(int num) {
|
||||
List<String> words = (List<String>) fakeValuesService.fetchObject("lorem.words");
|
||||
List<String> returnList = new ArrayList();
|
||||
for (int i = 0; i < num; i++) {
|
||||
returnList.add(words.get(randomService.nextInt(words.size())));
|
||||
}
|
||||
return returnList;
|
||||
}
|
||||
|
||||
public List<String> words() {
|
||||
return words(3);
|
||||
}
|
||||
|
||||
public String sentence(int wordCount) {
|
||||
return capitalize(join(words(wordCount + randomService.nextInt(6)), " ") + ".");
|
||||
}
|
||||
|
||||
public String sentence() {
|
||||
return sentence(3);
|
||||
}
|
||||
|
||||
public List<String> sentences(int sentenceCount) {
|
||||
List<String> sentences = new ArrayList<String>(sentenceCount);
|
||||
for (int i = 0; i < sentenceCount; i++) {
|
||||
sentences.add(sentence());
|
||||
}
|
||||
return sentences;
|
||||
}
|
||||
|
||||
public String paragraph(int sentenceCount) {
|
||||
return join(sentences(sentenceCount + randomService.nextInt(3)), " ");
|
||||
}
|
||||
|
||||
public String paragraph() {
|
||||
return paragraph(3);
|
||||
}
|
||||
|
||||
public List<String> paragraphs(int paragraphCount) {
|
||||
List<String> paragraphs = new ArrayList<String>(paragraphCount);
|
||||
for (int i = 0; i < paragraphCount; i++) {
|
||||
paragraphs.add(paragraph());
|
||||
}
|
||||
return paragraphs;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.github.javafaker;
|
||||
|
||||
public class Name {
|
||||
private final FakeValuesService fakeValuesService;
|
||||
|
||||
public Name(FakeValuesService fakeValuesService) {
|
||||
this.fakeValuesService = fakeValuesService;
|
||||
}
|
||||
|
||||
public String name() {
|
||||
return fakeValuesService.composite("name.formats", " ", this);
|
||||
}
|
||||
|
||||
public String firstName() {
|
||||
return fakeValuesService.fetchString("name.first_name");
|
||||
}
|
||||
|
||||
public String lastName() {
|
||||
return fakeValuesService.fetchString("name.last_name");
|
||||
}
|
||||
|
||||
public String prefix() {
|
||||
return fakeValuesService.fetchString("name.prefix");
|
||||
}
|
||||
|
||||
public String suffix() {
|
||||
return fakeValuesService.fetchString("name.suffix");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.github.javafaker;
|
||||
|
||||
public class PhoneNumber {
|
||||
|
||||
private final FakeValuesService fakeValuesService;
|
||||
|
||||
public PhoneNumber(FakeValuesService fakeValuesService) {
|
||||
this.fakeValuesService = fakeValuesService;
|
||||
}
|
||||
|
||||
public String phoneNumber() {
|
||||
return fakeValuesService.numerify(fakeValuesService.fetchString("phone_number.formats"));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.github.javafaker;
|
||||
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.Parameterized;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Locale;
|
||||
import java.util.Random;
|
||||
|
||||
@RunWith(value = Parameterized.class)
|
||||
public abstract class AbstractFakerTest {
|
||||
|
||||
private static final Locale FINISH_LOCALE = new Locale("fi", "FI");
|
||||
protected static final Logger logger = LoggerFactory.getLogger(AbstractFakerTest.class);
|
||||
protected Faker faker;
|
||||
|
||||
public AbstractFakerTest(Locale locale, Random random) {
|
||||
if (locale != null && random != null) {
|
||||
faker = new Faker(locale, random);
|
||||
} else if (locale != null) {
|
||||
faker = new Faker(locale);
|
||||
} else if (random != null) {
|
||||
faker = new Faker(random);
|
||||
} else {
|
||||
faker = new Faker();
|
||||
}
|
||||
}
|
||||
|
||||
@Parameterized.Parameters(name = "testing locale {0} and random {1}")
|
||||
public static Collection<Object[]> data() {
|
||||
Object[][] data = new Object[][]{
|
||||
{Locale.ENGLISH, null},
|
||||
{Locale.FRENCH, null},
|
||||
{FINISH_LOCALE, null},
|
||||
{Locale.ENGLISH, new Random()},
|
||||
{null, new Random()},
|
||||
{null, null}};
|
||||
return Arrays.asList(data);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,129 @@
|
||||
package com.github.javafaker;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.Parameterized;
|
||||
|
||||
import java.util.Locale;
|
||||
import java.util.Random;
|
||||
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
@RunWith(value = Parameterized.class)
|
||||
public class AddressTest extends AbstractFakerTest {
|
||||
|
||||
public AddressTest(Locale locale, Random random) {
|
||||
super(locale, random);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStreetName() {
|
||||
String streetName = faker.streetName();
|
||||
logger.info("Street name: " + streetName);
|
||||
assertNotNull(streetName);
|
||||
|
||||
streetName = faker.address().streetName();
|
||||
logger.info("Street name: " + streetName);
|
||||
assertNotNull(streetName);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStreetAddress() {
|
||||
String streetAddress = faker.streetAddress(true);
|
||||
logger.info("Street address: " + streetAddress);
|
||||
assertNotNull(streetAddress);
|
||||
|
||||
streetAddress = faker.address().streetAddress(true);
|
||||
logger.info("Street address: " + streetAddress);
|
||||
assertNotNull(streetAddress);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSecondaryAddress() {
|
||||
String secondaryAddress = faker.secondaryAddress();
|
||||
logger.info("Secondary address: " + secondaryAddress);
|
||||
assertNotNull(secondaryAddress);
|
||||
|
||||
secondaryAddress = faker.address().secondaryAddress();
|
||||
logger.info("Secondary address: " + secondaryAddress);
|
||||
assertNotNull(secondaryAddress);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testZipCode() {
|
||||
String zip = faker.zipCode();
|
||||
logger.info("Address zip code: " + zip);
|
||||
assertNotNull(zip);
|
||||
|
||||
zip = faker.address().zipCode();
|
||||
logger.info("Address zip code: " + zip);
|
||||
assertNotNull(zip);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStreetSuffix() {
|
||||
String streetSuffix = faker.streetSuffix();
|
||||
logger.info("Street suffix: " + streetSuffix);
|
||||
assertNotNull(streetSuffix);
|
||||
|
||||
streetSuffix = faker.address().streetSuffix();
|
||||
logger.info("Street suffix: " + streetSuffix);
|
||||
assertNotNull(streetSuffix);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCitySuffix() {
|
||||
String citySuffix = faker.citySuffix();
|
||||
logger.info("City suffix: " + citySuffix);
|
||||
assertNotNull(citySuffix);
|
||||
|
||||
citySuffix = faker.address().citySuffix();
|
||||
logger.info("City suffix: " + citySuffix);
|
||||
assertNotNull(citySuffix);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCityPrefix() {
|
||||
String cityPrefix = faker.cityPrefix();
|
||||
logger.info("City prefix: " + cityPrefix);
|
||||
assertNotNull(cityPrefix);
|
||||
|
||||
cityPrefix = faker.address().cityPrefix();
|
||||
logger.info("City prefix: " + cityPrefix);
|
||||
assertNotNull(cityPrefix);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStateAbbr() {
|
||||
String stateAbbr = faker.stateAbbr();
|
||||
logger.info("State abbr: " + stateAbbr);
|
||||
assertNotNull(stateAbbr);
|
||||
|
||||
stateAbbr = faker.address().stateAbbr();
|
||||
logger.info("State abbr: " + stateAbbr);
|
||||
assertNotNull(stateAbbr);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCountry() {
|
||||
String country = faker.country();
|
||||
logger.info("Country: " + country);
|
||||
assertNotNull(country);
|
||||
|
||||
country = faker.address().country();
|
||||
logger.info("Country: " + country);
|
||||
assertNotNull(country);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testStreetAddressNumber() {
|
||||
String streetAddressNumber = faker.streetAddressNumber();
|
||||
logger.info("Street Address Number: " + streetAddressNumber);
|
||||
assertNotNull(streetAddressNumber);
|
||||
|
||||
streetAddressNumber = faker.streetAddressNumber();
|
||||
logger.info("Street Address Number: " + streetAddressNumber);
|
||||
assertNotNull(streetAddressNumber);
|
||||
}
|
||||
}
|
||||
@@ -1,197 +0,0 @@
|
||||
package com.github.javafaker;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.Parameterized;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Random;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.junit.runners.Parameterized.*;
|
||||
|
||||
@RunWith(value = Parameterized.class)
|
||||
public class FakerTest {
|
||||
private static final Logger logger = LoggerFactory.getLogger(FakerTest.class);
|
||||
private Faker faker;
|
||||
|
||||
public FakerTest(Locale locale, Random random) {
|
||||
if (locale != null && random != null) {
|
||||
faker = new Faker(locale, random);
|
||||
} else if (locale != null) {
|
||||
faker = new Faker(locale);
|
||||
} else if (random != null) {
|
||||
faker = new Faker(random);
|
||||
} else {
|
||||
faker = new Faker();
|
||||
}
|
||||
}
|
||||
|
||||
@Parameters(name = "testing locale {0} and random {1}")
|
||||
public static Collection<Object[]> data() {
|
||||
Object[][] data = new Object[][]{
|
||||
{Locale.ENGLISH, null},
|
||||
{Locale.FRENCH, null},
|
||||
{new Locale("fi", "FI"), null},
|
||||
{Locale.ENGLISH, new Random()},
|
||||
{null, new Random()},
|
||||
{null, null}};
|
||||
return Arrays.asList(data);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNames() {
|
||||
String firstName = faker.firstName();
|
||||
logger.info("Test first name: " + firstName);
|
||||
assertNotNull(firstName);
|
||||
|
||||
String lastName = faker.lastName();
|
||||
logger.info("Test last name: " + lastName);
|
||||
assertNotNull(lastName);
|
||||
|
||||
String prefix = faker.prefix();
|
||||
logger.info("Test prefix: " + prefix);
|
||||
assertNotNull(prefix);
|
||||
|
||||
String suffix = faker.suffix();
|
||||
logger.info("Test suffix: " + suffix);
|
||||
assertNotNull(suffix);
|
||||
|
||||
String name = faker.name();
|
||||
logger.info("Test name: " + name);
|
||||
assertNotNull(name);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEmailAddress() {
|
||||
String emailAddress = faker.emailAddress();
|
||||
logger.info("Test email address: " + emailAddress);
|
||||
assertNotNull(emailAddress);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPhoneNumber() {
|
||||
String phoneNumber = faker.phoneNumber();
|
||||
logger.info("Phone number: " + phoneNumber);
|
||||
assertNotNull(phoneNumber);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testSpecifiedNumOfWords() {
|
||||
List<String> words = faker.words(4);
|
||||
logger.info("Test words: " + words.toString());
|
||||
assertEquals(4, words.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSentence() {
|
||||
String sentence = faker.sentence(7);
|
||||
logger.info("Test sentence: " + sentence);
|
||||
assertNotNull(sentence);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSentences() {
|
||||
List<String> sentences = faker.sentences(3);
|
||||
logger.info("Test sentences: " + sentences);
|
||||
assertEquals(3, sentences.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSpecifiedNumOfParagraphs() {
|
||||
String paragraph = faker.paragraph(5);
|
||||
logger.info("Test paragraph: " + paragraph);
|
||||
assertNotNull(paragraph);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStreetName() {
|
||||
String streetName = faker.streetName();
|
||||
logger.info("Street name: " + streetName);
|
||||
assertNotNull(streetName);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStreetAddress() {
|
||||
String streetAddress = faker.streetAddress(true);
|
||||
logger.info("Street address: " + streetAddress);
|
||||
assertNotNull(streetAddress);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSecondaryAddress() {
|
||||
String secondaryAddress = faker.secondaryAddress();
|
||||
logger.info("Secondary address: " + secondaryAddress);
|
||||
assertNotNull(secondaryAddress);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testZipCode() {
|
||||
String zip = faker.zipCode();
|
||||
logger.info("Address zip code: " + zip);
|
||||
assertNotNull(zip);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStreetSuffix() {
|
||||
String streetSuffix = faker.streetSuffix();
|
||||
logger.info("Street suffix: " + streetSuffix);
|
||||
assertNotNull(streetSuffix);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCitySuffix() {
|
||||
String citySuffix = faker.citySuffix();
|
||||
logger.info("City suffix: " + citySuffix);
|
||||
assertNotNull(citySuffix);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCityPrefix() {
|
||||
String cityPrefix = faker.cityPrefix();
|
||||
logger.info("City prefix: " + cityPrefix);
|
||||
assertNotNull(cityPrefix);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStateAbbr() {
|
||||
String stateAbbr = faker.stateAbbr();
|
||||
logger.info("State abbr: " + stateAbbr);
|
||||
assertNotNull(stateAbbr);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCountry() {
|
||||
String country = faker.country();
|
||||
logger.info("Country: " + country);
|
||||
assertNotNull(country);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testParagraph() {
|
||||
String paragraph = faker.paragraph();
|
||||
logger.info("Paragraph: " + paragraph);
|
||||
assertNotNull(paragraph);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testParagraphs() {
|
||||
final int paragraphCount = 10;
|
||||
List<String> paragraphs = faker.paragraphs(paragraphCount);
|
||||
logger.info("Paragraphs: " + paragraphs);
|
||||
assertEquals(paragraphCount, paragraphs.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStreetAddressNumber() {
|
||||
final String streetAddressNumber = faker.streetAddressNumber();
|
||||
logger.info("Street Address Number: " + streetAddressNumber);
|
||||
assertNotNull(streetAddressNumber);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.github.javafaker;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Locale;
|
||||
import java.util.Random;
|
||||
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
public class InternetTest extends AbstractFakerTest {
|
||||
|
||||
public InternetTest(Locale locale, Random random) {
|
||||
super(locale, random);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEmailAddress() {
|
||||
String emailAddress = faker.emailAddress();
|
||||
logger.info("Test email address: " + emailAddress);
|
||||
assertNotNull(emailAddress);
|
||||
|
||||
emailAddress = faker.internet().emailAddress();
|
||||
logger.info("Test email address: " + emailAddress);
|
||||
assertNotNull(emailAddress);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
package com.github.javafaker;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Random;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
public class LoremTest extends AbstractFakerTest {
|
||||
|
||||
public LoremTest(Locale locale, Random random) {
|
||||
super(locale, random);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSpecifiedNumOfWords() {
|
||||
List<String> words = faker.words(4);
|
||||
logger.info("Test words: " + words.toString());
|
||||
assertEquals(4, words.size());
|
||||
|
||||
words = faker.lorem().words(4);
|
||||
logger.info("Test words: " + words.toString());
|
||||
assertEquals(4, words.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSentence() {
|
||||
String sentence = faker.sentence(7);
|
||||
logger.info("Test sentence: " + sentence);
|
||||
assertNotNull(sentence);
|
||||
|
||||
sentence = faker.lorem().sentence(7);
|
||||
logger.info("Test sentence: " + sentence);
|
||||
assertNotNull(sentence);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSentences() {
|
||||
List<String> sentences = faker.sentences(3);
|
||||
logger.info("Test sentences: " + sentences);
|
||||
assertEquals(3, sentences.size());
|
||||
|
||||
sentences = faker.lorem().sentences(3);
|
||||
logger.info("Test sentences: " + sentences);
|
||||
assertEquals(3, sentences.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSpecifiedNumOfParagraphs() {
|
||||
String paragraph = faker.paragraph(5);
|
||||
logger.info("Test paragraph: " + paragraph);
|
||||
assertNotNull(paragraph);
|
||||
|
||||
paragraph = faker.lorem().paragraph(5);
|
||||
logger.info("Test paragraph: " + paragraph);
|
||||
assertNotNull(paragraph);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testParagraph() {
|
||||
String paragraph = faker.paragraph();
|
||||
logger.info("Paragraph: " + paragraph);
|
||||
assertNotNull(paragraph);
|
||||
|
||||
paragraph = faker.lorem().paragraph();
|
||||
logger.info("Paragraph: " + paragraph);
|
||||
assertNotNull(paragraph);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testParagraphs() {
|
||||
final int paragraphCount = 10;
|
||||
List<String> paragraphs = faker.paragraphs(paragraphCount);
|
||||
logger.info("Paragraphs: " + paragraphs);
|
||||
assertEquals(paragraphCount, paragraphs.size());
|
||||
|
||||
paragraphs = faker.lorem().paragraphs(paragraphCount);
|
||||
logger.info("Paragraphs: " + paragraphs);
|
||||
assertEquals(paragraphCount, paragraphs.size());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.github.javafaker;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Locale;
|
||||
import java.util.Random;
|
||||
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
public class NameTest extends AbstractFakerTest {
|
||||
public NameTest(Locale locale, Random random) {
|
||||
super(locale, random);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNames() {
|
||||
String firstName = faker.firstName();
|
||||
logger.info("Test first name: " + firstName);
|
||||
assertNotNull(firstName);
|
||||
|
||||
firstName = faker.name().firstName();
|
||||
logger.info("Test first name: " + firstName);
|
||||
assertNotNull(firstName);
|
||||
|
||||
String lastName = faker.lastName();
|
||||
logger.info("Test last name: " + lastName);
|
||||
assertNotNull(lastName);
|
||||
|
||||
lastName = faker.name().lastName();
|
||||
logger.info("Test last name: " + lastName);
|
||||
assertNotNull(lastName);
|
||||
|
||||
String prefix = faker.prefix();
|
||||
logger.info("Test prefix: " + prefix);
|
||||
assertNotNull(prefix);
|
||||
|
||||
prefix = faker.name().prefix();
|
||||
logger.info("Test prefix: " + prefix);
|
||||
assertNotNull(prefix);
|
||||
|
||||
String suffix = faker.suffix();
|
||||
logger.info("Test suffix: " + suffix);
|
||||
assertNotNull(suffix);
|
||||
|
||||
suffix = faker.name().suffix();
|
||||
logger.info("Test suffix: " + suffix);
|
||||
assertNotNull(suffix);
|
||||
|
||||
String name = faker.name().name();
|
||||
logger.info("Test name: " + name);
|
||||
assertNotNull(name);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.github.javafaker;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Locale;
|
||||
import java.util.Random;
|
||||
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
public class PhoneNumberTest extends AbstractFakerTest {
|
||||
public PhoneNumberTest(Locale locale, Random random) {
|
||||
super(locale, random);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPhoneNumber() {
|
||||
String phoneNumber = faker.phoneNumber().phoneNumber();
|
||||
logger.info("Phone number: " + phoneNumber);
|
||||
assertNotNull(phoneNumber);
|
||||
}
|
||||
}
|
||||
@@ -43,10 +43,10 @@ public class RandomFakerTest {
|
||||
@Test
|
||||
public void testNameRandomnessCanBeControlled() {
|
||||
resetRandomSeed();
|
||||
final String firstInvocation = faker.name();
|
||||
final String firstInvocation = faker.name().name();
|
||||
|
||||
resetRandomSeed();
|
||||
final String secondInvocation = faker.name();
|
||||
final String secondInvocation = faker.name().name();
|
||||
assertThat(firstInvocation, is(secondInvocation));
|
||||
}
|
||||
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
package com.github.javafaker;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.notNullValue;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
public class WordsTest {
|
||||
private Faker faker = new Faker();
|
||||
|
||||
@Test
|
||||
public void shouldGenerateWordsFromLorem() {
|
||||
assertThat(faker.words(10).get(0), notNullValue());
|
||||
assertThat(faker.words(10).get(9), notNullValue());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user