/******************************************************************************* * Copyright (c) 2015 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package com.openshift.internal.restclient.authorization; import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; import okhttp3.Headers; /** * @author Jeff Cantrill */ public class AuthorizationDetailsTest { /* * WWW-Authenticate: OAuth realm=<your_realm> * WWW-Authenticate: Basic * Link: <https://127.0.0.1:8443/oauth/token/request>; rel="related" * Warning: 199 OpenShift "You must obtain an API token by visiting https://127.0.0.1:8443/oauth/token/request" * code 401 */ private Headers.Builder builder = new Headers.Builder(); @Before public void setUp() { } @Test public void testMessageDetailsWithoutAuthorizationHeader() { givenHeader("Link", "<https://127.0.0.1:8443/oauth/token/request>; rel=\"related\""); givenHeader("Warning", "199 OpenShift \"You must obtain an API token by visiting https://127.0.0.1:8443/oauth/token/request\""); AuthorizationDetails details = whenCreatingAnAuthorizationScheme(); assertEquals("https://127.0.0.1:8443/oauth/token/request", details.getRequestTokenLink()); assertEquals("\"You must obtain an API token by visiting https://127.0.0.1:8443/oauth/token/request\"", details.getMessage()); } @Test public void testMessageDetailsWithAuthorizationHeader() { givenHeader("WWW-Authenticate", "Basic realm=\"openshift\""); givenHeader("Warning", "199 OpenShift \"You must obtain an API token by visiting https://127.0.0.1:8443/oauth/token/request\""); AuthorizationDetails details = whenCreatingAnAuthorizationScheme(); assertEquals("Basic", details.getScheme()); } private AuthorizationDetails whenCreatingAnAuthorizationScheme() { return new AuthorizationDetails(builder.build()); } private void givenHeader(String name, String value) { builder.add(name, value); } }