blob: 14fc326f6f05f6bee7549f75009b7d13ceef8fd8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
package com.xtremelabs.robolectric.util;
import com.xtremelabs.robolectric.WithTestDefaultsRunner;
import com.xtremelabs.robolectric.util.DatabaseConfig.CannotLoadDatabaseMapDriverException;
import com.xtremelabs.robolectric.util.DatabaseConfig.UsingDatabaseMap;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.sql.Connection;
/**
* the @UsingDatabaseMap integration test
* @author cvanvranken
*
*/
@UsingDatabaseMap(NullDatabaseMap.class)
@RunWith(WithTestDefaultsRunner.class)
public class NullDatabaseMapTest {
@Test
public void CanChangeDatabaseMapUsingAnnotation() {
Assert.assertTrue(DatabaseConfig.getDatabaseMap().getClass().getName()
.equals(NullDatabaseMap.class.getName()));
Assert.assertTrue(DatabaseConfig.getDatabaseMap().getConnectionString() == null);
Assert.assertTrue(DatabaseConfig.getDatabaseMap()
.getSelectLastInsertIdentity() == null);
Assert.assertTrue(DatabaseConfig.getDatabaseMap().getDriverClassName() == "com.xtremelabs.robolectric.util.NullDatabaseMap");
}
@Test
public void MapIsSetButIsNotLoaded() {
Assert.assertTrue(DatabaseConfig.getDatabaseMap().getClass().getName()
.equals(NullDatabaseMap.class.getName()));
// check that the map has been set but not loaded.
Assert.assertFalse(DatabaseConfig.isMapLoaded());
}
@Test
public void MapLoadsButConnectionFails() {
Assert.assertFalse(DatabaseConfig.isMapLoaded());
Connection connection = null;
boolean expectedError = false;
try {
connection = DatabaseConfig.getMemoryConnection();
// we should never reach this,
//since the connection should not actually be made
Assert.assertTrue(false);
} catch (CannotLoadDatabaseMapDriverException e) {
//This error is expected.
expectedError = true;
}
Assert.assertTrue(expectedError);
Assert.assertTrue(connection == null);
// driver should have loaded because the class name was valid,
// even if the memoryConnectionString was invalid
Assert.assertTrue(DatabaseConfig.isMapLoaded());
}
}
|