View Javadoc
1   package com.atlassian.activeobjects.confluence.backup;
2   
3   import com.atlassian.activeobjects.spi.Backup;
4   import com.atlassian.activeobjects.spi.BackupProgressMonitor;
5   import com.atlassian.activeobjects.spi.HotRestartEvent;
6   import com.atlassian.activeobjects.spi.RestoreProgressMonitor;
7   import com.atlassian.activeobjects.spi.TransactionSynchronisationManager;
8   import com.atlassian.event.api.EventPublisher;
9   import org.junit.Before;
10  import org.junit.Test;
11  import org.junit.runner.RunWith;
12  import org.mockito.Mock;
13  import org.mockito.junit.MockitoJUnitRunner;
14  
15  import java.io.InputStream;
16  import java.io.OutputStream;
17  
18  import static org.mockito.ArgumentMatchers.any;
19  import static org.mockito.ArgumentMatchers.eq;
20  import static org.mockito.Mockito.mock;
21  import static org.mockito.Mockito.verify;
22  import static org.mockito.Mockito.when;
23  
24  @RunWith(MockitoJUnitRunner.class)
25  public class ActiveObjectsBackupRestoreProviderTest {
26      @Mock
27      private Backup aoBackup;
28      @Mock
29      private EventPublisher eventPublisher;
30      @Mock
31      private TransactionSynchronisationManager tranSyncManager;
32      private ActiveObjectsBackupRestoreProvider provider;
33  
34      @Before
35      public void setUp() {
36          provider = new ActiveObjectsBackupRestoreProvider();
37          provider.setBackup(aoBackup);
38          provider.setEventPublisher(eventPublisher);
39          provider.setTransactionSynchManager(tranSyncManager);
40          when(tranSyncManager.runOnSuccessfulCommit(any(Runnable.class))).thenAnswer(invocation -> {
41              ((Runnable) invocation.getArgument(0)).run();
42              return true;
43          });
44      }
45  
46      @Test
47      public void testBackup() throws Exception {
48          OutputStream os = mock(OutputStream.class);
49  
50          provider.backup(os);
51  
52          verify(aoBackup).save(eq(os), any(BackupProgressMonitor.class));
53  
54      }
55  
56      @Test
57      public void testRestore() throws Exception {
58          InputStream is = mock(InputStream.class);
59  
60          provider.restore(is);
61  
62          verify(aoBackup).restore(eq(is), any(RestoreProgressMonitor.class));
63          verify(eventPublisher).publish(HotRestartEvent.INSTANCE);
64      }
65  }