Files
ebean/ebean-test/src/test/java/org/tests/o2m/StatefulO2MSoftDelete.java
T

44 lines
1.4 KiB
Java

package org.tests.o2m;
import io.ebean.DB;
import io.ebean.test.LoggedSql;
import io.ebean.xtest.BaseTestCase;
import org.junit.jupiter.api.Test;
import org.tests.o2m.dm.GoodsEntity;
import org.tests.o2m.dm.WorkflowEntity;
import org.tests.o2m.dm.WorkflowOperationEntity;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
public class StatefulO2MSoftDelete extends BaseTestCase {
@Test
void statefulUpdateShouldntDelete() {
var bomGoods = new GoodsEntity();
DB.save(bomGoods);
var goods = new GoodsEntity();
var workflow = new WorkflowEntity();
var operation1 = new WorkflowOperationEntity();
operation1.setName("operation 1");
goods.setWorkflowEntity(workflow);
workflow.setOperations(List.of(operation1));
DB.save(goods);
LoggedSql.start();
// replace workflow entity
var goodsFromDB = DB.find(GoodsEntity.class, goods.getId());
goodsFromDB.setWorkflowEntity(new WorkflowEntity());
DB.update(goodsFromDB);
var updateSql = LoggedSql.stop();
updateSql.forEach(sql -> assertThat(sql).doesNotContain("delete from workflow_entity"));
if (isH2()) {
assertThat(updateSql.get(4)).contains("update workflow_operation_entity set deleted=true where workflow_id = ?");
assertThat(updateSql.get(6)).contains("update workflow_entity set when_modified=?, deleted=? where id=?");
}
}
}