refactored to break out to different classes

This commit is contained in:
Ricky
2014-04-23 16:04:43 +10:00
parent 9b09fe3f5d
commit f663405c0e
16 changed files with 743 additions and 374 deletions
@@ -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);
}
}
+63 -159
View File
@@ -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());
}
}