1 package org.pojomatic.internal;
2
3 import static org.testng.Assert.*;
4
5 import org.testng.annotations.Test;
6
7 import java.util.Collections;
8 import java.util.EnumSet;
9
10 import org.pojomatic.annotations.DefaultPojomaticPolicy;
11 import org.pojomatic.annotations.PojomaticPolicy;
12
13 public class PropertyFilterTest {
14 private static final Iterable<PojomaticPolicy> ALL_BUT_DEFAULT =
15 EnumSet.complementOf(EnumSet.of(PojomaticPolicy.DEFAULT));
16
17 @Test public void testGetRolesWithNoClassPolicy() {
18 for (PojomaticPolicy policy: ALL_BUT_DEFAULT) {
19 assertEquals(PropertyFilter.getRoles(policy, null), policy.getRoles());
20 }
21 }
22
23 @Test public void testGetRolesWithPropertyPolicyAndClassPolicy() {
24 for (PojomaticPolicy policy: ALL_BUT_DEFAULT) {
25 for (DefaultPojomaticPolicy defaultPolicy: DefaultPojomaticPolicy.values()) {
26 assertEquals(PropertyFilter.getRoles(policy, defaultPolicy), policy.getRoles());
27 }
28 }
29 }
30
31 @Test public void testGetRolesWithDefaultPropertyPolicyAndNoClassPolicy() {
32 assertEquals(PropertyFilter.getRoles(PojomaticPolicy.DEFAULT, null), PojomaticPolicy.ALL.getRoles());
33 }
34
35 @Test public void testGetRolesWithDefaultPropertyPolicyAndClassPolicy() {
36 for (DefaultPojomaticPolicy defaultPolicy: DefaultPojomaticPolicy.values()) {
37 assertEquals(PropertyFilter.getRoles(PojomaticPolicy.DEFAULT, defaultPolicy), defaultPolicy.getRoles());
38 }
39 }
40
41 @Test public void testGetRolesWithOnlyClassPolicy() {
42 for (DefaultPojomaticPolicy defaultPolicy: DefaultPojomaticPolicy.values()) {
43 assertEquals(PropertyFilter.getRoles(null, defaultPolicy), defaultPolicy.getRoles());
44 }
45 }
46
47 @Test
48 public void testGetRolesWithNoPolicy() {
49 assertEquals(PropertyFilter.getRoles(null, null), Collections.EMPTY_SET);
50 }
51
52 }