package io.ebean.plugin;
import io.ebean.Ebean;
import io.ebean.EbeanServer;
import org.tests.model.basic.Customer;
import org.tests.model.basic.Order;
import org.junit.Test;
import static org.assertj.core.api.StrictAssertions.assertThat;
/**
*/
public class PropertyTest {
static EbeanServer server = Ebean.getDefaultServer();
<T> BeanType<T> beanType(Class<T> cls) {
return server.getPluginApi().getBeanType(cls);
}
@Test
public void getVal() throws Exception {
Customer customer = new Customer();
Order order = new Order();
order.setCustomer(customer);
order.setStatus(Order.Status.APPROVED);
Property statusProperty = beanType(Order.class).getProperty("status");
assertThat(statusProperty.getVal(order)).isEqualTo(order.getStatus());
Property customerProperty = beanType(Order.class).getProperty("customer");
assertThat(customerProperty.getVal(order)).isEqualTo(customer);
}
@Test
public void isMany_when_not() {
assertThat(beanType(Order.class).getProperty("status").isMany()).isFalse();
assertThat(beanType(Order.class).getProperty("customer").isMany()).isFalse();
}
@Test
public void isMany_when_true() {
assertThat(beanType(Order.class).getProperty("details").isMany()).isTrue();
}
@Test
public void name() {
assertThat(beanType(Order.class).getProperty("status").getName()).isEqualTo("status");
assertThat(beanType(Order.class).getProperty("customer").getName()).isEqualTo("customer");
assertThat(beanType(Order.class).getProperty("details").getName()).isEqualTo("details");
}
}