Fix license header violations in aaa-idmlight
[aaa.git] / aaa-idmlight / src / test / java / org / opendaylight / aaa / idm / persistence / UserStoreTest.java
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.idm.persistence;
10
11 import static org.junit.Assert.*;
12 import static org.mockito.Mockito.*;
13 import static org.mockito.Matchers.*;
14
15 import java.sql.Statement;
16 import java.sql.Connection;
17 import java.sql.DatabaseMetaData;
18 import java.sql.ResultSet;
19 import java.sql.SQLException;
20
21 import org.junit.After;
22 import org.junit.AfterClass;
23 import org.junit.Before;
24 import org.junit.BeforeClass;
25 import org.junit.Test;
26 import org.mockito.Mockito;
27 import org.opendaylight.aaa.idm.model.Users;
28
29 public class UserStoreTest {
30
31     Connection connectionMock = mock(Connection.class);
32     private final UserStore userStoreUnderTest = new UserStore();
33
34     @Before
35     public void setup() {
36         userStoreUnderTest.dbConnection = connectionMock;
37     }
38
39     @After
40     public void teardown() {
41         //dts.destroy();
42     }
43
44     @Test
45     public void getUsersTest() throws SQLException, Exception {
46     //Setup Mock Behavior
47     String[] tableTypes = {"TABLE"};
48     Mockito.when(connectionMock.isClosed()).thenReturn(false);
49     DatabaseMetaData dbmMock = mock(DatabaseMetaData.class);
50     Mockito.when(connectionMock.getMetaData()).thenReturn(dbmMock);
51     ResultSet rsUserMock = mock(ResultSet.class);
52     Mockito.when(dbmMock.getTables(null,null,"USERS",tableTypes)).thenReturn(rsUserMock);
53     Mockito.when(rsUserMock.next()).thenReturn(true);
54
55     Statement stmtMock = mock(Statement.class);
56     Mockito.when(connectionMock.createStatement()).thenReturn(stmtMock);
57
58     ResultSet rsMock = getMockedResultSet();
59     Mockito.when(stmtMock.executeQuery(anyString())).thenReturn(rsMock);
60
61     //Run Test
62     Users users = userStoreUnderTest.getUsers();
63
64     //Verify
65     assertTrue(users.getUsers().size() == 1);
66     verify(stmtMock).close();
67
68     }
69
70     public ResultSet getMockedResultSet(){
71         ResultSet rsMock = mock(ResultSet.class);
72         try {
73             Mockito.when(rsMock.next()).thenReturn(true).thenReturn(false);
74             Mockito.when(rsMock.getInt(UserStore.SQL_ID)).thenReturn(1);
75             Mockito.when(rsMock.getString(UserStore.SQL_NAME)).thenReturn("Name_1");
76             Mockito.when(rsMock.getString(UserStore.SQL_EMAIL)).thenReturn("Name_1@company.com");
77             Mockito.when(rsMock.getString(UserStore.SQL_PASSWORD)).thenReturn("Pswd_1");
78             Mockito.when(rsMock.getString(UserStore.SQL_DESCR)).thenReturn("Desc_1");
79             Mockito.when(rsMock.getInt(UserStore.SQL_ENABLED)).thenReturn(1);
80
81         }
82         catch (SQLException e) {
83             // TODO Auto-generated catch block
84             e.printStackTrace();
85         }
86
87
88         return rsMock;
89         }
90 }