package org.tests.types;
import io.ebean.BaseTestCase;
import io.ebean.Ebean;
import org.tests.model.types.SomeFileBean;
import org.junit.Test;
import java.io.File;
import java.net.URL;
import static org.junit.Assert.*;
public class TestFileType extends BaseTestCase {
File file = getFile("/profile-image.jpg");
File file2 = getFile("/java-64.png");
@Test
public void test_insertNullFile() {
assertTrue(file.exists());
assertTrue(file2.exists());
SomeFileBean bean0 = new SomeFileBean();
bean0.setName("afile");
Ebean.save(bean0);
SomeFileBean bean1 = Ebean.find(SomeFileBean.class)
.select("name, file")
.setId(bean0.getId())
.findUnique();
assertEquals("afile", bean1.getName());
assertNull(bean1.getContent());
bean1.setContent(file);
Ebean.save(bean1);
SomeFileBean bean2 = Ebean.find(SomeFileBean.class)
.select("name, file")
.setId(bean0.getId())
.findUnique();
assertEquals("afile", bean2.getName());
assertNotNull(bean2.getContent());
Ebean.delete(bean1);
}
@Test
public void test_insertUpdateDelete() {
assertTrue(file.exists());
assertTrue(file2.exists());
SomeFileBean bean0 = new SomeFileBean();
bean0.setName("afile");
bean0.setContent(file);
Ebean.save(bean0);
SomeFileBean bean1 = Ebean.find(SomeFileBean.class)
.select("name, file")
.setId(bean0.getId())
.findUnique();
assertEquals("afile", bean1.getName());
assertNotNull(bean1.getContent());
assertEquals(file.length(), bean1.getContent().length());
bean1.setName("mod-file");
bean1.setContent(file2);
// update to file2
Ebean.save(bean1);
SomeFileBean bean2 = Ebean.find(SomeFileBean.class)
.select("name, file")
.setId(bean0.getId())
.findUnique();
assertEquals(file2.length(), bean2.getContent().length());
// update to null
bean2.setContent(null);
bean2.setName("setNull");
Ebean.save(bean2);
SomeFileBean bean3 = Ebean.find(SomeFileBean.class)
.select("name, file")
.setId(bean0.getId())
.findUnique();
assertNull(bean3.getContent());
bean3.setName("changeOnlyName");
Ebean.save(bean3);
Ebean.delete(bean3);
}
private File getFile(String resource) {
URL url = getClass().getResource(resource);
return new File(url.getFile());
}
}