diff --git a/api-tests-module/pom.xml b/api-tests-module/pom.xml
new file mode 100644
index 0000000..fdbbcb6
--- /dev/null
+++ b/api-tests-module/pom.xml
@@ -0,0 +1,56 @@
+
+
+
+ school-2016
+ ru.qatools.school
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ api-tests-module
+
+
+
+
+ com.jayway.restassured
+ rest-assured
+ 2.9.0
+
+
+ com.squareup.retrofit2
+ retrofit
+ 2.0.2
+
+
+ com.google.code.gson
+ gson
+ 2.6.2
+ test
+
+
+ com.squareup.retrofit2
+ converter-gson
+ 2.0.2
+
+
+ org.hamcrest
+ hamcrest-all
+ 1.3
+
+
+ ru.yandex.qatools.allure
+ allure-junit-adaptor
+ 1.4.23
+
+
+ ru.yandex.qatools.matchers
+ collection-matchers
+ 1.3
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api-tests-module/src/test/java/ru/qatools/school/apitests/RestAssureAPITest.java b/api-tests-module/src/test/java/ru/qatools/school/apitests/RestAssureAPITest.java
new file mode 100644
index 0000000..e3bc5d2
--- /dev/null
+++ b/api-tests-module/src/test/java/ru/qatools/school/apitests/RestAssureAPITest.java
@@ -0,0 +1,60 @@
+package ru.qatools.school.apitests;
+
+import com.jayway.restassured.response.Response;
+import org.apache.http.HttpStatus;
+import org.junit.Before;
+import org.junit.Test;
+import com.jayway.restassured.builder.RequestSpecBuilder;
+import com.jayway.restassured.specification.RequestSpecification;
+import ru.qatools.school.apitests.data.City;
+import ru.qatools.school.apitests.data.WeatherInfo;
+import ru.yandex.qatools.allure.annotations.Title;
+
+import java.io.IOException;
+
+import static com.jayway.restassured.RestAssured.given;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.core.Is.is;
+
+/**
+ * @author Gavrilov_IS
+ */
+public class RestAssureAPITest {
+ private static final String MAIN_PAGE = "http://weather.lanwen.ru/";
+ private static final String BASE_PATH = "api";
+ private final String CITY = "Moscow";
+ private final int CITY_LIMIT = 5;
+
+ private RequestSpecification reqSpec;
+
+ @Before
+ public void init() {
+ reqSpec = new RequestSpecBuilder().build()
+ .baseUri(MAIN_PAGE)
+ .basePath(BASE_PATH);
+ }
+
+ @Test
+ @Title("Проверяем, что запрос обработан и город в ответе соответствует запрошенному")
+ public void shouldGetInfoForCityInRequest() throws IOException {
+ WeatherInfo response = given().spec(reqSpec)
+ .param("city", CITY)
+ .expect().statusCode(HttpStatus.SC_OK)
+ .get("weather")
+ .as(WeatherInfo.class);
+ assertThat("Город в ответе должен соответствовать запрошенному", response.getCity(), is(CITY));
+
+ }
+
+ @Test
+ @Title("Запрос на /cities с параметром limit=CITY_LIMIT вернул указанное количество записей")
+ public void shouldGetExpectedCountOfCities() throws IOException {
+ Response response = given().spec(reqSpec)
+ .param("limit", 5)
+ .get("cities");
+ response.then().assertThat()
+ .statusCode(HttpStatus.SC_OK);
+ City[] cities = response.as(City[].class);
+ assertThat("Количество городов должно соответствовать указанному лимиту", cities.length, is(CITY_LIMIT));
+ }
+}
diff --git a/api-tests-module/src/test/java/ru/qatools/school/apitests/RetrofitAPITest.java b/api-tests-module/src/test/java/ru/qatools/school/apitests/RetrofitAPITest.java
new file mode 100644
index 0000000..0d2f8eb
--- /dev/null
+++ b/api-tests-module/src/test/java/ru/qatools/school/apitests/RetrofitAPITest.java
@@ -0,0 +1,56 @@
+package ru.qatools.school.apitests;
+
+import org.apache.http.HttpStatus;
+import org.junit.Before;
+import org.junit.Test;
+import static org.junit.Assert.*;
+import retrofit2.Response;
+import retrofit2.Retrofit;
+import retrofit2.converter.gson.GsonConverterFactory;
+import ru.qatools.school.apitests.data.City;
+import ru.qatools.school.apitests.data.WeatherInfo;
+import ru.qatools.school.apitests.interfaces.WeatherAPI;
+import ru.yandex.qatools.allure.annotations.Title;
+
+import java.io.IOException;
+import java.util.List;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.core.Is.is;
+
+/**
+ * @author Gavrilov_IS
+ */
+public class RetrofitAPITest {
+ private final String BASE_URL = "http://weather.lanwen.ru/api/";
+ private WeatherAPI weather;
+ private final String CITY = "Moscow";
+ private final int CITY_LIMIT = 5;
+
+ Retrofit client = new Retrofit.Builder()
+ .baseUrl(BASE_URL)
+ .addConverterFactory(GsonConverterFactory.create())
+ .build();
+
+ @Before
+ public void init() {
+ weather = client.create(WeatherAPI.class);
+ }
+
+ @Test
+ @Title("Проверяем, что запрос обработан и город в ответе соответствует запрошенному")
+ public void shouldGetInfoForCityInRequest() throws IOException {
+ Response response = weather.getWeather(CITY).execute();
+ assertThat("Успешная обработка запроса", response.code(), is(HttpStatus.SC_OK));
+ assertThat("Город в ответе должен соответствовать запрошенному", response.body().getCity(), is(CITY));
+ }
+
+ @Test
+ @Title("Запрос на /cities с параметром limit=CITY_LIMIT вернул указанное количество записей")
+ public void shouldGetExpectedCountOfCities() throws IOException {
+ Response> response = weather.getCitiesWithLimit(CITY_LIMIT).execute();
+ assertThat("Успешная обработка запроса", response.code(), is(HttpStatus.SC_OK));
+ assertEquals("Город в ответе должен соответствовать запрошенному", response.body().size(), CITY_LIMIT);
+ }
+
+}
diff --git a/api-tests-module/src/test/java/ru/qatools/school/apitests/data/City.java b/api-tests-module/src/test/java/ru/qatools/school/apitests/data/City.java
new file mode 100644
index 0000000..dfe0cea
--- /dev/null
+++ b/api-tests-module/src/test/java/ru/qatools/school/apitests/data/City.java
@@ -0,0 +1,30 @@
+package ru.qatools.school.apitests.data;
+
+/**
+ * Created by Gavrilov_IS on 11.05.2016.
+ */
+public class City {
+ private int UID;
+ private String name;
+ private String country;
+
+ public String getName(){
+ return name;
+ }
+
+ public int getUID(){
+ return UID;
+ }
+
+ public String getCountry(){
+ return country;
+ }
+
+ public void setName(String name){
+ this.name = name;
+ }
+
+ public void setUID(int UID){
+ this.UID = UID;
+ }
+}
diff --git a/api-tests-module/src/test/java/ru/qatools/school/apitests/data/Temperature.java b/api-tests-module/src/test/java/ru/qatools/school/apitests/data/Temperature.java
new file mode 100644
index 0000000..2c0053f
--- /dev/null
+++ b/api-tests-module/src/test/java/ru/qatools/school/apitests/data/Temperature.java
@@ -0,0 +1,24 @@
+package ru.qatools.school.apitests.data;
+
+/**
+ * @author Gavrilov_IS
+ */
+public class Temperature {
+ private String unit;
+ private double value;
+
+ public String getUnit(){
+ return unit;
+ }
+
+ public double getValue(){
+ return value;
+ }
+
+ @Override
+ public String toString(){
+ return "unit = " + unit + "; digit = " + value + "; \r\n";
+ }
+
+
+}
diff --git a/api-tests-module/src/test/java/ru/qatools/school/apitests/data/WeatherInfo.java b/api-tests-module/src/test/java/ru/qatools/school/apitests/data/WeatherInfo.java
new file mode 100644
index 0000000..1d32717
--- /dev/null
+++ b/api-tests-module/src/test/java/ru/qatools/school/apitests/data/WeatherInfo.java
@@ -0,0 +1,19 @@
+package ru.qatools.school.apitests.data;
+
+import java.util.List;
+
+/**
+ * @author Gavrilov_IS
+ */
+public class WeatherInfo {
+ private String city;
+ private List temperatures;
+
+ public String getCity(){
+ return city;
+ }
+
+ public List getListOfTemperatures(){
+ return temperatures;
+ }
+}
diff --git a/api-tests-module/src/test/java/ru/qatools/school/apitests/interfaces/WeatherAPI.java b/api-tests-module/src/test/java/ru/qatools/school/apitests/interfaces/WeatherAPI.java
new file mode 100644
index 0000000..d8b7747
--- /dev/null
+++ b/api-tests-module/src/test/java/ru/qatools/school/apitests/interfaces/WeatherAPI.java
@@ -0,0 +1,28 @@
+package ru.qatools.school.apitests.interfaces;
+
+import retrofit2.Call;
+import retrofit2.http.GET;
+import retrofit2.http.Query;
+import ru.qatools.school.apitests.data.City;
+import ru.qatools.school.apitests.data.WeatherInfo;
+
+import java.util.List;
+
+
+/**
+ * @author Gavrilov_IS
+ */
+public interface WeatherAPI {
+ @GET("cities")
+ Call> getCities();
+
+ @GET("cities")
+ Call> getCitiesWithLimit(@Query ("limit") int lim);
+
+ @GET("suggest")
+ Call> getSuggest(@Query ("query") String str);
+
+ @GET("weather")
+ Call getWeather(@Query("city") String city);
+}
+
diff --git a/commons-module/pom.xml b/commons-module/pom.xml
index b1372c7..123c6be 100644
--- a/commons-module/pom.xml
+++ b/commons-module/pom.xml
@@ -11,7 +11,7 @@
commons-module
- jar
+ pom
Commons Module
diff --git a/commons-module/src/test/java/ru/qatools/school/MyFirstTest.java b/commons-module/src/test/java/ru/qatools/school/MyFirstTest.java
deleted file mode 100644
index 7b9da2e..0000000
--- a/commons-module/src/test/java/ru/qatools/school/MyFirstTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package ru.qatools.school;
-
-import com.tngtech.java.junit.dataprovider.DataProvider;
-import com.tngtech.java.junit.dataprovider.DataProviderRunner;
-import com.tngtech.java.junit.dataprovider.UseDataProvider;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import ru.qatools.school.data.Place;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import static ru.qatools.school.steps.UserSteps.user;
-
-
-/**
- * @author gladnik (Nikolai Gladkov)
- */
-@RunWith(DataProviderRunner.class)
-public class MyFirstTest {
-
- @DataProvider
- public static List