2 * Copyright (c) 2014, 2015 Hewlett-Packard Development Company, L.P. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.aaa.h2.persistence;
11 import static org.junit.Assert.*;
12 import static org.mockito.Mockito.*;
14 import java.sql.Connection;
15 import java.sql.DatabaseMetaData;
16 import java.sql.ResultSet;
17 import java.sql.SQLException;
18 import java.sql.Statement;
20 import org.junit.After;
21 import org.junit.Before;
22 import org.junit.Test;
23 import org.mockito.Mockito;
24 import org.opendaylight.aaa.api.model.Roles;
25 import org.opendaylight.aaa.h2.persistence.RoleStore;
27 public class RoleStoreTest {
29 Connection connectionMock = mock(Connection.class);
30 private final RoleStore RoleStoreUnderTest = new RoleStore();
34 RoleStoreUnderTest.dbConnection = connectionMock;
38 public void teardown() {
43 public void getRolesTest() throws SQLException, Exception {
44 // Setup Mock Behavior
45 String[] tableTypes = { "TABLE" };
46 Mockito.when(connectionMock.isClosed()).thenReturn(false);
47 DatabaseMetaData dbmMock = mock(DatabaseMetaData.class);
48 Mockito.when(connectionMock.getMetaData()).thenReturn(dbmMock);
49 ResultSet rsUserMock = mock(ResultSet.class);
50 Mockito.when(dbmMock.getTables(null, null, "ROLES", tableTypes)).thenReturn(rsUserMock);
51 Mockito.when(rsUserMock.next()).thenReturn(true);
53 Statement stmtMock = mock(Statement.class);
54 Mockito.when(connectionMock.createStatement()).thenReturn(stmtMock);
56 ResultSet rsMock = getMockedResultSet();
57 Mockito.when(stmtMock.executeQuery(anyString())).thenReturn(rsMock);
60 Roles roles = RoleStoreUnderTest.getRoles();
63 assertTrue(roles.getRoles().size() == 1);
64 verify(stmtMock).close();
68 public ResultSet getMockedResultSet() throws SQLException {
69 ResultSet rsMock = mock(ResultSet.class);
70 Mockito.when(rsMock.next()).thenReturn(true).thenReturn(false);
71 Mockito.when(rsMock.getInt(RoleStore.SQL_ID)).thenReturn(1);
72 Mockito.when(rsMock.getString(RoleStore.SQL_NAME)).thenReturn("RoleName_1");
73 Mockito.when(rsMock.getString(RoleStore.SQL_DESCR)).thenReturn("Desc_1");