diff --git a/commons-module/pom.xml b/commons-module/pom.xml
index 97cb03e..91715dd 100644
--- a/commons-module/pom.xml
+++ b/commons-module/pom.xml
@@ -32,6 +32,27 @@
1.10.4
test
+
+ com.squareup.retrofit2
+ converter-gson
+ 2.0.2
+
+
+ com.squareup.retrofit2
+ converter-gson
+ 2.0.2
+
+
+ ru.qatools.school
+ api-tests-module
+ 1.0-SNAPSHOT
+ test
+
+
+ org.slf4j
+ slf4j-simple
+ 1.7.21
+
diff --git a/commons-module/src/test/java/ru/qatools/school/webtests/MyDbTest.java b/commons-module/src/test/java/ru/qatools/school/webtests/MyDbTest.java
new file mode 100644
index 0000000..aaebe00
--- /dev/null
+++ b/commons-module/src/test/java/ru/qatools/school/webtests/MyDbTest.java
@@ -0,0 +1,71 @@
+package ru.qatools.school.webtests;
+
+import org.apache.http.HttpStatus;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import retrofit2.Call;
+import retrofit2.Response;
+import retrofit2.Retrofit;
+import retrofit2.converter.gson.GsonConverterFactory;
+import ru.qatools.school.ApiData.retrofits.APITestService;
+import ru.qatools.school.ApiData.retrofits.City;
+import ru.qatools.school.DbClient;
+import ru.yandex.qatools.allure.annotations.Title;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import static org.hamcrest.core.Is.is;
+import static org.junit.Assert.assertThat;
+import static ru.qatools.school.ApiData.ApiDataPreconditions.BASE_URL;
+import static ru.yandex.qatools.matchers.collection.HasSameItemsAsListMatcher.hasSameItemsAsList;
+
+
+/**
+ * @author arrumm 09.05.2016.
+ */
+public class MyDbTest {
+
+ private APITestService service;
+ private DbClient MyClient;
+
+ private static final String SUGGEST_STRING = "bu";
+
+ @Before
+ public void initService() {
+ MyClient = new DbClient();
+
+ Retrofit retrofit = new Retrofit.Builder()
+ .baseUrl(BASE_URL)
+ .addConverterFactory(GsonConverterFactory.create())
+ .build();
+ service = retrofit.create(APITestService.class);
+ }
+
+ @Test
+ @Title("Should get equal lists both by query to database and by api method")
+ //@TestCaseId("14")
+ public void shouldGetCitiesWithBuApiDb() throws IOException {
+
+ List cities = MyClient.getCitiesNameContains(SUGGEST_STRING);
+
+ Call> request = service.suggest("bu");
+ Response> response = request.execute();
+ assertThat("Request status different from expected", response.code(), is(HttpStatus.SC_OK));
+
+ List names = response.body().stream().map(City::getName).collect(Collectors.toList());
+
+ assertThat("Cities from api don't match cities from db",
+ cities,
+ hasSameItemsAsList(names));
+
+ }
+
+ @After
+ public void closeConnection() {
+ MyClient.close();
+ }
+
+}
diff --git a/dbclient-module/pom.xml b/dbclient-module/pom.xml
index 2994039..94d5d98 100644
--- a/dbclient-module/pom.xml
+++ b/dbclient-module/pom.xml
@@ -22,6 +22,11 @@
mysql-connector-java
5.1.6
+
+ ru.qatools.school
+ api-tests-module
+ 1.0-SNAPSHOT
+
diff --git a/dbclient-module/src/main/java/ru/qatools/school/DbClient.java b/dbclient-module/src/main/java/ru/qatools/school/DbClient.java
index 12e1204..88ba70d 100644
--- a/dbclient-module/src/main/java/ru/qatools/school/DbClient.java
+++ b/dbclient-module/src/main/java/ru/qatools/school/DbClient.java
@@ -1,23 +1,28 @@
package ru.qatools.school;
-import org.jooq.*;
+import org.jooq.DSLContext;
+import org.jooq.Record1;
+import org.jooq.SQLDialect;
import org.jooq.impl.DSL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
+import java.util.List;
import static org.jooq.impl.DSL.field;
import static org.jooq.impl.DSL.table;
+import static ru.qatools.school.DbPreconditions.*;
/**
* Created by omaz on 27.04.16.
+ * edited by arrumm
*/
public class DbClient {
private static final String CONNECTION_STRING =
- System.getProperty("db.url", "jdbc:mysql://db.host.ru:3310/db_name");
- private static final String USER = System.getProperty("db.user", "user");
- private static final String PASSWORD = System.getProperty("db.password", "password");;
+ System.getProperty("db.url", DB_URL);
+ private static final String USER = System.getProperty("db.user", DB_USER);
+ private static final String PASSWORD = System.getProperty("db.password", DB_PASSWORD);
private Connection connection;
private DSLContext create;
@@ -36,7 +41,15 @@ public String getCityById(Integer id) {
.from(table("table_name"))
.where(field("id").equal(id))
.fetchOne();
- return result.getValue(0, String.class);
+ return result.getValue(0, String.class);
+ }
+
+ public List getCitiesNameContains(String name) {
+ List cities = create.select()
+ .from(table("City"))
+ .where(field("name").like("%" + name + "%"))
+ .limit(100).fetch().getValues("name", String.class);
+ return cities;
}
public void close() {
diff --git a/pom.xml b/pom.xml
index 2f0da8b..3b43c76 100644
--- a/pom.xml
+++ b/pom.xml
@@ -15,6 +15,7 @@
steps-module
commons-module
+ api-tests-module
dbclient-module
@@ -44,7 +45,17 @@
rest-assured
2.9.0
-
+
+ com.squareup.retrofit2
+ retrofit
+ 2.0.2
+
+
+ com.squareup.retrofit2
+ converter-gson
+ 2.0.2
+
+
ru.yandex.qatools.allure
allure-junit-adaptor
diff --git a/steps-module/pom.xml b/steps-module/pom.xml
index 9bcfe79..895d17e 100644
--- a/steps-module/pom.xml
+++ b/steps-module/pom.xml
@@ -45,7 +45,7 @@
com.jayway.restassured
rest-assured
-
+