@Test
public void testSaveAndRestoreClosed() throws IOException {
expect(
bigqueryRpcMock.open(
new com.google.api.services.bigquery.model.Job()
.setJobReference(JOB_INFO.getJobId().toPb())
.setConfiguration(LOAD_CONFIGURATION.toPb())))
.andReturn(UPLOAD_ID);
Capture<byte[]> capturedBuffer = Capture.newInstance();
expect(
bigqueryRpcMock.write(
eq(UPLOAD_ID), capture(capturedBuffer), eq(0), eq(0L), eq(0), eq(true)))
.andReturn(job.toPb());
replay(bigqueryRpcMock);
writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION);
writer.close();
assertEquals(job, writer.getJob());
RestorableState<WriteChannel> writerState = writer.capture();
RestorableState<WriteChannel> expectedWriterState =
TableDataWriteChannel.StateImpl.builder(options, LOAD_CONFIGURATION, UPLOAD_ID, job)
.setBuffer(null)
.setChunkSize(DEFAULT_CHUNK_SIZE)
.setIsOpen(false)
.setPosition(0)
.build();
WriteChannel restoredWriter = writerState.restore();
assertArrayEquals(new byte[0], capturedBuffer.getValue());
assertEquals(expectedWriterState, restoredWriter.capture());
}