e214c2611dc4070beac63f5e49948b92f52fcc81
[moon.git] /
1 /*
2  * Copyright (c) 2014, 2015 Hewlett-Packard Development Company, L.P. and others.  All rights reserved.
3  *
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
7  */
8
9 package org.opendaylight.aaa.h2.persistence;
10
11 import static org.junit.Assert.*;
12 import static org.mockito.Mockito.*;
13
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;
19
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.Users;
25 import org.opendaylight.aaa.h2.persistence.UserStore;
26
27 public class UserStoreTest {
28
29     Connection connectionMock = mock(Connection.class);
30     private final UserStore userStoreUnderTest = new UserStore();
31
32     @Before
33     public void setup() {
34         userStoreUnderTest.dbConnection = connectionMock;
35     }
36
37     @After
38     public void teardown() {
39         // dts.destroy();
40     }
41
42     @Test
43     public void getUsersTest() 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, "USERS", tableTypes)).thenReturn(rsUserMock);
51         Mockito.when(rsUserMock.next()).thenReturn(true);
52
53         Statement stmtMock = mock(Statement.class);
54         Mockito.when(connectionMock.createStatement()).thenReturn(stmtMock);
55
56         ResultSet rsMock = getMockedResultSet();
57         Mockito.when(stmtMock.executeQuery(anyString())).thenReturn(rsMock);
58
59         // Run Test
60         Users users = userStoreUnderTest.getUsers();
61
62         // Verify
63         assertTrue(users.getUsers().size() == 1);
64         verify(stmtMock).close();
65
66     }
67
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(UserStore.SQL_ID)).thenReturn(1);
72         Mockito.when(rsMock.getString(UserStore.SQL_NAME)).thenReturn("Name_1");
73         Mockito.when(rsMock.getString(UserStore.SQL_EMAIL)).thenReturn("Name_1@company.com");
74         Mockito.when(rsMock.getString(UserStore.SQL_PASSWORD)).thenReturn("Pswd_1");
75         Mockito.when(rsMock.getString(UserStore.SQL_DESCR)).thenReturn("Desc_1");
76         Mockito.when(rsMock.getInt(UserStore.SQL_ENABLED)).thenReturn(1);
77         return rsMock;
78     }
79 }