package com.hannesdorfmann.fragmentargs.processor; import java.util.HashSet; import java.util.Set; import javax.lang.model.element.Element; import javax.lang.model.element.Modifier; import junit.framework.Assert; import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; /** * @author Hannes Dorfmann */ public class CompareModifierUtilsTest { Element a, b; Set<Modifier> aModifiers, bModifiers; @Before public void init() { a = Mockito.mock(Element.class); b = Mockito.mock(Element.class); aModifiers = new HashSet<Modifier>(); bModifiers = new HashSet<Modifier>(); Mockito.doReturn(aModifiers).when(a).getModifiers(); Mockito.doReturn(bModifiers).when(b).getModifiers(); } @Test public void aPublicBnot() { aModifiers.add(Modifier.PUBLIC); bModifiers.add(Modifier.PRIVATE); Assert.assertEquals(-1, ModifierUtils.compareModifierVisibility(a, b)); } @Test public void aDefaultBnot() { bModifiers.add(Modifier.PRIVATE); Assert.assertEquals(-1, ModifierUtils.compareModifierVisibility(a, b)); } @Test public void aProtectedBnot() { aModifiers.add(Modifier.PROTECTED); bModifiers.add(Modifier.PRIVATE); Assert.assertEquals(-1, ModifierUtils.compareModifierVisibility(a, b)); } @Test public void bPublicAnot() { bModifiers.add(Modifier.PUBLIC); aModifiers.add(Modifier.PRIVATE); Assert.assertEquals(1, ModifierUtils.compareModifierVisibility(a, b)); } @Test public void bDefaultAnot() { aModifiers.add(Modifier.PRIVATE); Assert.assertEquals(1, ModifierUtils.compareModifierVisibility(a, b)); } @Test public void bProtectedAnot() { aModifiers.add(Modifier.PRIVATE); bModifiers.add(Modifier.PROTECTED); Assert.assertEquals(1, ModifierUtils.compareModifierVisibility(a, b)); } @Test public void samePrivate() { aModifiers.add(Modifier.PRIVATE); bModifiers.add(Modifier.PRIVATE); Assert.assertEquals(0, ModifierUtils.compareModifierVisibility(a, b)); } @Test public void sameProtected() { aModifiers.add(Modifier.PRIVATE); bModifiers.add(Modifier.PRIVATE); Assert.assertEquals(0, ModifierUtils.compareModifierVisibility(a, b)); } @Test public void sameDefault() { Assert.assertEquals(0, ModifierUtils.compareModifierVisibility(a, b)); } @Test public void samePublic() { aModifiers.add(Modifier.PUBLIC); bModifiers.add(Modifier.PUBLIC); Assert.assertEquals(0, ModifierUtils.compareModifierVisibility(a, b)); } }