очень, очень тру

топ 100 блогов jdevelop02.04.2012 задачка для TDD:

    @Override
    public String authenticate(String token) {
        Resty resty = new Resty();
        try {
            return (String) resty.json("https://www.googleapis.com/userinfo/email?alt=json&access_token=" + token).
                    get("data.email");
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }


как вы его протестируете? я так подозреваю, что "вынести чота куда-то", "сделать интерфейсов" етц.

public class GmailAuthenticationProviderTest {

    @Mocked(methods = "json(String)")
    Resty resty;

    @Test
    public void testAuthenticate() throws Exception {

        final String data = "{\n" +
                " \"data\": {\n" +
                "  \"email\": \"mycool@email.com\",\n" +
                "  \"isVerified\": true\n" +
                " }\n" +
                "}";

        final InputStream dataStream = new ByteArrayInputStream(data.getBytes());

        new Expectations() {{
            resty.json("https://www.googleapis.com/userinfo/email?alt=json&access_token=123");
            result = new JSONResource() {
                {
                    inputStream = dataStream;
                }
            };
        }};

        AuthentiationProvider ap = new GmailAuthenticationProvider();
        assertEquals("mycool@email.com", ap.authenticate("123"));
    }

}


итого - это круто, круто, круто, круто!

Оставить комментарий

Архив записей в блогах:
Ради обеспечения долгоэданного единства расколотого российского народа небольшую, но своевременную переделку неактуального монумента Мухиной "Рабочий и колхозница": Объявлятся конкурс на новое ...
Доброе утро, друзья! С пятницей!) Скажите пожалуйста, а какую бы вы хотели работу, если бы могли выбирать? По стабильному графику или в свободном режиме, в офисе, в движении или дома? в линейном подчинении или в проекте? ...
Мороз и солнце, день чудесный! (С) Нет, день чудесный, конечно, если смотреть на него из окна тёплой квартиры. Потому что на градуснике всего плюс три! Вчера днём было плюс восемнадцать, но к вечеру подул очень холодный, ледяной ветер и температура стала стремительно падать. И вот ...
С наступившими всех выходными и с добрым утром!)) Вкусного всем времяпровождения!)) Добавляйтесь в друзья и подписывайтесь на обновления. ...
После Качи-Кальона я полез в Алимову балку. Полез, потому что это не очень широкое ущелье между двумя горами, и дорога туда крутовата. За те пятнадцать лет, что я здесь не был, Алимова балка сильно похорошела и оцивилизовалась. Тут поставили информационные щиты, наверху соорудили беседки ...