DATAGENERATOR
Данная библиотека предназначена для генерации случайных данных, специфицированных под русскоязычные проекты. Данные аналогичны реальным, боевым данным.
Библиотека не использует чьих-то персональных данных. Все данные являются случайно сгенерированными (кроме случаев кастомной генерации) и любые совпадения с реальными персональными данными являются вероятностным совпадением.
Все реальные данные взяты из открытых источников и не нарушают права третьих лиц.
Методы генерации не являются идемпотентными, т.е. каждый последующий вызов метода будет возвращать уникальные данные. В качестве тезауруса используются списки, хранящиеся в тестовых файлах в папке resource/dictionary. Классы генераторов получают данные о расположении файлов из dagen.properties по соответствующим ключам.
Генерация данных происходит по алгоритму случайных выборок из тезауруса и комбинирования данных для создания сущности. DataGenerator – является точкой входа и содержит статические методы, для получения данных из соответствующих генераторов.
Библиотека генерирует следующие данные:
Персоны
Метод возвращает экземпляр FakePerson с заполненными полями. ФИО соответствует гендеру персоны:
DataGenerator.persons().get()
Получение персоны с заранее заданным полом:
DataGenerator.persons().get(Gender.MALE)
этим параметром в dagen.properties задается диапозон годов рождения, генерируемых персон:
yearOfBirthRange=1920-2005
Паспортные данные
Метод возвращает экземпляр FakeRussianPassport:
@Data
@Builder
public class FakeRussianPassport {
String series;
String number;
String issued;
String issueDate;
String code;
}
DataGenerator.documents().passport()
СНИЛС
DataGenerator.documents().snils()
Расчетный счет
Метод создания счета с заданными параметрами:
DataGenerator.accountDetails().account(PersoneType.PERSON, Currency.RUB, ProfileType.COMMERCIAL, DataGenerator.accountDetails().bank());
Метод создания счета со случайными параметрами:
DataGenerator.accountDetails().account();
Банковские данные
Метод возвращает экземпляр класса Bank
@Builder
@Data
public class Bank {
private String correspondentAccount;
private String bik;
private String name;
private String city;
}
DataGenerator.accountDetails().bank()
ИНН для ФЛ
DataGenerator.accountDetails().inn12()
ИНН для ЮЛ
DataGenerator.accountDetails().inn10()
ОГРН для ЮЛ
DataGenerator.accountDetails().ogrn()
Номер мобильного телефона
Возвращается строка в формате +7 YYY XXX XXXX, где YYY соотвествует коду мобильного оператора, начинающегося с цифры 9
DataGenerator.contacts().mobile()
Номер городского телефона
Возвращается строка в формате +7 YYY XXX XXXX, где YYY соотвествует разряду городскиих номеров, начинающегося с фирцы 8
DataGenerator.contacts().cityPhone()
Адрес электронной почты
Возвращается строка в формате <случайная комбинация>@<случайный домен>
DataGenerator.contacts().email()
Возвращается строка в формате <случайная комбинация>@test.ru
DataGenerator.contacts().email("test.ru")
Автомобильные гос. номера
Метод возвращает экземпляр класса FakeCarStateNumber:
DataGenerator.carsGenerator().stateNumber()
Реквизиты банковских карт
Метод вернет экземлпяр FakeCard со случыйными реквизитами:
DataGenerator.bankCard().card()
Метод вернет экземпляр карты с реальным БИНом, который соответствует банку и типу платежной системы. В случае, если в словаре не было найдено нужного типа платежной системы, то номер карты будет сгенерирован полностью случайно. Имя владельца будет автоматически транслитерировано в латинские буквы.
DataGenerator.bankCard().card(Banks.SBER, CardType.MIR, "Василий Пупкин")
Метод сгенерирует экземпляр карты с указанным типом платежной системы:
DataGenerator.bankCard().card(CardType.VISA)
Список поддерживаемых платежных систем:
public enum CardType {
MIR,
VISA,
MASTERCARD,
MAESTRO,
UNIONPAY,
AMERICANEXPRESS
}
Список поддерживаемых БИНов банков эмитентов:
public enum Banks {
SBER,
VTB,
TINKOFF,
PSB,
RAIFFEISEN,
ALFA,
GAZPROM
}
Как подключить библиотеку?
Добавить в pom.xml вашего проекта, как зависимость:
<dependency>
<groupId>pro.dagen</groupId>
<artifactId>datagenerator</artifactId>
<version>1.2.0</version>
</dependency>
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ
Номера кредитных карт и другие данные, абсолютно случайны и не имеют никакой реальной ценности. Не пытайтесь использовать поддельные данные кредитной карты для совершения какой-либо покупки, так как это не сработает. Попытка взлома или мошенничества с использованием поддельной информации кредитной карты является незаконной и может привести к наказанию, например тюремному заключению.