package hu.advancedweb.scott;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assert.assertThat;
import org.junit.Test;
import hu.advancedweb.scott.helper.TestHelper;
public class ExceptionTest {
@SuppressWarnings("null")
@Test
public void recordExceptions() throws Exception {
String o = null;
try {
o.length();
} catch (Exception e) {
o = "fallback";
assertThat(TestHelper.getLastRecordedStateForVariable("e"), equalTo(e.toString()));
assertThat(TestHelper.getLastRecordedStateForVariable("o"), equalTo(o));
}
}
@SuppressWarnings("null")
@Test
public void recordExceptionsWithVariablesInTheTryScope() {
String o = null;
try {
String inner = "inner";
assertThat(TestHelper.getLastRecordedStateForVariable("inner"), equalTo(inner));
o.length();
} catch (Exception e) {
o = "fallback";
assertThat(TestHelper.getLastRecordedStateForVariable("e"), equalTo(e.toString()));
assertThat(TestHelper.getLastRecordedStateForVariable("o"), equalTo(o));
}
}
@SuppressWarnings("null")
@Test
public void moreVariablesInTryBlockThanInCatchBlock() {
String o = null;
try {
String inner = "inner";
assertThat(TestHelper.getLastRecordedStateForVariable("inner"), equalTo(inner));
String inner2 = "inner2";
assertThat(TestHelper.getLastRecordedStateForVariable("inner2"), equalTo(inner2));
o.length();
} catch (Exception e) {
o = "fallback";
assertThat(TestHelper.getLastRecordedStateForVariable("e"), equalTo(e.toString()));
assertThat(TestHelper.getLastRecordedStateForVariable("o"), equalTo(o));
}
}
@SuppressWarnings("null")
@Test
public void nestedTryCatchBlocks() {
String o = null;
try {
String inner = "inner";
assertThat(TestHelper.getLastRecordedStateForVariable("inner"), equalTo(inner));
String inner2 = "inner2";
assertThat(TestHelper.getLastRecordedStateForVariable("inner2"), equalTo(inner2));
o.length();
String o_2 = null;
try {
String inner_2 = "inner";
assertThat(TestHelper.getLastRecordedStateForVariable("inner_2"), equalTo(inner_2));
String inner2_2 = "inner2";
assertThat(TestHelper.getLastRecordedStateForVariable("inner2_2"), equalTo(inner2_2));
o.length();
} catch (Exception e_2) {
o_2 = "fallback";
assertThat(TestHelper.getLastRecordedStateForVariable("e_2"), equalTo(e_2.toString()));
assertThat(TestHelper.getLastRecordedStateForVariable("o_2"), equalTo(o_2));
}
} catch (Exception e) {
o = "fallback";
assertThat(TestHelper.getLastRecordedStateForVariable("e"), equalTo(e.toString()));
assertThat(TestHelper.getLastRecordedStateForVariable("o"), equalTo(o));
}
}
@SuppressWarnings("null")
@Test
public void nestedTryCatchBlocks_2() {
String o = null;
try {
String inner = "inner";
assertThat(TestHelper.getLastRecordedStateForVariable("inner"), equalTo(inner));
String inner2 = "inner2";
assertThat(TestHelper.getLastRecordedStateForVariable("inner2"), equalTo(inner2));
o.length();
} catch (Exception e) {
o = "fallback";
assertThat(TestHelper.getLastRecordedStateForVariable("e"), equalTo(e.toString()));
assertThat(TestHelper.getLastRecordedStateForVariable("o"), equalTo(o));
String o_2 = null;
try {
String inner_2 = "inner";
assertThat(TestHelper.getLastRecordedStateForVariable("inner_2"), equalTo(inner_2));
String inner2_2 = "inner2";
assertThat(TestHelper.getLastRecordedStateForVariable("inner2_2"), equalTo(inner2_2));
o.length();
} catch (Exception e_2) {
o_2 = "fallback";
assertThat(TestHelper.getLastRecordedStateForVariable("e_2"), equalTo(e_2.toString()));
assertThat(TestHelper.getLastRecordedStateForVariable("o_2"), equalTo(o_2));
}
}
}
}