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