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 - +