· 4 years ago · Aug 19, 2021, 09:48 AM
1package com.epam.rd.java.basic.practice8;
2import com.epam.rd.java.basic.practice8.db.DBManager;
3import com.epam.rd.java.basic.practice8.db.entity.User;
4import org.junit.Assert;
5import org.junit.Test;
6import org.mockito.Spy;
7
8import java.io.FileInputStream;
9import java.io.IOException;
10import java.sql.Connection;
11import java.sql.SQLException;
12import java.sql.Statement;
13import java.util.List;
14import java.util.Properties;
15
16public class Part1StudentTest {
17 private static final String JDBC_DRIVER = "org.h2.Driver";
18 private static final String DB_URL = "jdbc:h2:~/test";
19 private static final String URL_CONNECTION = "jdbc:h2:~/test";
20 private static final String USER = "youruser";
21 private static final String PASS = "yourpassword";
22
23 @Spy
24 private static DBManager dbManager;
25
26 @Test
27 public void compareId() throws ClassNotFoundException {
28 Class.forName(JDBC_DRIVER);
29
30 try (FileInputStream fis = new FileInputStream("app.properties")) {
31 Properties properties = new Properties();
32 properties.load(fis);
33 dbManager.getConnection(properties.getProperty("connection.url"),
34 properties.getProperty("user"),
35 properties.getProperty("password"));
36 }
37 catch (IOException | SQLException e) {
38 e.printStackTrace();
39 }
40
41 dbManager = DBManager.getInstance();
42
43 try {
44 Connection con = dbManager.getConnection(DB_URL, USER, PASS);
45 Statement statement = con.createStatement();
46
47 String sql1 = "DROP TABLE IF EXISTS users;";
48 statement.executeUpdate(sql1);
49
50 String sql2 = "CREATE TABLE IF NOT EXISTS users (" +
51 " id INTEGER(11) NOT NULL AUTO_INCREMENT," +
52 " login VARCHAR(20) NOT NULL, " +
53 " PRIMARY KEY (id));";
54 statement.executeUpdate(sql2);
55 }
56 catch (IOException | SQLException e) {
57 e.printStackTrace();
58 }
59
60
61 String LOGIN = "obama";
62 User petrov = User.createUser(LOGIN);
63 long id = petrov.getId();
64 dbManager.insertUser(petrov);
65 petrov = dbManager.getUser(LOGIN);
66 Assert.assertNotEquals(id, petrov.getId());
67 }
68
69
70
71 @Test
72 public void shouldReturnListOfUsers () throws ClassNotFoundException {
73 Class.forName(JDBC_DRIVER);
74
75 try (FileInputStream fis = new FileInputStream("app.properties")) {
76 Properties properties = new Properties();
77 properties.load(fis);
78 dbManager.getConnection(properties.getProperty("connection.url"),
79 properties.getProperty("user"),
80 properties.getProperty("password"));
81 }
82 catch (IOException | SQLException e) {
83 e.printStackTrace();
84 }
85
86 dbManager = DBManager.getInstance();
87
88 try {
89 Connection con = dbManager.getConnection(URL_CONNECTION, USER, PASS);
90 Statement statement = con.createStatement();
91
92 String sql1 = "DROP TABLE IF EXISTS users;";
93 statement.executeUpdate(sql1);
94
95 String sql2 = "CREATE TABLE IF NOT EXISTS users (" +
96 " id INTEGER(11) NOT NULL AUTO_INCREMENT," +
97 " login VARCHAR(20) NOT NULL, " +
98 " PRIMARY KEY (id));";
99 statement.executeUpdate(sql2);
100 }
101 catch (IOException | SQLException e) {
102 e.printStackTrace();
103 }
104
105
106 String LOGIN = "obama";
107 User obama = User.createUser(LOGIN);
108 dbManager.insertUser(obama);
109 List<User> list = dbManager.findAllUsers();
110 Assert.assertEquals("User{login=\'obama\'}", Demo.printList(list));
111 }
112}