aboutsummaryrefslogtreecommitdiff
path: root/v1/src/test/java/com/xtremelabs/robolectric/util/NullDatabaseMapTest.java
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());

	}
}