package com.github.jreddit.oauth.param;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertTrue;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.runners.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class)
public class RedditScopeBuilderTest {
RedditScopeBuilder builder;
@Before
public void setup() {
builder = new RedditScopeBuilder();
}
@Test
public void testEmpty() {
assertEquals("", builder.build());
}
@Test
public void testAddRemove() {
builder.addScope(RedditScope.EDIT);
builder.removeScope(RedditScope.EDIT);
assertEquals("", builder.build());
}
@Test
public void testAddRemoveMultiple() {
builder.addScopes(RedditScope.EDIT, RedditScope.MODPOSTS);
builder.removeScopes(RedditScope.EDIT, RedditScope.MODPOSTS, RedditScope.MODCONFIG);
assertEquals("", builder.build());
}
@Test
public void testAdd() {
builder.addScope(RedditScope.EDIT);
assertEquals(RedditScope.EDIT.value(), builder.build());
builder.removeScope(RedditScope.EDIT);
}
@Test
public void testAddDouble() {
builder.addScopes(RedditScope.EDIT, RedditScope.EDIT);
builder.addScope(RedditScope.EDIT);
assertEquals(RedditScope.EDIT.value(), builder.build());
builder.removeScope(RedditScope.EDIT);
assertEquals("", builder.build());
}
@Test
public void testAddMultiple() {
builder.addScopes(RedditScope.EDIT, RedditScope.FLAIR);
assertTrue(
(RedditScope.EDIT.value() + RedditScope.SEPARATOR + RedditScope.FLAIR.value()).equals(builder.build())
||
(RedditScope.FLAIR.value() + RedditScope.SEPARATOR + RedditScope.EDIT.value()).equals(builder.build())
);
builder.removeScopes(RedditScope.EDIT, RedditScope.FLAIR);
}
}