Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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);
Expand All @@ -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());
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -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> 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> 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()));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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);
Expand All @@ -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());
}
}

}
8 changes: 4 additions & 4 deletions src/test/resources/project.properties
Original file line number Diff line number Diff line change
@@ -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
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Пароли, ключи и сессионные данные лучше в гит не заливать.

user.session.secret.key=098b66fb57faebc49d0ae105e3d773ad

# HttpClient settings
http.client.timeout=15000
Expand Down