1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.snapshot;
19
20 import static org.mockito.Matchers.any;
21 import static org.mockito.Mockito.mock;
22 import static org.mockito.Mockito.verify;
23
24 import org.apache.hadoop.hbase.SmallTests;
25 import org.apache.hadoop.hbase.TableName;
26 import org.apache.hadoop.hbase.errorhandling.ForeignException;
27 import org.apache.hadoop.hbase.errorhandling.ForeignExceptionDispatcher;
28 import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
29 import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription;
30 import org.junit.Test;
31 import org.junit.experimental.categories.Category;
32 import org.mockito.Mockito;
33
34 @Category(SmallTests.class)
35 public class TestSnapshotTask {
36
37
38
39
40 @Test
41 public void testErrorPropagation() throws Exception {
42 ForeignExceptionDispatcher error = mock(ForeignExceptionDispatcher.class);
43 SnapshotDescription snapshot = SnapshotDescription.newBuilder().setName("snapshot")
44 .setTable("table").build();
45 final Exception thrown = new Exception("Failed!");
46 SnapshotTask fail = new SnapshotTask(snapshot, error) {
47 @Override
48 public Void call() {
49 snapshotFailure("Injected failure", thrown);
50 return null;
51 }
52 };
53 fail.call();
54
55 verify(error, Mockito.times(1)).receive(any(ForeignException.class));
56 }
57
58 }