View Javadoc
1   package com.atlassian.dbexporter.importer;
2   
3   import com.atlassian.dbexporter.Context;
4   import com.atlassian.dbexporter.DatabaseInformation;
5   import com.atlassian.dbexporter.ImportExportErrorService;
6   import com.atlassian.dbexporter.progress.ProgressMonitor;
7   import org.junit.After;
8   import org.junit.Before;
9   import org.junit.Rule;
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 static org.junit.Assert.assertEquals;
16  import static org.junit.Assert.assertFalse;
17  import static org.junit.Assert.assertNotNull;
18  import static org.junit.Assert.assertTrue;
19  import static org.mockito.Mockito.when;
20  
21  @RunWith(MockitoJUnitRunner.class)
22  public class DatabaseInformationImporterTest {
23      @Rule
24      public NodeParserRule nodeParser = new NodeParserRule();
25  
26      private DatabaseInformationImporter importer;
27  
28      @Mock
29      private DatabaseInformationChecker checker;
30  
31      @Mock
32      private ImportConfiguration configuration;
33  
34      @Mock
35      private ProgressMonitor progressMonitor;
36  
37      @Mock
38      private ImportExportErrorService errorService;
39  
40      @Test
41      @Xml("<database />")
42      public void importEmptyInformation() {
43          final Context context = new Context();
44          importer.doImportNode(nodeParser.getNode(), configuration, context);
45  
46          final DatabaseInformation info = getDatabaseInformation(context);
47          assertNotNull(info);
48          assertTrue(info.isEmpty());
49      }
50  
51      @Test
52      @Xml("<database><meta key=\"a-key\" value=\"some-value\"/></database>")
53      public void importMetaInformation() {
54          final Context context = new Context();
55          importer.doImportNode(nodeParser.getNode(), configuration, context);
56  
57          final DatabaseInformation info = getDatabaseInformation(context);
58          assertNotNull(info);
59          assertFalse(info.isEmpty());
60          assertEquals("some-value", info.getString("a-key"));
61      }
62  
63      @Before
64      public void setUp() throws Exception {
65          when(configuration.getProgressMonitor()).thenReturn(progressMonitor);
66  
67          importer = new DatabaseInformationImporter(errorService, checker);
68      }
69  
70      @After
71      public void tearDown() throws Exception {
72          importer = null;
73      }
74  
75      private DatabaseInformation getDatabaseInformation(Context context) {
76          return context.get(DatabaseInformation.class);
77      }
78  }