mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
56 lines
1.7 KiB
Java
56 lines
1.7 KiB
Java
package io.ebeaninternal.server.text.json;
|
|
|
|
import io.ebean.Ebean;
|
|
import io.ebean.bean.EntityBean;
|
|
import io.ebeaninternal.api.SpiEbeanServer;
|
|
import io.ebeaninternal.server.deploy.BeanDescriptor;
|
|
import org.tests.model.basic.Customer;
|
|
import org.tests.model.basic.ResetBasicData;
|
|
import com.fasterxml.jackson.core.JsonFactory;
|
|
import com.fasterxml.jackson.core.JsonGenerator;
|
|
import org.junit.Test;
|
|
|
|
import java.io.IOException;
|
|
import java.io.StringWriter;
|
|
import java.sql.Date;
|
|
import java.util.List;
|
|
|
|
import static org.junit.Assert.assertTrue;
|
|
|
|
public class WriteJsonDirtyTest {
|
|
|
|
@Test
|
|
public void test() throws IOException {
|
|
|
|
ResetBasicData.reset();
|
|
List<Customer> customers = Ebean.find(Customer.class).findList();
|
|
|
|
Customer customer = Ebean.find(Customer.class).setId(customers.get(0).getId())
|
|
.setUseCache(false)
|
|
.findOne();
|
|
|
|
SpiEbeanServer server = (SpiEbeanServer) Ebean.getServer(null);
|
|
BeanDescriptor<Customer> descriptor = server.getBeanDescriptor(Customer.class);
|
|
|
|
customer.setName("dirtyCustName");
|
|
customer.setAnniversary(new Date(System.currentTimeMillis()));
|
|
|
|
EntityBean entityBean = (EntityBean) customer;
|
|
boolean[] dirtyProperties = entityBean._ebean_getIntercept().getDirtyProperties();
|
|
|
|
StringWriter writer = new StringWriter();
|
|
JsonFactory jsonFactory = new JsonFactory();
|
|
JsonGenerator generator = jsonFactory.createGenerator(writer);
|
|
|
|
WriteJson writeJson = new WriteJson(server, generator, null, null, null, null);
|
|
descriptor.jsonWriteDirty(writeJson, entityBean, dirtyProperties);
|
|
|
|
generator.flush();
|
|
generator.close();
|
|
|
|
String jsonContent = writer.toString();
|
|
assertTrue(jsonContent.contains("\"name\":"));
|
|
assertTrue(jsonContent.contains("\"anniversary\":"));
|
|
}
|
|
}
|