diff --git a/src/test/java/ru/odnoklassniki/tests/examples/TestGroupGetInfo.java b/src/test/java/ru/odnoklassniki/tests/examples/TestGroupGetInfo.java index 9bc4a1b..112fbab 100644 --- a/src/test/java/ru/odnoklassniki/tests/examples/TestGroupGetInfo.java +++ b/src/test/java/ru/odnoklassniki/tests/examples/TestGroupGetInfo.java @@ -1,5 +1,6 @@ package ru.odnoklassniki.tests.examples; +import org.apache.commons.lang3.StringUtils; import org.junit.Assert; import org.junit.Test; import ru.odnoklassniki.base.ApiTestBase; @@ -24,13 +25,16 @@ public class TestGroupGetInfo extends ApiTestBase { private static final String GROUP_ID = "53245288710321"; private static final String GROUP_NAME = "Технополис OK (Mail. Ru) и Политеха"; private static final GroupBeanField[] FIELDS = new GroupBeanField[]{GroupBeanField.UID, GroupBeanField.NAME}; + private static final String ERROR_NO_SESSION = "PARAM : Missed required parameter: access_token"; + private static final String INVALID_GROUP_ID = "BlaBlaBla"; + private static final String ERROR_ID_IS_INVALID = "PARAM : Invalid UID value BlaBlaBla"; + private static final String ERROR_ID_IS_NOT_SET = "PARAM : Missing required parameter uids"; + private static final String ERROR_FIELDS_IS_NOT_SET = "PARAM : Missing required parameter fields"; + - /** - * Пример теста на метод group.getInfo - */ @Test - public void testGroupGetInfoExample() throws ApiException { - LOGGER.info("Получим данные об одной группе с помощью метода group.getInfo"); + public void testGetInfoReturnCorrectData() throws ApiException { + LOGGER.info("Проверим, что метод возвращает правильные данные для корректного id и списка полей"); bindDefaultUserSession(); GroupBean[] groupBeans = okApi.getGroupService().getGroupInfo(new String[]{GROUP_ID}, FIELDS); @@ -49,4 +53,85 @@ public void testGroupGetInfoExample() throws ApiException { Assert.assertEquals("Неверный id группы", GROUP_ID, groupBean.getUid()); Assert.assertEquals("Неверное название группы", GROUP_NAME, groupBean.getName()); } + + @Test + public void testFieldsIsCorrect() throws ApiException { + LOGGER.info("Проверим, что метод возвращает только нужные поля"); + bindDefaultUserSession(); + + GroupBean[] groupBeans = okApi.getGroupService().getGroupInfo(new String[]{GROUP_ID}, FIELDS); + GroupBean groupBean = groupBeans[0]; + + + LOGGER.info("Проверим, что нужные поля есть"); + Assert.assertTrue("Пустой id", StringUtils.isNotBlank(groupBean.getUid())); + Assert.assertTrue("Пустое имя", StringUtils.isNotBlank(groupBean.getName())); + + LOGGER.info("Проверим, что ненужных полей нет"); + Assert.assertNull("Непустой description", groupBean.getDescription()); + Assert.assertNull("Непустой shortname", groupBean.getShortname()); + Assert.assertNull("Непустой status", groupBean.getStatus()); + + } + + @Test + public void testGetInfoThrowsExceptionWhenSessionIsNotSet() { + LOGGER.info("Проверим, что метод сессионный и требует указания access_token"); + + try { + LOGGER.info("Вызовем метод без сессии"); + okApi.getGroupService().getGroupInfo(new String[]{GROUP_ID}, FIELDS); + Assert.fail("Метод не кинул ошибку при отсутствии пользовательской сессии"); + } catch (ApiException e) { + LOGGER.info("Получили ошибку, проверим её текст"); + Assert.assertEquals("Неверная ошибка при вызове без сессии", ERROR_NO_SESSION, e.getApiErrorInfo().getErrorMessage()); + } + } + + @Test + public void testGetInfoTrowsExceptionWhenIdIsIncorrect() throws ApiException { + LOGGER.info("Проверим, что метод выбрасывает исключение, когда id не валидный"); + bindDefaultUserSession(); + + try { + LOGGER.info("Вызовем метод с невалидным id"); + okApi.getGroupService().getGroupInfo(new String[]{INVALID_GROUP_ID}, FIELDS); + Assert.fail("Метод не кинул ошибку с невалидным id"); + } catch (ApiException e) { + LOGGER.info("Получили ошибку, проверим её текст"); + Assert.assertEquals("Неверная ошибка при вызове без сессии", ERROR_ID_IS_INVALID, e.getApiErrorInfo().getErrorMessage()); + } + } + + @Test + public void testGetInfoTrowsExceptionWhenIdIsNotSet() throws ApiException { + LOGGER.info("Проверим, что метод выбрасывает исключение, когда id не установлен"); + bindDefaultUserSession(); + + try { + LOGGER.info("Вызовем метод без id"); + okApi.getGroupService().getGroupInfo(new String[]{}, FIELDS); + Assert.fail("Метод не кинул ошибку при отсутствии id"); + } catch (ApiException e) { + LOGGER.info("Получили ошибку, проверим её текст"); + Assert.assertEquals("Неверная ошибка при вызове без сессии", ERROR_ID_IS_NOT_SET, e.getApiErrorInfo().getErrorMessage()); + } + } + + + @Test + public void testGetInfoThrowsExceptionWhenFieldsNotSet() throws ApiException { + LOGGER.info("Проверим, что метод сессионный и требует указания access_token"); + bindDefaultUserSession(); + + try { + LOGGER.info("Вызовем метод без списка полей"); + okApi.getGroupService().getGroupInfo(new String[]{GROUP_ID}, null); + Assert.fail("Метод не кинул ошибку при отсутствии списка полей"); + } catch (ApiException e) { + LOGGER.info("Получили ошибку, проверим её текст"); + Assert.assertEquals("Неверная ошибка при вызове без сессии", ERROR_FIELDS_IS_NOT_SET, e.getApiErrorInfo().getErrorMessage()); + } + } + } diff --git a/src/test/java/ru/odnoklassniki/tests/examples/TestGroupGetUserGroupsV2.java b/src/test/java/ru/odnoklassniki/tests/examples/TestGroupGetUserGroupsV2.java index f749433..bb363e3 100644 --- a/src/test/java/ru/odnoklassniki/tests/examples/TestGroupGetUserGroupsV2.java +++ b/src/test/java/ru/odnoklassniki/tests/examples/TestGroupGetUserGroupsV2.java @@ -6,25 +6,89 @@ import ru.odnoklassniki.base.ApiTestBase; import ru.odnoklassniki.common.ApiException; import ru.odnoklassniki.responses.group.GroupGetUserGroupsV2Response; +import ru.odnoklassniki.common.group.UserGroupBean; import java.util.logging.Logger; +import java.util.List; +import org.apache.commons.lang3.StringUtils; /** * Created by Maksim Egorichev on 5/9/18 at 4:39 PM */ -public class TestGroupGetUserGroupsV2 extends ApiTestBase { +public class TestGroupGetUserGroupsV2 extends ApiTestBase { private static final Logger LOGGER = Logger.getLogger(TestGroupGetUserGroupsV2.class.getSimpleName()); + private static final Integer VALID_COUNT = 1; + private static final Integer BIGGER_COUNT = 5; + private static final Integer INVALID_COUNT = -5; + private static final String ERROR_NO_SESSION = "PARAM : Missed required parameter: access_token"; - /** - * Пример теста на метод group.getUserGroupsV2 - */ @Test - public void testGroupGetUserGroupsV2Example() throws ApiException { - LOGGER.info("Получим данные о группах пользвоателя с помощью метода group.getUserGroupsV2"); + public void testGroupGetUserGroupsV2ReturnCorrectDataWithDefaultParameters() throws ApiException { + LOGGER.info("Получим данные о группах пользвоателя c дефолтными значениями"); bindDefaultUserSession(); GroupGetUserGroupsV2Response groupGetUserGroupsV2Response = okApi.getGroupService().getUserGroupsV2(); + LOGGER.info("Проверим, что не получили null"); + Assert.assertNotNull("Получили null в ответ на запрос", groupGetUserGroupsV2Response); + + LOGGER.info("Проверим, что в ответе есть группы"); + Assert.assertFalse("Пустой список групп", CollectionUtils.isEmpty(groupGetUserGroupsV2Response.getGroups())); + + LOGGER.info("Проверим, что в ответе есть anchor"); + Assert.assertFalse("Получили пустой anchor", StringUtils.isNotBlank(groupGetUserGroupsV2Response.getAnchor())); + + } + + @Test + public void testGroupGetUserGroupsV2ReturnCorrectDataWithValidCount() throws ApiException { + LOGGER.info("Получим данные о группах с валидным значением count"); + bindDefaultUserSession(); + + GroupGetUserGroupsV2Response groupGetUserGroupsV2Response = okApi.getGroupService().getUserGroupsV2(VALID_COUNT); + + LOGGER.info("Проверим, что в ответе есть группы"); + Assert.assertFalse("Пустой список групп", CollectionUtils.isEmpty(groupGetUserGroupsV2Response.getGroups())); + List userGroupBean = groupGetUserGroupsV2Response.getGroups(); + + LOGGER.info("Проверим, что в ответе правильное количество групп"); + Assert.assertTrue("Количество групп в ответе больше count", userGroupBean.size() <= VALID_COUNT.intValue()); + } + + @Test + public void testGroupGetUserGroupsV2WorkCorrectlyWhenActualNumberOfGroupsLessThanCount() throws ApiException { + LOGGER.info("Проверим, что метод работает правильно когда количество групп у пользователя мень, чем count"); + bindDefaultUserSession(); + + GroupGetUserGroupsV2Response groupGetUserGroupsV2Response = okApi.getGroupService().getUserGroupsV2(BIGGER_COUNT); + LOGGER.info("Проверим, что в ответе есть группы"); + Assert.assertFalse("Пустой список групп", CollectionUtils.isEmpty(groupGetUserGroupsV2Response.getGroups())); + List userGroupBean = groupGetUserGroupsV2Response.getGroups(); + + LOGGER.info("Проверим, что в ответе правильное количество групп"); + Assert.assertTrue("Количество групп в ответе больше или равно count", userGroupBean.size() < BIGGER_COUNT.intValue()); + } + + @Test + public void testGroupGetUserGroupsV2ThrowExceptionWhenSessionIsNotSet() throws ApiException { + LOGGER.info("Проверим, что метод сессионный и требует установления acсess_token"); + + try { + okApi.getGroupService().getUserGroupsV2(); + Assert.fail("Метод не кинул ошибку при отсутствии пользовательской сессии"); + } catch (ApiException e) { + LOGGER.info("Получили ошибку, проверим её текст"); + Assert.assertEquals("Неверная ошибка при вызове без сессии", ERROR_NO_SESSION, e.getApiErrorInfo().getErrorMessage()); + } + } + + + @Test + public void testGroupGetUserGroupsV2ThrowExceptionWhenCountIsNegative() throws ApiException { + LOGGER.info("Проверим, что метод возвращает дефолтное количесвто групп, если count меньше нуля"); + bindDefaultUserSession(); + + GroupGetUserGroupsV2Response groupGetUserGroupsV2Response = okApi.getGroupService().getUserGroupsV2(INVALID_COUNT); LOGGER.info("Проверим, что в ответе есть группы"); Assert.assertFalse("Пустой список групп", CollectionUtils.isEmpty(groupGetUserGroupsV2Response.getGroups())); } diff --git a/src/test/java/ru/odnoklassniki/tests/examples/TestUsersGetInfoBy.java b/src/test/java/ru/odnoklassniki/tests/examples/TestUsersGetInfoBy.java index 694a4c8..e3e3880 100644 --- a/src/test/java/ru/odnoklassniki/tests/examples/TestUsersGetInfoBy.java +++ b/src/test/java/ru/odnoklassniki/tests/examples/TestUsersGetInfoBy.java @@ -9,6 +9,7 @@ import ru.odnoklassniki.responses.users.UsersGetInfoByResponse; import java.util.logging.Logger; +import org.apache.commons.lang3.StringUtils; /** * Created by Maksim Egorichev on 5/9/18 at 4:54 PM @@ -18,13 +19,18 @@ public class TestUsersGetInfoBy extends ApiTestBase { private static final String USER_ID = "572071876429"; private static final String USER_NAME = "Юрий Дудь"; private static final UserInfoField[] FIELDS = UserInfoField.values(); + private static final String INVALID_USER_ID = "BlaBlaBla"; + private static final String ERROR_ID_IS_INVALID = "PARAM : Invalid UID value BlaBlaBla"; + private static final String ERROR_NO_SESSION = "PARAM : Missed required parameter: access_token"; + private static final String ERROR_ID_IS_NOT_SET = "PARAM : Missing required parameter uids"; + private static final String ERROR_FIELDS_IS_NOT_SET = "PARAM : Missing required parameter fields"; /** * Пример теста на метод users.getInfoBy */ @Test public void testUsersGetInfoByExample() throws ApiException { - LOGGER.info("Получим данные о другом пользователе с помощью метода users.getInfoBy"); + LOGGER.info("Получим данные о другом пользователе"); bindDefaultUserSession(); UsersGetInfoByResponse getInfoByResponse = okApi.getUserService().getInfoBy(USER_ID, FIELDS); @@ -35,4 +41,86 @@ public void testUsersGetInfoByExample() throws ApiException { Assert.assertEquals("Неверный ID пользователя", USER_ID, userBean.getUid()); Assert.assertEquals("Неверное имя пользователя", USER_NAME, userBean.getName()); } + + @Test + public void testResponseFields() throws ApiException { + LOGGER.info("Проверим, что в ответе только нужные поля"); + bindDefaultUserSession(); + + UsersGetInfoByResponse getInfoByResponse = okApi.getUserService().getInfoBy(USER_ID, FIELDS); + + LOGGER.info("Проверим, что получили верные данные"); + LOGGER.info("Проверим, что получили верные данные"); + UserBean userBean = getInfoByResponse.getUser(); + Assert.assertNotNull("Не получили информацию о пользователе", userBean); + Assert.assertTrue("Пустой id", StringUtils.isNotBlank(userBean.getUid())); + Assert.assertTrue("Пустое имя", StringUtils.isNotBlank(userBean.getName())); + + LOGGER.info("Проверим, что не получили ненужных полей"); + Assert.assertEquals("Пустой age", userBean.getAge().intValue(),0); + Assert.assertNull("Непустой birthday", userBean.getBirthday()); + Assert.assertNull("Непустой email", userBean.getEmail()); + Assert.assertNull("Непустой firstName", userBean.getFirstName()); + Assert.assertNull("Непустой lastName", userBean.getLastName()); + } + + @Test + public void testUsersGetInfoByThrowsExceptionWhenUidIsInvalid() throws ApiException { + LOGGER.info("Проверим, что метод выбрасывает исключение при не валидном id"); + bindDefaultUserSession(); + + try { + LOGGER.info("Вызовем метод с невалидным id"); + okApi.getUserService().getInfoBy(INVALID_USER_ID, FIELDS); + Assert.fail("Метод не кинул ошибку с невалидным id"); + } catch (ApiException e) { + LOGGER.info("Получили ошибку, проверим её текст"); + Assert.assertEquals("Неверная ошибка при вызове без сессии", ERROR_ID_IS_INVALID, e.getApiErrorInfo().getErrorMessage()); + } + } + + @Test + public void testGetInfoByThrowsExceptionWhenSessionIsNotSet() throws ApiException { + LOGGER.info("Проверим, что метод сессионный и требует указания access_token"); + + try { + LOGGER.info("Вызовем метод без сессии"); + okApi.getUserService().getInfoBy(USER_ID, FIELDS); + Assert.fail("Метод не кинул ошибку при отсутствии пользовательской сессии"); + } catch (ApiException e) { + LOGGER.info("Получили ошибку, проверим её текст"); + Assert.assertEquals("Неверная ошибка при вызове без сессии", ERROR_NO_SESSION, e.getApiErrorInfo().getErrorMessage()); + } + } + + @Test + public void testGetInfoByThrowsExceptionWhenUidIsNotSet() throws ApiException { + LOGGER.info("Проверим, что метод выбрасывает исключение, если не установлен id"); + bindDefaultUserSession(); + + try { + LOGGER.info("Вызовем метод без id"); + okApi.getUserService().getInfoBy(null, FIELDS); + Assert.fail("Метод не кинул ошибку без id"); + } catch (ApiException e) { + LOGGER.info("Получили ошибку, проверим её текст"); + Assert.assertEquals("Неверная ошибка при вызове без id", ERROR_ID_IS_NOT_SET, e.getApiErrorInfo().getErrorMessage()); + } + } + + @Test + public void testGetInfoByThrowsExceptionWhenFieldsIsNotSet() throws ApiException { + LOGGER.info("Проверим, что метод выбрасывает исключение, если не установлены fields"); + bindDefaultUserSession(); + + try { + LOGGER.info("Вызовем метод без fields"); + okApi.getUserService().getInfoBy(INVALID_USER_ID, null); + Assert.fail("Метод не кинул ошибку без fields"); + } catch (ApiException e) { + LOGGER.info("Получили ошибку, проверим её текст"); + Assert.assertEquals("Неверная ошибка при вызове без fields", ERROR_FIELDS_IS_NOT_SET, e.getApiErrorInfo().getErrorMessage()); + } + } + } diff --git a/src/test/resources/project.properties b/src/test/resources/project.properties index 40c1a19..3593541 100644 --- a/src/test/resources/project.properties +++ b/src/test/resources/project.properties @@ -1,11 +1,11 @@ # OK API settings api.server.url=https://api.ok.ru/fb.do -api.app.public.key= -api.app.secret.key= +api.app.public.key=CBADOEHMEBABABABA +api.app.secret.key=B2C8B098233D4AB1A74A7EFF #User session settings -user.session.access.token= -user.session.secret.key= +user.session.access.token=tkn18dPU47oSSZC1jMGRvnNyRozOMs5sIwhnhhsETm3WfB9gOWnrrJm4WXqnqQfpbfYj6 +user.session.secret.key=098b66fb57faebc49d0ae105e3d773ad # HttpClient settings http.client.timeout=15000