mirror of
https://github.com/google/nomulus.git
synced 2025-05-17 09:57:17 +02:00
Use HttpException for error handling in UpdateSnapshotViewAction
This is a follow-up to [] ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=120238590
This commit is contained in:
parent
0f4a1035b2
commit
4ba8c0e552
2 changed files with 19 additions and 2 deletions
|
@ -25,6 +25,7 @@ import com.google.appengine.api.taskqueue.TaskOptions.Method;
|
|||
import com.google.domain.registry.bigquery.BigqueryFactory;
|
||||
import com.google.domain.registry.config.RegistryEnvironment;
|
||||
import com.google.domain.registry.request.Action;
|
||||
import com.google.domain.registry.request.HttpException.InternalServerErrorException;
|
||||
import com.google.domain.registry.request.Parameter;
|
||||
import com.google.domain.registry.util.FormattingLogger;
|
||||
import com.google.domain.registry.util.SqlTemplate;
|
||||
|
@ -71,7 +72,8 @@ public class UpdateSnapshotViewAction implements Runnable {
|
|||
try {
|
||||
updateSnapshotView(datasetId, tableId, kindName);
|
||||
} catch (Throwable e) {
|
||||
throw new RuntimeException("Error in update snapshot view action.", e);
|
||||
logger.severefmt(e, "Could not update snapshot view for table %s", tableId);
|
||||
throw new InternalServerErrorException("Error in update snapshot view action");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -31,7 +31,9 @@ import com.google.api.services.bigquery.model.Table;
|
|||
import com.google.appengine.api.taskqueue.QueueFactory;
|
||||
import com.google.domain.registry.bigquery.BigqueryFactory;
|
||||
import com.google.domain.registry.config.TestRegistryConfig;
|
||||
import com.google.domain.registry.request.HttpException.InternalServerErrorException;
|
||||
import com.google.domain.registry.testing.AppEngineRule;
|
||||
import com.google.domain.registry.testing.ExceptionRule;
|
||||
import com.google.domain.registry.testing.RegistryConfigRule;
|
||||
import com.google.domain.registry.testing.TaskQueueHelper.TaskMatcher;
|
||||
|
||||
|
@ -43,6 +45,8 @@ import org.mockito.ArgumentCaptor;
|
|||
import org.mockito.Mock;
|
||||
import org.mockito.runners.MockitoJUnitRunner;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
/** Unit tests for {@link UpdateSnapshotViewAction}. */
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class UpdateSnapshotViewActionTest {
|
||||
|
@ -52,6 +56,9 @@ public class UpdateSnapshotViewActionTest {
|
|||
.withTaskQueue()
|
||||
.build();
|
||||
|
||||
@Rule
|
||||
public final ExceptionRule thrown = new ExceptionRule();
|
||||
|
||||
@Rule
|
||||
public final RegistryConfigRule configRule = new RegistryConfigRule(new TestRegistryConfig() {
|
||||
@Override public String getProjectId() {
|
||||
|
@ -91,7 +98,7 @@ public class UpdateSnapshotViewActionTest {
|
|||
.thenReturn(bigqueryDatasetsInsert);
|
||||
when(bigquery.tables()).thenReturn(bigqueryTables);
|
||||
when(bigqueryTables.update(
|
||||
eq("Project-Id"), any(String.class), any(String.class), any(Table.class)))
|
||||
eq("Project-Id"), anyString(), anyString(), any(Table.class)))
|
||||
.thenReturn(bigqueryTablesUpdate);
|
||||
|
||||
action = new UpdateSnapshotViewAction();
|
||||
|
@ -125,4 +132,12 @@ public class UpdateSnapshotViewActionTest {
|
|||
assertThat(tableArg.getValue().getView().getQuery())
|
||||
.isEqualTo("SELECT * FROM [some_dataset.12345_fookind]");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFailure_bigqueryConnectionThrowsError() throws Exception {
|
||||
when(bigqueryTables.update(anyString(), anyString(), anyString(), any(Table.class)))
|
||||
.thenThrow(new IOException("I'm sorry Dave, I can't let you do that"));
|
||||
thrown.expect(InternalServerErrorException.class, "Error in update snapshot view action");
|
||||
action.run();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue