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

File CurrentStringEntityReferenceResolverTest.java

 

Code metrics

0
40
7
1
154
102
7
0.17
5.71
7
1

Classes

Class Line # Actions
CurrentStringEntityReferenceResolverTest 48 40 0% 7 0
1.0100%
 

Contributing tests

This file is covered by 6 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 com.xpn.xwiki.internal.model.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.internal.DefaultModelConfiguration;
28    import org.xwiki.model.internal.reference.DefaultSymbolScheme;
29    import org.xwiki.model.reference.DocumentReference;
30    import org.xwiki.model.reference.EntityReference;
31    import org.xwiki.model.reference.EntityReferenceResolver;
32    import org.xwiki.test.annotation.ComponentList;
33   
34    import com.xpn.xwiki.doc.XWikiDocument;
35    import com.xpn.xwiki.test.MockitoOldcoreRule;
36   
37    /**
38    * Unit tests for {@link CurrentStringEntityReferenceResolver}.
39    *
40    * @version $Id: 90bac0682507923920040d3f5e28baecfa5a2fb8 $
41    */
42    @ComponentList(value = {
43    CurrentEntityReferenceProvider.class,
44    CurrentStringEntityReferenceResolver.class,
45    DefaultModelConfiguration.class,
46    DefaultSymbolScheme.class
47    })
 
48    public class CurrentStringEntityReferenceResolverTest
49    {
50    @Rule
51    public MockitoOldcoreRule oldcore = new MockitoOldcoreRule();
52   
53    private static final String CURRENT_WIKI = "currentwiki";
54   
55    private static final String CURRENT_SPACE = "currentspace";
56   
57    private static final String CURRENT_PAGE = "currentpage";
58   
59    private static final String CURRENTDOC_SPACE = "currentdocspace";
60   
61    private static final String CURRENTDOC_PAGE = "currentdocpage";
62   
63    private EntityReferenceResolver<String> resolver;
64   
 
65  6 toggle @Before
66    public void before() throws Exception
67    {
68  6 this.oldcore.getXWikiContext().setWikiId(CURRENT_WIKI);
69   
70  6 this.resolver = this.oldcore.getMocker().getInstance(EntityReferenceResolver.TYPE_STRING, "current");
71    }
72   
 
73  1 toggle @Test
74    public void testResolveDocumentReferenceWhenNoContextWiki() throws Exception
75    {
76  1 this.oldcore.getXWikiContext().setWikiId(null);
77   
78  1 EntityReference reference = resolver.resolve("", EntityType.DOCUMENT);
79   
80  1 Assert.assertEquals("xwiki", reference.extractReference(EntityType.WIKI).getName());
81  1 Assert.assertEquals("Main", reference.extractReference(EntityType.SPACE).getName());
82  1 Assert.assertEquals("WebHome", reference.getName());
83    }
84   
 
85  1 toggle @Test
86    public void testResolveDocumentReferenceWhenNoContextDocument() throws Exception
87    {
88  1 this.oldcore.getXWikiContext().setWikiId(null);
89  1 this.oldcore.getXWikiContext().setDoc(null);
90   
91  1 EntityReference reference = resolver.resolve("", EntityType.DOCUMENT);
92   
93  1 Assert.assertEquals("xwiki", reference.extractReference(EntityType.WIKI).getName());
94  1 Assert.assertEquals("Main", reference.extractReference(EntityType.SPACE).getName());
95  1 Assert.assertEquals("WebHome", reference.getName());
96    }
97   
 
98  1 toggle @Test
99    public void testResolveDocumentReferenceWhenContextDocument() throws Exception
100    {
101  1 this.oldcore.getXWikiContext().setDoc(
102    new XWikiDocument(new DocumentReference(CURRENT_WIKI, CURRENTDOC_SPACE, CURRENTDOC_PAGE)));
103   
104  1 EntityReference reference = resolver.resolve("", EntityType.DOCUMENT);
105   
106  1 Assert.assertEquals(CURRENT_WIKI, reference.extractReference(EntityType.WIKI).getName());
107  1 Assert.assertEquals(CURRENTDOC_SPACE, reference.extractReference(EntityType.SPACE).getName());
108  1 Assert.assertEquals(CURRENTDOC_PAGE, reference.getName());
109    }
110   
 
111  1 toggle @Test
112    public void testResolveAttachmentReference() throws Exception
113    {
114  1 this.oldcore.getXWikiContext().setDoc(
115    new XWikiDocument(new DocumentReference(CURRENT_WIKI, CURRENTDOC_SPACE, CURRENTDOC_PAGE)));
116   
117  1 EntityReference reference = resolver.resolve("", EntityType.ATTACHMENT);
118   
119  1 Assert.assertEquals(CURRENT_WIKI, reference.extractReference(EntityType.WIKI).getName());
120  1 Assert.assertEquals(CURRENTDOC_SPACE, reference.extractReference(EntityType.SPACE).getName());
121  1 Assert.assertEquals(CURRENTDOC_PAGE, reference.extractReference(EntityType.DOCUMENT).getName());
122  1 Assert.assertEquals("filename", reference.getName());
123    }
124   
 
125  1 toggle @Test
126    public void testResolveAttachmentReferenceWhenMissingParentsAndNoContextDocument()
127    {
128  1 EntityReference reference = resolver.resolve("filename", EntityType.ATTACHMENT);
129   
130  1 Assert.assertEquals("WebHome", reference.getParent().getName());
131  1 Assert.assertEquals(EntityType.DOCUMENT, reference.getParent().getType());
132  1 Assert.assertEquals("Main", reference.getParent().getParent().getName());
133  1 Assert.assertEquals(EntityType.SPACE, reference.getParent().getParent().getType());
134  1 Assert.assertEquals(CURRENT_WIKI, reference.getParent().getParent().getParent().getName());
135  1 Assert.assertEquals(EntityType.WIKI, reference.getParent().getParent().getParent().getType());
136    }
137   
 
138  1 toggle @Test
139    public void testResolveAttachmentReferenceWhenMissingParentsAndContextDocument()
140    {
141  1 this.oldcore.getXWikiContext().setWikiId(CURRENT_WIKI);
142  1 this.oldcore.getXWikiContext().setDoc(
143    new XWikiDocument(new DocumentReference("docwiki", CURRENT_SPACE, CURRENT_PAGE)));
144   
145  1 EntityReference reference = resolver.resolve("filename", EntityType.ATTACHMENT);
146   
147  1 Assert.assertEquals(CURRENT_PAGE, reference.getParent().getName());
148  1 Assert.assertEquals(EntityType.DOCUMENT, reference.getParent().getType());
149  1 Assert.assertEquals(CURRENT_SPACE, reference.getParent().getParent().getName());
150  1 Assert.assertEquals(EntityType.SPACE, reference.getParent().getParent().getType());
151  1 Assert.assertEquals(CURRENT_WIKI, reference.getParent().getParent().getParent().getName());
152  1 Assert.assertEquals(EntityType.WIKI, reference.getParent().getParent().getParent().getType());
153    }
154    }