package se.bjurr.sbcc; import static org.mockito.Mockito.mock; import static se.bjurr.sbcc.settings.SbccSettings.SETTING_BRANCHES; import static se.bjurr.sbcc.util.RefChangeBuilder.refChangeBuilder; import java.io.IOException; import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class ExceptionTest { private Logger beforeLogger; @Before public void before() { beforeLogger = SbccPreReceiveRepositoryHook.getLogger(); Logger mockLogger = mock(Logger.class); SbccPreReceiveRepositoryHook.setLogger(mockLogger); } @After public void after() { SbccPreReceiveRepositoryHook.setLogger(beforeLogger); } @Test public void testThatRefChangesAreAcceptedIfAnUnexpectedExceptionIsThrown() throws IOException { refChangeBuilder() .withHookNameVersion("Simple Bitbucket Commit Checker X.X") .throwing(new IOException("the error")) .run() .wasAccepted() .hasTrimmedFlatOutput( "Simple Bitbucket Commit Checker X.X Error while validating reference changes. Will allow all of them. \"the error\""); } /** * Should no be possible to store invalid settings. But it would be a disaster if such settings * somehow were stored. */ @Test public void testThatRefChangesAreAcceptedIfInvalidSettingsAreSet() throws IOException { refChangeBuilder() .withHookNameVersion("Simple Bitbucket Commit Checker X.X") .withSetting(SETTING_BRANCHES, "[notok") .build() .run() .wasAccepted() .hasTrimmedFlatOutput( "Simple Bitbucket Commit Checker X.X Error while validating reference changes. Will allow all of them. \"branches=Invalid Regexp: Unclosed character class near index 5 [notok ^\""); } }