package org.zstack.test.core.defer;
import junit.framework.Assert;
import org.junit.Before;
import org.junit.Test;
import org.zstack.core.defer.Defer;
import org.zstack.core.defer.Deferred;
import org.zstack.header.exception.CloudRuntimeException;
import org.zstack.utils.Utils;
import org.zstack.utils.logging.CLogger;
public class TestDefer1 {
CLogger logger = Utils.getLogger(TestDefer1.class);
int count = 0;
@Before
public void setUp() throws Exception {
}
@Deferred
private void case1() {
count++;
Defer.guard(new Runnable() {
@Override
public void run() {
count--;
}
});
throw new CloudRuntimeException("Roll back count");
}
@Test(expected = CloudRuntimeException.class)
public void test() {
case1();
Assert.assertEquals(0, count);
}
}