package org.n3r.eql.eqler;
import lombok.Cleanup;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.n3r.eql.Eql;
import org.n3r.eql.EqlTran;
import org.n3r.eql.impl.EqlBatch;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
public class TranBatchEqlerTest {
static TranBatchEqler eqler;
@BeforeClass
public static void beforeClass() {
eqler = EqlerFactory.getEqler(TranBatchEqler.class);
eqler.prepareData();
}
@Before
public void before() {
eqler.cleanCnt();
assertThat(eqler.queryCnt(), is(0));
}
@Test
public void tranRollback() {
EqlTran eqlTran = new Eql("mysql").newTran();
eqlTran.start();
eqler.incrCnt(eqlTran, 10);
eqler.incrCnt(eqlTran, 20);
eqlTran.rollback();
assertThat(eqler.queryCnt(), is(0));
}
@Test
public void tranCommit() {
EqlTran eqlTran = new Eql("mysql").newTran();
eqlTran.start();
eqler.incrCnt(eqlTran, 11);
eqler.incrCnt(eqlTran, 22);
eqlTran.commit();
assertThat(eqler.queryCnt(), is(33));
}
@Test
public void incrCntBatch() {
@Cleanup EqlTran eqlTran = new Eql("mysql").newTran();
eqlTran.start();
EqlBatch eqlBatch = new EqlBatch(2);
eqler.incrCntBatch(11, eqlTran, eqlBatch);
eqler.incrCntBatch(22, eqlTran, eqlBatch);
eqler.incrCntBatch(33, eqlTran, eqlBatch);
eqlBatch.executeBatch();
eqlTran.commit();
assertThat(eqler.queryCnt(), is(66));
}
@Test
public void tranDecrCommit() {
EqlTran eqlTran = new Eql("mysql").newTran();
eqlTran.start();
eqler.decrCnt(11, eqlTran);
eqler.decrCnt(22, eqlTran);
eqlTran.commit();
assertThat(eqler.queryCnt(), is(-33));
}
}