View Javadoc

1   package com.atlassian.sal.spring.connection;
2   
3   import com.atlassian.fugue.Option;
4   import com.atlassian.sal.api.rdbms.ConnectionCallback;
5   import com.atlassian.sal.spring.connection.SpringHostConnectionAccessor.ConnectionProvider;
6   import org.junit.Before;
7   import org.junit.Rule;
8   import org.junit.Test;
9   import org.junit.rules.ExpectedException;
10  import org.junit.runner.RunWith;
11  import org.mockito.Mock;
12  import org.mockito.runners.MockitoJUnitRunner;
13  import org.springframework.transaction.PlatformTransactionManager;
14  
15  import java.sql.Connection;
16  import java.sql.SQLException;
17  
18  import static org.hamcrest.CoreMatchers.is;
19  import static org.hamcrest.MatcherAssert.assertThat;
20  import static org.mockito.Mockito.verify;
21  import static org.mockito.Mockito.verifyNoMoreInteractions;
22  import static org.mockito.Mockito.when;
23  
24  @RunWith(MockitoJUnitRunner.class)
25  public class TestSpringHostConnectionAccessor {
26      @Rule
27      public ExpectedException expectedException = ExpectedException.none();
28  
29      private SpringHostConnectionAccessor springHostConnectionAccessor;
30  
31      @Mock
32      private ConnectionProvider connectionProvider;
33      @Mock
34      private Connection connection;
35      @Mock
36      private PlatformTransactionManager transactionManager;
37      @Mock
38      private ConnectionCallback<Object> callback;
39      @Mock
40      private Object result;
41  
42      @Before
43      public void before() {
44          springHostConnectionAccessor = new SpringHostConnectionAccessor(connectionProvider, transactionManager);
45      }
46  
47      @Test
48      public void getSchemaName() {
49          when(connectionProvider.getSchemaName()).thenReturn(Option.option("schema"));
50  
51          assertThat(springHostConnectionAccessor.getSchemaName().get(), is("schema"));
52      }
53  
54      @Test
55      public void execute() throws SQLException {
56          when(connectionProvider.getConnection()).thenReturn(connection);
57          when(callback.execute(connection)).thenReturn(result);
58  
59          assertThat(springHostConnectionAccessor.execute(true, true, callback), is(result));
60  
61          verify(callback).execute(connection);
62          verifyNoMoreInteractions(callback);
63          verifyNoMoreInteractions(connection);
64      }
65  }