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

File ExplicitStringEntityReferenceResolverTest.java

 

Code metrics

0
41
8
1
146
106
11
0.27
5.12
8
1.38

Classes

Class Line # Actions
ExplicitStringEntityReferenceResolverTest 42 41 0% 11 3
0.9387755493.9%
 

Contributing tests

This file is covered by 7 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.internal.reference;
21   
22    import org.junit.Assert;
23    import org.junit.Before;
24    import org.junit.Rule;
25    import org.junit.Test;
26    import org.xwiki.model.EntityType;
27    import org.xwiki.model.reference.DocumentReference;
28    import org.xwiki.model.reference.EntityReference;
29    import org.xwiki.model.reference.EntityReferenceResolver;
30    import org.xwiki.test.annotation.ComponentList;
31    import org.xwiki.test.mockito.MockitoComponentMockingRule;
32   
33    /**
34    * Unit tests for {@link org.xwiki.model.internal.reference.ExplicitStringEntityReferenceResolver}.
35    *
36    * @version $Id: 6496049a8d1874b7472b28814351bca564d5563b $
37    * @since 2.2.3
38    */
39    @ComponentList({
40    DefaultSymbolScheme.class
41    })
 
42    public class ExplicitStringEntityReferenceResolverTest
43    {
44    @Rule
45    public MockitoComponentMockingRule<ExplicitStringEntityReferenceResolver> mocker =
46    new MockitoComponentMockingRule<>(ExplicitStringEntityReferenceResolver.class);
47   
48    private EntityReferenceResolver<String> resolver;
49   
 
50  7 toggle @Before
51    public void setUp() throws Exception
52    {
53  7 this.resolver = this.mocker.getComponentUnderTest();
54    }
55   
 
56  1 toggle @Test
57    public void resolveWithExplicitDocumentReference()
58    {
59  1 EntityReference reference =
60    this.resolver.resolve("", EntityType.DOCUMENT, new DocumentReference("wiki", "space", "page"));
61   
62  1 Assert.assertEquals("page", reference.getName());
63  1 Assert.assertEquals(EntityType.DOCUMENT, reference.getType());
64  1 Assert.assertEquals("space", reference.getParent().getName());
65  1 Assert.assertEquals(EntityType.SPACE, reference.getParent().getType());
66  1 Assert.assertEquals("wiki", reference.getParent().getParent().getName());
67  1 Assert.assertEquals(EntityType.WIKI, reference.getParent().getParent().getType());
68    }
69   
 
70  1 toggle @Test
71    public void resolveWithExplicitEntityReference()
72    {
73  1 EntityReference reference =
74    this.resolver.resolve("space.page", EntityType.DOCUMENT, new EntityReference("wiki", EntityType.WIKI));
75   
76  1 Assert.assertEquals("page", reference.getName());
77  1 Assert.assertEquals(EntityType.DOCUMENT, reference.getType());
78  1 Assert.assertEquals("space", reference.getParent().getName());
79  1 Assert.assertEquals(EntityType.SPACE, reference.getParent().getType());
80  1 Assert.assertEquals("wiki", reference.getParent().getParent().getName());
81  1 Assert.assertEquals(EntityType.WIKI, reference.getParent().getParent().getType());
82    }
83   
 
84  1 toggle @Test
85    public void resolveWithAbsoluteReferenceAndNoExplicitReference()
86    {
87  1 EntityReference reference = this.resolver.resolve("wiki:space.page", EntityType.DOCUMENT);
88   
89  1 Assert.assertEquals("page", reference.getName());
90  1 Assert.assertEquals(EntityType.DOCUMENT, reference.getType());
91  1 Assert.assertEquals("space", reference.getParent().getName());
92  1 Assert.assertEquals(EntityType.SPACE, reference.getParent().getType());
93  1 Assert.assertEquals("wiki", reference.getParent().getParent().getName());
94  1 Assert.assertEquals(EntityType.WIKI, reference.getParent().getParent().getType());
95    }
96   
 
97  1 toggle @Test
98    public void resolveWithExplicitReferenceWithHoles()
99    {
100  1 EntityReference reference = this.resolver.resolve("space.page", EntityType.DOCUMENT,
101    new EntityReference("page", EntityType.DOCUMENT, new EntityReference("wiki", EntityType.WIKI)));
102   
103  1 Assert.assertEquals("page", reference.getName());
104  1 Assert.assertEquals(EntityType.DOCUMENT, reference.getType());
105  1 Assert.assertEquals("space", reference.getParent().getName());
106  1 Assert.assertEquals(EntityType.SPACE, reference.getParent().getType());
107  1 Assert.assertEquals("wiki", reference.getParent().getParent().getName());
108  1 Assert.assertEquals(EntityType.WIKI, reference.getParent().getParent().getType());
109    }
110   
 
111  1 toggle @Test
112    public void resolveWithNoExplicitAndPartialReference()
113    {
114  1 try {
115  1 this.resolver.resolve("", EntityType.DOCUMENT);
116  0 Assert.fail("Should have raised an exception");
117    } catch (IllegalArgumentException expected) {
118  1 Assert.assertEquals("The resolver parameter doesn't contain an Entity Reference of type [DOCUMENT]",
119    expected.getMessage());
120    }
121    }
122   
 
123  1 toggle @Test
124    public void resolveWithInvalidParameterType()
125    {
126  1 try {
127  1 this.resolver.resolve("", EntityType.DOCUMENT, "wrong type");
128  0 Assert.fail("Should have raised an exception");
129    } catch (IllegalArgumentException expected) {
130  1 Assert.assertEquals("The resolver parameter doesn't contain an Entity Reference of type [DOCUMENT]",
131    expected.getMessage());
132    }
133    }
134   
 
135  1 toggle @Test
136    public void resolveWithIncompleteExplicitReference()
137    {
138  1 try {
139  1 this.resolver.resolve("", EntityType.DOCUMENT, new EntityReference("wiki", EntityType.WIKI));
140  0 Assert.fail("Should have raised an exception");
141    } catch (IllegalArgumentException expected) {
142  1 Assert.assertEquals("The resolver parameter doesn't contain an Entity Reference of type [DOCUMENT]",
143    expected.getMessage());
144    }
145    }
146    }