Создайте тестовый объект сущности с ограничениями, используя Instancio для тестовых случаев junit.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Создайте тестовый объект сущности с ограничениями, используя Instancio для тестовых случаев junit.

Сообщение Anonymous »

Я пытаюсь создать тестовые объекты для класса сущности. Ниже приведен класс сущности, который имеет все ограничения для полей согласно таблице базы данных.

Код: Выделить всё

@Entity
@EntityListeners(AuditingEntityListener.class)
@Table(name = "persons", schema = "vetting_service")
@Getter
@Setter
@NoArgsConstructor
@Slf4j
@ToString(onlyExplicitlyIncluded = true)
public class PersonEntity extends AuditableEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
@Null(groups = OnCreate.class)
@NotNull(groups = OnUpdate.class)
@ToString.Include
private Long id;

@Column(name = "source_person_id")
@Size(max = Person.SOURCE_ID_MAXLENGTH)
@ToString.Include
private String sourcePersonId;

@Column(name = "first_name")
@NotBlank
@Size(max = Person.FIRST_NAME_MAXLENGTH)
private String firstName;

@Column(name = "middle_name")
@Size(max = Person.MIDDLE_NAME_MAXLENGTH)
@NullOrNotBlank
private String middleName;

@Column(name = "last_name")
@NotBlank
@Size(max = Person.LAST_NAME_MAXLENGTH)
private String lastName;

/**
* SSN. Not updatable!
*/
@Column(name = "ssn", length = 72, updatable = false)
@NotBlank
@Size(min = Person.SSN_LENGTH, max = Person.SSN_LENGTH)
@Pattern(regexp = "^\\d{9}$", message = "must be a nine digit string")
@Convert(converter = AttributeEncryptor.class)
private String ssn;

@Column(name = "ssn_last_4", updatable = false)
@NotBlank
@Size(max = 4)
private String ssnLast4;

@Column(name = "dob")
@NotNull
@Past
private LocalDate dateOfBirth;

@ElementCollection
@CollectionTable(name = "addresses", schema = "vetting_service", joinColumns = @JoinColumn(name = "PERSON_ID"))
@MapKeyEnumerated(EnumType.STRING)
@PhysicalAddressRequired
private Map addresses = new HashMap();

/**
* The home phone of the individual to be vetted.
*/
@ElementCollection
@CollectionTable(name = "phones", schema = "vetting_service", joinColumns = @JoinColumn(name = "PERSON_ID"))
@MapKeyEnumerated(EnumType.STRING)
private Map
 phones = new HashMap();

/**
* The home phone of the individual to be vetted.
*/
@ElementCollection
@CollectionTable(name = "email_addresses", schema = "vetting_service", joinColumns = @JoinColumn(name = "PERSON_ID"))
@MapKeyEnumerated(EnumType.STRING)
private Map emailAddresses = new HashMap();

@SuppressWarnings("checkstyle:magicnumber")
public void setSsn(@NotNull final String ssn) {
this.ssn = ssn;
this.ssnLast4 = StringUtils.right(ssn, 4);
}

/**
* Convenience method to get PHYSICAL address, which can never be null.
*
* @return The PHYSICAL address.
*/
public AddressEmbeddable physicalAddress() {
return this.addresses.get(AddressType.PHYSICAL);
}
}
Когда я пытаюсь создать тестовый объект с помощью экземпляра

Код: Выделить всё

final PersonEntity tstPerson = Instancio.of(PersonEntity.class).create();
Я не получаю данные с такими ограничениями, как длина. Генерируемое имя превышает установленную длину. Как я могу создать данные для этого объекта, соответствующие ограничениям?

Подробнее здесь: https://stackoverflow.com/questions/791 ... test-cases
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»