Package ru.aristar.jnuget

Source Code of ru.aristar.jnuget.NugetContextTest

package ru.aristar.jnuget;

import java.net.URI;
import java.net.URISyntaxException;
import javax.security.auth.Subject;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import org.junit.Test;
import ru.aristar.jnuget.security.Role;
import ru.aristar.jnuget.security.RolePrincipal;

/**
* @author sviridov тесты контекста NuGet
*/
public class NugetContextTest {

    /**
     * Проверка того, находится ли пользователь в роли
     *
     * @throws URISyntaxException ошибка синтаксиса тестового URI
     */
    @Test
    public void testIsUserInRole() throws URISyntaxException {
        //GIVEN
        URI uri = new URI("http", "localhost", "/nuget", null);
        TestNugetContext nugetContext = new TestNugetContext(uri);
        Subject subject = new Subject();
        subject.getPrincipals().add(new RolePrincipal(Role.Administrator));
        nugetContext.setSubject(subject);
        //THEN
        assertThat(nugetContext.isUserInRole(Role.Administrator), is(equalTo(true)));
        assertThat(nugetContext.isUserInRole(Role.Push), is(equalTo(true)));
        assertThat(nugetContext.isUserInRole(Role.GuiUser), is(equalTo(true)));
    }

    /**
     * Класс контекста с открытой установкой пользователя
     */
    private class TestNugetContext extends NugetContext {

        /**
         * @param rootUri коневой URI приложения
         */
        public TestNugetContext(URI rootUri) {
            super(rootUri);
        }

        /**
         * @param subject праметры авторизации пользователя
         */
        public void setSubject(Subject subject) {
            this.subject = subject;
        }
    }
}
TOP

Related Classes of ru.aristar.jnuget.NugetContextTest

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.