Package org.mule.security.oauth

Source Code of org.mule.security.oauth.OAuth1ManagerTestCase$TestOAuth1Manager

/*
* Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*/
package org.mule.security.oauth;

import oauth.signpost.OAuthConsumer;
import oauth.signpost.basic.DefaultOAuthConsumer;
import oauth.signpost.signature.AuthorizationHeaderSigningStrategy;
import oauth.signpost.signature.HmacSha1MessageSigner;
import oauth.signpost.signature.OAuthMessageSigner;
import oauth.signpost.signature.SigningStrategy;

import org.mule.api.context.MuleContextAware;
import org.mule.api.lifecycle.Disposable;
import org.mule.api.lifecycle.Initialisable;
import org.mule.api.lifecycle.Startable;
import org.mule.api.lifecycle.Stoppable;
import org.mule.common.security.oauth.exception.NotAuthorizedException;
import org.mule.security.oauth.callback.RestoreAccessTokenCallback;
import org.mule.tck.size.SmallTest;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.Spy;
import org.mockito.runners.MockitoJUnitRunner;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@SmallTest
@RunWith(MockitoJUnitRunner.class)
public class OAuth1ManagerTestCase
{

    @Spy
    private TestOAuth1Manager manager = new TestOAuth1Manager();

    @Mock(extraInterfaces = {Initialisable.class, Startable.class, Stoppable.class, Disposable.class,
        MuleContextAware.class})
    private OAuth1Adapter adapter = null;

    @Mock
    private OAuthConsumer consumer;

    @Before
    public void setUp() throws Exception
    {
        Mockito.when(this.adapter.getConsumer()).thenReturn(this.consumer);
    }

    @Test
    public void restoreTokenWithCallback()
    {
        RestoreAccessTokenCallback callback = Mockito.mock(RestoreAccessTokenCallback.class);
        Mockito.when(this.adapter.getOauthRestoreAccessToken()).thenReturn(callback);
        final String accessToken = "accessToken";
        Mockito.when(callback.getAccessToken()).thenReturn(accessToken);

        Assert.assertTrue(this.manager.restoreAccessToken(this.adapter));

        Mockito.verify(callback).restoreAccessToken();
        Mockito.verify(adapter).setAccessToken(Mockito.eq(accessToken));
    }

    @Test
    public void restoreTokenWithoutCallback()
    {
        Assert.assertFalse(this.manager.restoreAccessToken(this.adapter));
    }

    @Test
    public void reset()
    {
        this.manager.reset(this.adapter);
        Mockito.verify(this.adapter).setAccessToken(null);
        Mockito.verify(this.adapter).setAccessTokenSecret(null);
        Mockito.verify(this.consumer).setTokenWithSecret(null, null);
    }

    @Test
    public void newConsumer()
    {
        Mockito.reset(this.adapter);

        final String consumerKey = "consumerKey";
        final String consumerSecret = "consumerSecret";
        final OAuthMessageSigner signer = new HmacSha1MessageSigner();
        final SigningStrategy signingStrategy = new AuthorizationHeaderSigningStrategy();

        Mockito.when(this.adapter.getConsumerKey()).thenReturn(consumerKey);
        Mockito.when(this.adapter.getConsumerSecret()).thenReturn(consumerSecret);
        Mockito.when(this.adapter.getSigningStrategy()).thenReturn(signingStrategy);
        Mockito.when(this.adapter.getMessageSigner()).thenReturn(signer);

        DefaultOAuthConsumer consumer = (DefaultOAuthConsumer) this.manager.getConsumer(this.adapter);

        Assert.assertEquals(consumer.getConsumerKey(), consumerKey);
        Assert.assertEquals(consumer.getConsumerSecret(), consumerSecret);

        Mockito.verify(this.adapter).setConsumer(consumer);
    }

    @Test(expected = NotAuthorizedException.class)
    public void notAuthorized() throws Exception
    {
        this.manager.hasBeenAuthorized(adapter);
        Mockito.verify(this.adapter, Mockito.times(2)).getAccessToken();
    }

    @Test
    public void authorizhedWithoutRestore() throws Exception
    {
        Mockito.when(this.adapter.getAccessToken()).thenReturn("accessToken");
        this.manager.hasBeenAuthorized(this.adapter);
    }

    @Test
    public void authorizeWithRestore() throws Exception
    {
        Mockito.when(this.adapter.getAccessToken()).thenReturn(null).thenReturn("accessToken");
        this.manager.hasBeenAuthorized(this.adapter);
    }
   
    private class TestOAuth1Manager extends BaseOAuth1Manager
    {

        private Logger logger = LoggerFactory.getLogger(TestOAuth1Manager.class);

        @Override
        protected Logger getLogger()
        {
            return this.logger;
        }

    }
}
TOP

Related Classes of org.mule.security.oauth.OAuth1ManagerTestCase$TestOAuth1Manager

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.