1. Project Clover database Tue Dec 20 2016 21:24:09 CET
  2. Package org.xwiki.model.reference

File DocumentReferenceTest.java

 

Code metrics

0
42
11
1
151
108
14
0.33
3.82
11
1.27

Classes

Class Line # Actions
DocumentReferenceTest 36 42 0% 14 3
0.943396294.3%
 

Contributing tests

This file is covered by 11 tests. .

Source view

1    /*
2    * See the NOTICE file distributed with this work for additional
3    * information regarding copyright ownership.
4    *
5    * This is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU Lesser General Public License as
7    * published by the Free Software Foundation; either version 2.1 of
8    * the License, or (at your option) any later version.
9    *
10    * This software is distributed in the hope that it will be useful,
11    * but WITHOUT ANY WARRANTY; without even the implied warranty of
12    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13    * Lesser General Public License for more details.
14    *
15    * You should have received a copy of the GNU Lesser General Public
16    * License along with this software; if not, write to the Free
17    * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
18    * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
19    */
20    package org.xwiki.model.reference;
21   
22    import java.util.Arrays;
23    import java.util.List;
24    import java.util.Locale;
25   
26    import org.junit.Assert;
27    import org.junit.Test;
28    import org.xwiki.model.EntityType;
29   
30    /**
31    * Unit tests for {@link org.xwiki.model.reference.DocumentReference}.
32    *
33    * @version $Id: 9b155afa5e90d8af711abc97024775ab4fb1b106 $
34    * @since 2.2M1
35    */
 
36    public class DocumentReferenceTest
37    {
 
38  1 toggle @Test
39    public void testConstructors()
40    {
41  1 DocumentReference reference = new DocumentReference("wiki", "space", "page");
42  1 Assert.assertEquals(reference, new DocumentReference(new EntityReference("page", EntityType.DOCUMENT,
43    new EntityReference("space", EntityType.SPACE, new EntityReference("wiki", EntityType.WIKI, null)))));
44  1 Assert.assertEquals(reference, new DocumentReference("wiki", Arrays.asList("space"), "page"));
45  1 Assert.assertEquals(reference, new DocumentReference("page", new SpaceReference("space", new WikiReference(
46    "wiki"))));
47    }
48   
 
49  1 toggle @Test
50    public void testInvalidType()
51    {
52  1 try {
53  1 new DocumentReference(new EntityReference("page", EntityType.SPACE));
54  0 Assert.fail("Should have thrown an exception here");
55    } catch (IllegalArgumentException expected) {
56  1 Assert.assertEquals("Invalid type [SPACE] for a document reference", expected.getMessage());
57    }
58    }
59   
 
60  1 toggle @Test
61    public void testInvalidNullParent()
62    {
63  1 try {
64  1 new DocumentReference("page", null);
65  0 Assert.fail("Should have thrown an exception here");
66    } catch (IllegalArgumentException expected) {
67  1 Assert.assertEquals("Invalid parent reference [null] in a document reference", expected.getMessage());
68    }
69    }
70   
 
71  1 toggle @Test
72    public void testInvalidParentType()
73    {
74  1 try {
75  1 new DocumentReference(new EntityReference("page", EntityType.DOCUMENT, new WikiReference("wiki")));
76  0 Assert.fail("Should have thrown an exception here");
77    } catch (IllegalArgumentException expected) {
78  1 Assert.assertEquals("Invalid parent reference [Wiki wiki] in a document reference", expected.getMessage());
79    }
80    }
81   
 
82  1 toggle @Test
83    public void testConstructorIsolation()
84    {
85  1 DocumentReference reference = new DocumentReference("wiki", "space", "page");
86  1 EntityReference spaceReference = reference.getParent();
87   
88    // Verify that create a new reference based on an existing one doesn't modify the existing one in any manner.
89  1 new DocumentReference(reference.getWikiReference().getName(), reference.getLastSpaceReference().getName(),
90    reference.getName());
91    }
92   
 
93  1 toggle @Test
94    public void testGetWikiReference()
95    {
96  1 DocumentReference reference = new DocumentReference("wiki", "space", "page");
97  1 Assert.assertEquals(new WikiReference("wiki"), reference.getWikiReference());
98    }
99   
 
100  1 toggle @Test
101    public void testGetLastSpaceReferenceWhenOneSpace()
102    {
103  1 DocumentReference documentReference = new DocumentReference("wiki", "space", "page");
104  1 SpaceReference spaceReference = documentReference.getLastSpaceReference();
105  1 Assert.assertEquals(new SpaceReference("space", new WikiReference("wiki")), spaceReference);
106    }
107   
 
108  1 toggle @Test
109    public void testGetLastSpaceReferenceWhenMultipleSpaces()
110    {
111  1 DocumentReference reference = new DocumentReference("wiki", Arrays.asList("space1", "space2"), "page");
112  1 Assert.assertEquals(new SpaceReference("space2", new SpaceReference("space1", new WikiReference("wiki"))),
113    reference.getLastSpaceReference());
114    }
115   
 
116  1 toggle @Test
117    public void testSpaceReferences()
118    {
119  1 DocumentReference reference1 = new DocumentReference("wiki", "space", "page");
120  1 List<SpaceReference> spaceRefs = reference1.getSpaceReferences();
121  1 Assert.assertEquals(1, spaceRefs.size());
122  1 Assert.assertEquals(new SpaceReference("space", new WikiReference("wiki")), spaceRefs.get(0));
123   
124  1 DocumentReference reference2 = new DocumentReference("wiki", Arrays.asList("space1", "space2"), "page");
125  1 List<SpaceReference> spaceRefs2 = reference2.getSpaceReferences();
126  1 Assert.assertEquals(2, spaceRefs2.size());
127  1 Assert.assertEquals(new SpaceReference("space1", new WikiReference("wiki")), spaceRefs2.get(0));
128  1 Assert.assertEquals(new SpaceReference("space2", new SpaceReference("space1", new WikiReference("wiki"))),
129    spaceRefs2.get(1));
130    }
131   
 
132  1 toggle @Test
133    public void testToString()
134    {
135  1 DocumentReference reference1 = new DocumentReference("wiki", "space", "page");
136  1 Assert.assertEquals("wiki:space.page", reference1.toString());
137   
138  1 DocumentReference reference2 = new DocumentReference("wiki", "space", "page", Locale.FRANCE);
139  1 Assert.assertEquals("wiki:space.page(fr_FR)", reference2.toString());
140   
141  1 DocumentReference reference3 = new DocumentReference("wiki", "space", "page", "en");
142  1 Assert.assertEquals("wiki:space.page(en)", reference3.toString());
143    }
144   
 
145  1 toggle @Test
146    public void testCreateDocumentReferenceFromLocalDocumentReference()
147    {
148  1 Assert.assertEquals("wiki:space.page", new DocumentReference(new LocalDocumentReference("space", "page"),
149    new WikiReference("wiki")).toString());
150    }
151    }