1 package com.atlassian.plugins.rest.common.expand;
2
3 import static org.junit.Assert.*;
4 import com.atlassian.plugins.rest.common.expand.parameter.DefaultExpandParameter;
5 import com.google.common.collect.Lists;
6 import org.junit.Before;
7 import org.junit.Test;
8
9 import javax.xml.bind.annotation.XmlAttribute;
10
11 public class SelfExpandingTest
12 {
13 private EntityCrawler entityCrawler;
14
15 @Before
16 public void setUp()
17 {
18 entityCrawler = new EntityCrawler();
19 }
20
21 @Test
22 public void testSelfExpanding()
23 {
24 final SomeClass someClass = new SomeClass();
25 assertFalse(someClass.expandable.isExpanded());
26 entityCrawler.crawl(
27 someClass,
28 new DefaultExpandParameter(Lists.newArrayList("*")),
29 new SelfExpandingExpander.Resolver());
30 assertTrue(someClass.expandable.isExpanded());
31 }
32
33 public static class SomeClass
34 {
35 @Expandable
36 public final SomeExpandableEntity expandable = new SomeExpandableEntity();
37 }
38
39 public static class SomeExpandableEntity implements SelfExpanding
40 {
41 @XmlAttribute
42 private String expand;
43 private boolean expanded = false;
44
45 public void expand()
46 {
47 expanded = true;
48 }
49
50 public boolean isExpanded()
51 {
52 return expanded;
53 }
54 }
55 }