From 49cb10841c1fffc36377c8b182bf763a78844e67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Fri, 18 May 2018 16:04:59 +0300 Subject: [PATCH] added tests to methods group.getInfo group.getUserGroupsV2 users.getInfoBy --- .../tests/examples/TestGetCurrentUser.java | 2 +- .../tests/examples/TestGroupGetInfo.java | 147 +++++++++++++++++- .../examples/TestGroupGetUserGroupsV2.java | 106 ++++++++++++- .../tests/examples/TestUsersGetInfoBy.java | 131 +++++++++++++++- 4 files changed, 373 insertions(+), 13 deletions(-) diff --git a/src/test/java/ru/odnoklassniki/tests/examples/TestGetCurrentUser.java b/src/test/java/ru/odnoklassniki/tests/examples/TestGetCurrentUser.java index 6d0dba9..d067ac6 100644 --- a/src/test/java/ru/odnoklassniki/tests/examples/TestGetCurrentUser.java +++ b/src/test/java/ru/odnoklassniki/tests/examples/TestGetCurrentUser.java @@ -68,7 +68,7 @@ public void testFieldsParam() throws ApiException { Assert.assertTrue("Пустое имя пользователя", StringUtils.isNotBlank(getCurrentUserResponse.getFirstName())); LOGGER.info("Проверим, что в ответе нет незапрошенного поля"); - Assert.assertNull("Пустая фамилия пользователя", getCurrentUserResponse.getLastName()); + Assert.assertNull("Не пустая фамилия пользователя", getCurrentUserResponse.getLastName()); LOGGER.info("Учитывается параметр fields и в ответе возвращаются только запрошенные поля"); } } diff --git a/src/test/java/ru/odnoklassniki/tests/examples/TestGroupGetInfo.java b/src/test/java/ru/odnoklassniki/tests/examples/TestGroupGetInfo.java index 9bc4a1b..15ce7cb 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; @@ -17,20 +18,54 @@ /** * Created by Maksim Egorichev on 5/9/18 at 4:01 PM * - * Пример теста на метод group.getInfo + * Updated by Dmitriy Tcibisov on 5/18/18 at 15:25 PM + * + * Тесты на метод group.getInfo + * + * Чек-лист: + * 1. Проверка, что метод сессионный и требует указания access_token + * 2. Проверка, что метод выполняется без ошибок при корректных параметрах uids и fields + * 3. Проверка, что метод выбрасывает исключение при некорректном параметре uids + * 4. Проверка, что метод выбрасывает исключение при отсутствии обязательного параметра uids + * 5. Проверка, что метод выбрасывает исключение при отсутствии обязательного параметра fields + * 6. Проверка, что учитывается параметр fields и в ответе возвращаются только запрошенные поля + * 7. Проверка, что метод выбрасывает исключение при параметре move_to_top = true и более чем одной группе в параметре uids */ public class TestGroupGetInfo extends ApiTestBase { private static final Logger LOGGER = Logger.getLogger(TestGroupGetInfo.class.getSimpleName()); + private static final String UNCORRECT_GROUP_ID = "Incorrect"; 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_INCORRECT_UIDS = "PARAM : Invalid UID value"; + private static final String ERROR_NO_SESSION = "PARAM : Missed required parameter: access_token"; + private static final String ERROR_NO_UIDS = "PARAM : Missing required parameter uids"; + private static final String ERROR_NO_FIELDS = "PARAM : Missing required parameter fields"; + private static final String ERROR_INCORRECT_USE_MOVE_TO_TOP = "PARAM : Param 'move_to_top' can be true for single group only"; + + /** + * 1. Проверка, что метод сессионный и требует указания access_token + */ + @Test + public void testMethodThrowsExceptionWhenSessionIsNotSet() { + 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()); + } + LOGGER.info("Метод сессионный и кидает верную ошибку при вызове без сессии"); + } /** - * Пример теста на метод group.getInfo + * 2. Проверка, что метод выполняется без ошибок при корректных параметрах uids и fields */ @Test - public void testGroupGetInfoExample() throws ApiException { - LOGGER.info("Получим данные об одной группе с помощью метода group.getInfo"); + public void testMethodNoThrowsExceptionWhenUidsAndFieldsAreCorrect() throws ApiException { + LOGGER.info("Проверим, что метод отдаёт верные данные при корректных uids и fields"); bindDefaultUserSession(); GroupBean[] groupBeans = okApi.getGroupService().getGroupInfo(new String[]{GROUP_ID}, FIELDS); @@ -48,5 +83,109 @@ public void testGroupGetInfoExample() throws ApiException { GroupBean groupBean = groupBeans[0]; Assert.assertEquals("Неверный id группы", GROUP_ID, groupBean.getUid()); Assert.assertEquals("Неверное название группы", GROUP_NAME, groupBean.getName()); + + LOGGER.info("Метод выполняется без ошибок и отдаёт корректные данные при введённых uids и fields"); + } + + /** + * 3. Проверка, что метод выбрасывает исключение при некорректном параметре uids + */ + @Test + public void testMethodThrowsExceptionWhenUidsIsIncorrect() { + LOGGER.info("Проверим, что метод выбрасывает исключение при некорректном uids"); + try { + LOGGER.info("Вызовем метод в сессии пользователя"); + bindDefaultUserSession(); + LOGGER.info("Вызовем метод с некорректным uids"); + okApi.getGroupService().getGroupInfo(new String[]{UNCORRECT_GROUP_ID}, FIELDS); + Assert.fail("Метод не кинул ошибку при некорректном uids"); + } + catch (ApiException e) { + LOGGER.info("Получили ошибку, проверим её текст"); + Assert.assertTrue("Неверная ошибка при вызове с некорректным uids", + e.getApiErrorInfo().getErrorMessage().startsWith(ERROR_INCORRECT_UIDS)); + } + LOGGER.info("Метод ожидает корректные uids и выбрасывает верную ошибку при вызове с некорректным uids"); + } + + /** + * 4. Проверка, что метод выбрасывает исключение при отсутствии обязательного параметра uids + */ + @Test + public void testMethodThrowsExceptionWhenUidIsNotSend() { + LOGGER.info("Проверим, что метод требует указания uids"); + try { + LOGGER.info("Вызовем метод в сессии пользователя"); + bindDefaultUserSession(); + LOGGER.info("Вызовем метод без указания uids"); + okApi.getGroupService().getGroupInfo(null, FIELDS); + Assert.fail("Метод не кинул ошибку при отсутствии uids"); + } catch (ApiException e) { + LOGGER.info("Получили ошибку, проверим её текст"); + Assert.assertEquals("Неверная ошибка при вызове без указания uids", ERROR_NO_UIDS, e.getApiErrorInfo().getErrorMessage()); + } + LOGGER.info("Метод ожидает uids и кидает верную ошибку при вызове без указания uids"); + } + + /** + * 5. Проверка, что метод выбрасывает исключение при отсутствии обязательного параметра fields + */ + @Test + public void testMethodThrowsExceptionWhenFieldsIsNotSend() { + LOGGER.info("Проверим, что метод требует указания fields"); + try { + LOGGER.info("Вызовем метод в сессии пользователя"); + bindDefaultUserSession(); + LOGGER.info("Вызовем метод без указания fields"); + okApi.getGroupService().getGroupInfo(new String[]{GROUP_ID}, null); + Assert.fail("Метод не кинул ошибку при отсутствии fields"); + } catch (ApiException e) { + LOGGER.info("Получили ошибку, проверим её текст"); + Assert.assertEquals("Неверная ошибка при вызове без указания fields", ERROR_NO_FIELDS, e.getApiErrorInfo().getErrorMessage()); + } + LOGGER.info("Метод ожидает fields и кидает верную ошибку при вызове без указания fields"); + } + + /** + * 6. Проверка, что учитывается параметр fields и в ответе возвращаются только запрошенные поля + */ + @Test + public void testFieldsParam() throws ApiException { + LOGGER.info("Проверим, что учитывается параметр fields и в ответе возвращаются только запрошенные поля"); + + LOGGER.info("Вызовем метод в сессии пользователя"); + bindDefaultUserSession(); + + GroupBean[] groupBeans = okApi.getGroupService().getGroupInfo(new String[]{GROUP_ID}, new GroupBeanField[]{GroupBeanField.NAME}); + GroupBean groupBean = groupBeans[0]; + + LOGGER.info("Проверим, что в ответе есть запрошенное поле"); + Assert.assertTrue("Пустое название группы", StringUtils.isNotBlank(groupBean.getName())); + LOGGER.info("Проверим, что в ответе нет незапрошенного поля"); + Assert.assertNull("Не пустое id группы", groupBean.getUid()); + + LOGGER.info("Учитывается параметр fields и в ответе возвращаются только запрошенные поля"); + } + + /** + * 7. Проверка, что метод выбрасывает исключение при параметре move_to_top = true и более чем одной группе в параметре uids + */ + @Test + public void testMethodThrowsExceptionWhenMoveToTopAndManyOfUidsIsSend() { + LOGGER.info("Проверим, что метод выбрасывает исключение при вызове move_to_top с более чем одной группой"); + try { + LOGGER.info("Вызовем метод в сессии пользователя"); + bindDefaultUserSession(); + LOGGER.info("Вызовем метод с move_to_top и более чем одной группой"); + okApi.getGroupService().getGroupInfo(new String[]{GROUP_ID, GROUP_ID}, FIELDS, true); + Assert.fail("Метод не кинул ошибку при вызове move_to_top с более чем одной группой"); + } + catch (ApiException e) { + LOGGER.info("Получили ошибку, проверим её текст"); + Assert.assertEquals("Неверная ошибка при вызове move_to_top с более чем одной группой", + e.getApiErrorInfo().getErrorMessage(), ERROR_INCORRECT_USE_MOVE_TO_TOP); + } + LOGGER.info("Метод ожидает один uid при использовании параметра move_to_top = true и выбрасывает верную ошибку в противном случае"); } + } diff --git a/src/test/java/ru/odnoklassniki/tests/examples/TestGroupGetUserGroupsV2.java b/src/test/java/ru/odnoklassniki/tests/examples/TestGroupGetUserGroupsV2.java index f749433..490229c 100644 --- a/src/test/java/ru/odnoklassniki/tests/examples/TestGroupGetUserGroupsV2.java +++ b/src/test/java/ru/odnoklassniki/tests/examples/TestGroupGetUserGroupsV2.java @@ -5,27 +5,125 @@ import org.springframework.util.CollectionUtils; import ru.odnoklassniki.base.ApiTestBase; import ru.odnoklassniki.common.ApiException; +import ru.odnoklassniki.common.group.GroupBean; +import ru.odnoklassniki.common.group.UserGroupBean; import ru.odnoklassniki.responses.group.GroupGetUserGroupsV2Response; +import java.util.List; import java.util.logging.Logger; /** * Created by Maksim Egorichev on 5/9/18 at 4:39 PM + * + * Updated by Dmitriy Tcibisov on 5/18/18 at 15:00 PM + * + * Тесты на метод group.getUserGroupsV2 + * + * Чек-лист: + * 1. Проверка, что метод сессионный и требует указания access_token + * 2. Проверка, что метод работает без параметров (по-умолчанию) + * 3. Проверка, что метод работает при некорректном параметре count, возвращая количество групп по-умолчанию + * 4. Проверка, что метод работает при корректном параметре count, возвращая не больше групп чем указано + * ToDo: 5. Проверка, что метод получает null вместо групп при отсутствии групп у пользователя */ public class TestGroupGetUserGroupsV2 extends ApiTestBase { private static final Logger LOGGER = Logger.getLogger(TestGroupGetUserGroupsV2.class.getSimpleName()); + private static final Integer COUNT_CORRECT = 2; + private static final Integer COUNT_INCORRECT = 0; + private static final String ERROR_NO_SESSION = "PARAM : Missed required parameter: access_token"; /** - * Пример теста на метод group.getUserGroupsV2 + * 1. Проверка, что метод сессионный и требует указания access_token */ @Test - public void testGroupGetUserGroupsV2Example() throws ApiException { - LOGGER.info("Получим данные о группах пользвоателя с помощью метода group.getUserGroupsV2"); + public void testMethodThrowsExceptionWhenSessionIsNotSet() { + LOGGER.info("Проверим, что метод сессионный и требует указания access_token"); + try { + LOGGER.info("Вызовем метод без сессии"); + okApi.getGroupService().getUserGroupsV2(); + Assert.fail("Метод не кинул ошибку при отсутствии пользовательской сессии"); + } catch (ApiException e) { + LOGGER.info("Получили ошибку, проверим её текст"); + Assert.assertEquals("Неверная ошибка при вызове без сессии", ERROR_NO_SESSION, e.getApiErrorInfo().getErrorMessage()); + } + LOGGER.info("Метод сессионный и кидает верную ошибку при вызове без сессии"); + } + + /** + * 2. Проверка, что метод работает без параметров (по-умолчанию) + */ + @Test + public void testDefaultParams() throws ApiException { + LOGGER.info("Проверим, что метод работает без параметров (по-умолчанию) (пользователь с минимум одной группой)"); + LOGGER.info("Вызовем метод в сессии пользователя"); bindDefaultUserSession(); GroupGetUserGroupsV2Response groupGetUserGroupsV2Response = okApi.getGroupService().getUserGroupsV2(); + LOGGER.info("Проверим, что получили ответ"); + Assert.assertNotNull("Получили null в ответ на запрос", groupGetUserGroupsV2Response); + + LOGGER.info("Проверим, что в ответе есть группы"); + List userGroupBean = groupGetUserGroupsV2Response.getGroups(); + Assert.assertNotNull("Получили null вместо списка групп", userGroupBean); + Assert.assertFalse("Пустой список групп", CollectionUtils.isEmpty(userGroupBean)); + + LOGGER.info("Проверим, содержание ответа"); + Assert.assertNotNull("Получили null вместо anchor", groupGetUserGroupsV2Response.getAnchor()); + Assert.assertFalse("Получили пустой anchor", groupGetUserGroupsV2Response.getAnchor().isEmpty()); + + LOGGER.info("Метод работает верно при вызове без параметров (по-умолчанию)"); + } + + /** + * 3. Проверка, что метод работает при некорректном параметре count, возвращая количество групп по-умолчанию + */ + @Test + public void testIfIncorrectCountParamWhenAllGroupsReturned() throws ApiException { + LOGGER.info("Проверим, что метод работает при некорректном параметре count (пользователь с минимум одной группой)"); + LOGGER.info("Вызовем метод в сессии пользователя"); + bindDefaultUserSession(); + + Integer count = COUNT_INCORRECT; + GroupGetUserGroupsV2Response groupGetUserGroupsV2Response = okApi.getGroupService().getUserGroupsV2(count); + + LOGGER.info("Проверим, что получили ответ"); + Assert.assertNotNull("Получили null в ответ на запрос", groupGetUserGroupsV2Response); + + LOGGER.info("Проверим, что в ответе есть группы"); + List userGroupBean = groupGetUserGroupsV2Response.getGroups(); + Assert.assertNotNull("Получили null вместо списка групп", userGroupBean); + Assert.assertFalse("Пустой список групп", CollectionUtils.isEmpty(userGroupBean)); + + LOGGER.info("Проверим, что количество групп превышает указанное в параметре count (некорректном)"); + Assert.assertTrue("Получили некорректное количество групп", userGroupBean.size() > count); + + LOGGER.info("Метод работает верно при некорректном параметре count"); + } + + /** + * 4. Проверка, что метод работает при корректном параметре count, возвращая не больше групп чем указано + */ + @Test + public void testIfCorrectCountParamWhenCountOfGroupsReturned() throws ApiException { + LOGGER.info("Проверим, что метод работает при корректном параметре count (пользователь с минимум одной группой)"); + LOGGER.info("Вызовем метод в сессии пользователя"); + bindDefaultUserSession(); + + Integer count = COUNT_CORRECT; + GroupGetUserGroupsV2Response groupGetUserGroupsV2Response = okApi.getGroupService().getUserGroupsV2(count); + + LOGGER.info("Проверим, что получили ответ"); + Assert.assertNotNull("Получили null в ответ на запрос", groupGetUserGroupsV2Response); + LOGGER.info("Проверим, что в ответе есть группы"); - Assert.assertFalse("Пустой список групп", CollectionUtils.isEmpty(groupGetUserGroupsV2Response.getGroups())); + List userGroupBean = groupGetUserGroupsV2Response.getGroups(); + Assert.assertNotNull("Получили null вместо списка групп", userGroupBean); + Assert.assertFalse("Пустой список групп", CollectionUtils.isEmpty(userGroupBean)); + + LOGGER.info("Проверим, что количество групп не превышает указанное в параметре count"); + Assert.assertTrue("Получили некорректное количество групп", userGroupBean.size() <= count); + + LOGGER.info("Метод работает верно при корректном параметре count"); } } diff --git a/src/test/java/ru/odnoklassniki/tests/examples/TestUsersGetInfoBy.java b/src/test/java/ru/odnoklassniki/tests/examples/TestUsersGetInfoBy.java index 694a4c8..9e54095 100644 --- a/src/test/java/ru/odnoklassniki/tests/examples/TestUsersGetInfoBy.java +++ b/src/test/java/ru/odnoklassniki/tests/examples/TestUsersGetInfoBy.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; @@ -12,27 +13,149 @@ /** * Created by Maksim Egorichev on 5/9/18 at 4:54 PM + * + * Updated by Dmitriy Tcibisov on 5/17/18 at 9:45 PM + * + * Тесты на метод users.getInfoBy + * + * Чек-лист: + * 1. Проверка, что метод сессионный и требует указания access_token + * 2. Проверка, что метод выполняется без ошибок при корректных параметрах uid и fields + * 3. Проверка, что метод выбрасывает исключение при некорректном параметре uid + * 4. Проверка, что метод выбрасывает исключение при отсутствии обязательного параметра uid + * 5. Проверка, что метод выбрасывает исключение при отсутствии обязательного параметра fields + * 6. Проверка, что учитывается параметр fields и в ответе возвращаются только запрошенные поля */ public class TestUsersGetInfoBy extends ApiTestBase { private static final Logger LOGGER = Logger.getLogger(TestUsersGetInfoBy.class.getSimpleName()); + private static final String USER_INCORRECT_ID = "Incorrect"; private static final String USER_ID = "572071876429"; private static final String USER_NAME = "Юрий Дудь"; private static final UserInfoField[] FIELDS = UserInfoField.values(); + private static final String ERROR_NO_SESSION = "PARAM : Missed required parameter: access_token"; + private static final String ERROR_INCORRECT_UID = "PARAM_USER_ID : Invalid uid"; + private static final String ERROR_NO_UID = "PARAM : Missing required parameter uid"; + private static final String ERROR_NO_FIELDS = "PARAM : Missing required parameter fields"; /** - * Пример теста на метод users.getInfoBy + * 1. Проверка, что метод сессионный и требует указания access_token */ @Test - public void testUsersGetInfoByExample() throws ApiException { - LOGGER.info("Получим данные о другом пользователе с помощью метода users.getInfoBy"); + public void testMethodThrowsExceptionWhenSessionIsNotSet() { + 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()); + } + LOGGER.info("Метод сессионный и кидает верную ошибку при вызове без сессии"); + } + + /** + * 2. Проверка, что метод выполняется без ошибок при корректных параметрах uid и fields + */ + @Test + public void testMethodNoThrowsExceptionWhenUidAndFieldsAreCorrect() throws ApiException { + LOGGER.info("Проверим, что метод отдаёт верные данные при корректных uid и fields"); + LOGGER.info("Вызовем метод в сессии пользователя"); bindDefaultUserSession(); UsersGetInfoByResponse getInfoByResponse = okApi.getUserService().getInfoBy(USER_ID, FIELDS); + LOGGER.info("Проверим, что данные были получены"); + Assert.assertNotNull("Получили null в ответ на запрос", getInfoByResponse); + Assert.assertNotNull("Получили null вместо информации о пользователе", getInfoByResponse.getUser()); LOGGER.info("Проверим, что получили верные данные"); UserBean userBean = getInfoByResponse.getUser(); - Assert.assertNotNull("Не получили информацию о пользователе", userBean); Assert.assertEquals("Неверный ID пользователя", USER_ID, userBean.getUid()); Assert.assertEquals("Неверное имя пользователя", USER_NAME, userBean.getName()); + + LOGGER.info("Метод выполняется без ошибок и отдаёт корректные данные при введённых uid и fields"); + } + + /** + * 3. Проверка, что метод выбрасывает исключение при некорректном параметре uid + */ + @Test + public void testMethodThrowsExceptionWhenUidIsIncorrect() { + LOGGER.info("Проверим, что метод выбрасывает исключение при некорректном uid"); + try { + LOGGER.info("Вызовем метод в сессии пользователя"); + bindDefaultUserSession(); + LOGGER.info("Вызовем метод с некорректным uid"); + okApi.getUserService().getInfoBy(USER_INCORRECT_ID , FIELDS); + Assert.fail("Метод не кинул ошибку при некорректном uid"); + } + catch (ApiException e) { + LOGGER.info("Получили ошибку, проверим её текст"); + Assert.assertTrue("Неверная ошибка при вызове с некорректным uid", + e.getApiErrorInfo().getErrorMessage().startsWith(ERROR_INCORRECT_UID)); + /*Assert.assertEquals("Неверная ошибка при вызове с некорректным uid", + ERROR_INCORRECT_UID + " [" + USER_INCORRECT_ID + "]", + e.getApiErrorInfo().getErrorMessage());*/ + } + LOGGER.info("Метод ожидает корректный uid и выбрасывает верную ошибку при вызове с некорректным uid"); + } + + /** + * 4. Проверка, что метод выбрасывает исключение при отсутствии обязательного параметра uid + */ + @Test + public void testMethodThrowsExceptionWhenUidIsNotSend() { + LOGGER.info("Проверим, что метод требует указания uid"); + try { + LOGGER.info("Вызовем метод в сессии пользователя"); + bindDefaultUserSession(); + LOGGER.info("Вызовем метод без указания uid"); + okApi.getUserService().getInfoBy(null, FIELDS); + Assert.fail("Метод не кинул ошибку при отсутствии uid"); + } catch (ApiException e) { + LOGGER.info("Получили ошибку, проверим её текст"); + Assert.assertEquals("Неверная ошибка при вызове без указания uid", ERROR_NO_UID, e.getApiErrorInfo().getErrorMessage()); + } + LOGGER.info("Метод ожидает uid и кидает верную ошибку при вызове без указания uid"); + } + + /** + * 5. Проверка, что метод выбрасывает исключение при отсутствии обязательного параметра fields + */ + @Test + public void testMethodThrowsExceptionWhenFieldsIsNotSend() { + LOGGER.info("Проверим, что метод требует указания fields"); + try { + LOGGER.info("Вызовем метод в сессии пользователя"); + bindDefaultUserSession(); + LOGGER.info("Вызовем метод без указания fields"); + okApi.getUserService().getInfoBy(USER_ID, new UserInfoField[]{}); + Assert.fail("Метод не кинул ошибку при отсутствии fields"); + } catch (ApiException e) { + LOGGER.info("Получили ошибку, проверим её текст"); + Assert.assertEquals("Неверная ошибка при вызове без указания fields", ERROR_NO_FIELDS, e.getApiErrorInfo().getErrorMessage()); + } + LOGGER.info("Метод ожидает fields и кидает верную ошибку при вызове без указания fields"); + } + + /** + * 6. Проверка, что учитывается параметр fields и в ответе возвращаются только запрошенные поля + */ + @Test + public void testFieldsParam() throws ApiException { + LOGGER.info("Проверим, что учитывается параметр fields и в ответе возвращаются только запрошенные поля"); + + LOGGER.info("Вызовем метод в сессии пользователя"); + bindDefaultUserSession(); + + UsersGetInfoByResponse getInfoByResponse = okApi.getUserService().getInfoBy(USER_ID, new UserInfoField[]{UserInfoField.FIRST_NAME}); + UserBean userBean = getInfoByResponse.getUser(); + + LOGGER.info("Проверим, что в ответе есть запрошенное поле"); + Assert.assertTrue("Пустое имя пользователя", StringUtils.isNotBlank(userBean.getFirstName())); + LOGGER.info("Проверим, что в ответе нет незапрошенного поля"); + Assert.assertNull("Не пустая фамилия пользователя", userBean.getLastName()); + + LOGGER.info("Учитывается параметр fields и в ответе возвращаются только запрошенные поля"); } }