This is an automated email from the ASF dual-hosted git repository. juanpablo pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/jspwiki.git
commit fc5044b32532c663d6665505b9b6e9cf9422aa52 Author: juanpablo <[email protected]> AuthorDate: Tue Mar 31 19:22:43 2020 +0200 add some unit tests --- .../org/apache/wiki/api/core/ContextEnumTest.java | 36 +++++++++++++ .../api/filters/FilterSupportOperationsTest.java | 34 ++++++++++++ .../apache/wiki/api/filters/PageFilterTest.java | 39 ++++++++++++++ .../apache/wiki/api/filters/TestPageFilter.java | 24 +++++++++ .../org/apache/wiki/api/spi/AclsSPITestImpl.java | 19 +++++++ .../apache/wiki/api/spi/ContentsSPITestImpl.java | 20 ++++++++ .../apache/wiki/api/spi/ContextSPITestImpl.java | 33 ++++++++++++ .../org/apache/wiki/api/spi/EngineSPITestImpl.java | 15 ++++++ .../apache/wiki/api/spi/SessionSPITestImpl.java | 25 +++++++++ .../java/org/apache/wiki/api/spi/WikiTest.java | 60 ++++++++++++++++++++++ .../services/org.apache.wiki.api.spi.AclsSPI | 1 + .../services/org.apache.wiki.api.spi.ContentsSPI | 1 + .../services/org.apache.wiki.api.spi.ContextSPI | 1 + .../services/org.apache.wiki.api.spi.EngineSPI | 1 + .../services/org.apache.wiki.api.spi.SessionSPI | 1 + .../src/test/resources/ini/jspwiki.properties | 5 ++ 16 files changed, 315 insertions(+) diff --git a/jspwiki-api/src/test/java/org/apache/wiki/api/core/ContextEnumTest.java b/jspwiki-api/src/test/java/org/apache/wiki/api/core/ContextEnumTest.java new file mode 100644 index 0000000..51a16ea --- /dev/null +++ b/jspwiki-api/src/test/java/org/apache/wiki/api/core/ContextEnumTest.java @@ -0,0 +1,36 @@ +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + */ +package org.apache.wiki.api.core; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + + +public class ContextEnumTest { + + @Test + public void testEnumData() { + Assertions.assertEquals( 27, ContextEnum.values().length ); + + Assertions.assertEquals( "view", ContextEnum.PAGE_VIEW.getRequestContext() ); + Assertions.assertEquals( "%uWiki.jsp?page=%n", ContextEnum.PAGE_VIEW.getUrlPattern() ); + Assertions.assertEquals( "PageContent.jsp", ContextEnum.PAGE_VIEW.getContentTemplate() ); + } + +} diff --git a/jspwiki-api/src/test/java/org/apache/wiki/api/filters/FilterSupportOperationsTest.java b/jspwiki-api/src/test/java/org/apache/wiki/api/filters/FilterSupportOperationsTest.java new file mode 100644 index 0000000..bf4478d --- /dev/null +++ b/jspwiki-api/src/test/java/org/apache/wiki/api/filters/FilterSupportOperationsTest.java @@ -0,0 +1,34 @@ +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + */ +package org.apache.wiki.api.filters; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + + +public class FilterSupportOperationsTest { + + @Test + public void testFilterSupportOperations() { + // the other branch of these methods is properly tested through the jspwiki-210-adapers module + Assertions.assertNull( FilterSupportOperations.methodOfNonPublicAPI( new TestPageFilter(), "preTranslate" ) ); + Assertions.assertEquals( "duh", FilterSupportOperations.executePageFilterPhase( () -> "duh", null, new TestPageFilter() ) ); + } + +} diff --git a/jspwiki-api/src/test/java/org/apache/wiki/api/filters/PageFilterTest.java b/jspwiki-api/src/test/java/org/apache/wiki/api/filters/PageFilterTest.java new file mode 100644 index 0000000..9ab4f45 --- /dev/null +++ b/jspwiki-api/src/test/java/org/apache/wiki/api/filters/PageFilterTest.java @@ -0,0 +1,39 @@ +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + */ +package org.apache.wiki.api.filters; + +import org.apache.wiki.api.exceptions.FilterException; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + + +public class PageFilterTest { + + @Test + public void testLifeCycle() throws FilterException { + final TestPageFilter filter = new TestPageFilter(); + Assertions.assertDoesNotThrow( () -> filter.initialize( null, null ) ); + Assertions.assertEquals( "duh", filter.preSave( null, "duh" ) ); + Assertions.assertEquals( "duh", filter.preTranslate( null, "duh" ) ); + Assertions.assertEquals( "duh", filter.postTranslate( null, "duh" ) ); + Assertions.assertDoesNotThrow( () -> filter.postSave( null, null ) ); + Assertions.assertDoesNotThrow( () -> filter.destroy( null ) ); + } + +} diff --git a/jspwiki-api/src/test/java/org/apache/wiki/api/filters/TestPageFilter.java b/jspwiki-api/src/test/java/org/apache/wiki/api/filters/TestPageFilter.java new file mode 100644 index 0000000..e602cea --- /dev/null +++ b/jspwiki-api/src/test/java/org/apache/wiki/api/filters/TestPageFilter.java @@ -0,0 +1,24 @@ +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + */ +package org.apache.wiki.api.filters; + +// do nothing filter to test basic lifecycle +public class TestPageFilter extends BasePageFilter { + +} diff --git a/jspwiki-api/src/test/java/org/apache/wiki/api/spi/AclsSPITestImpl.java b/jspwiki-api/src/test/java/org/apache/wiki/api/spi/AclsSPITestImpl.java new file mode 100644 index 0000000..c80d4cb --- /dev/null +++ b/jspwiki-api/src/test/java/org/apache/wiki/api/spi/AclsSPITestImpl.java @@ -0,0 +1,19 @@ +package org.apache.wiki.api.spi; + +import org.apache.wiki.api.core.Acl; +import org.apache.wiki.api.core.AclEntry; + + +public class AclsSPITestImpl implements AclsSPI { + + @Override + public Acl acl() { + return null; + } + + @Override + public AclEntry entry() { + return null; + } + +} diff --git a/jspwiki-api/src/test/java/org/apache/wiki/api/spi/ContentsSPITestImpl.java b/jspwiki-api/src/test/java/org/apache/wiki/api/spi/ContentsSPITestImpl.java new file mode 100644 index 0000000..39b3f0b --- /dev/null +++ b/jspwiki-api/src/test/java/org/apache/wiki/api/spi/ContentsSPITestImpl.java @@ -0,0 +1,20 @@ +package org.apache.wiki.api.spi; + +import org.apache.wiki.api.core.Attachment; +import org.apache.wiki.api.core.Engine; +import org.apache.wiki.api.core.Page; + + +public class ContentsSPITestImpl implements ContentsSPI { + + @Override + public Attachment attachment( final Engine engine, final String parentPage, final String fileName ) { + return null; + } + + @Override + public Page page( final Engine engine, final String name ) { + return null; + } + +} diff --git a/jspwiki-api/src/test/java/org/apache/wiki/api/spi/ContextSPITestImpl.java b/jspwiki-api/src/test/java/org/apache/wiki/api/spi/ContextSPITestImpl.java new file mode 100644 index 0000000..aba20c7 --- /dev/null +++ b/jspwiki-api/src/test/java/org/apache/wiki/api/spi/ContextSPITestImpl.java @@ -0,0 +1,33 @@ +package org.apache.wiki.api.spi; + +import org.apache.wiki.api.core.Command; +import org.apache.wiki.api.core.Context; +import org.apache.wiki.api.core.Engine; +import org.apache.wiki.api.core.Page; + +import javax.servlet.http.HttpServletRequest; + + +public class ContextSPITestImpl implements ContextSPI { + + @Override + public Context create( final Engine engine, final Page page ) { + return null; + } + + @Override + public Context create( final Engine engine, final HttpServletRequest request, final Command command ) { + return null; + } + + @Override + public Context create( final Engine engine, final HttpServletRequest request, final Page page ) { + return null; + } + + @Override + public Context create( final Engine engine, final HttpServletRequest request, final String requestContext ) { + return null; + } + +} diff --git a/jspwiki-api/src/test/java/org/apache/wiki/api/spi/EngineSPITestImpl.java b/jspwiki-api/src/test/java/org/apache/wiki/api/spi/EngineSPITestImpl.java new file mode 100644 index 0000000..346734f --- /dev/null +++ b/jspwiki-api/src/test/java/org/apache/wiki/api/spi/EngineSPITestImpl.java @@ -0,0 +1,15 @@ +package org.apache.wiki.api.spi; + +import org.apache.wiki.api.core.Engine; + +import javax.servlet.ServletContext; +import java.util.Properties; + + +public class EngineSPITestImpl implements EngineSPI { + + @Override + public Engine find( final ServletContext context, final Properties props ) { + return null; + } +} diff --git a/jspwiki-api/src/test/java/org/apache/wiki/api/spi/SessionSPITestImpl.java b/jspwiki-api/src/test/java/org/apache/wiki/api/spi/SessionSPITestImpl.java new file mode 100644 index 0000000..d48af6b --- /dev/null +++ b/jspwiki-api/src/test/java/org/apache/wiki/api/spi/SessionSPITestImpl.java @@ -0,0 +1,25 @@ +package org.apache.wiki.api.spi; + +import org.apache.wiki.api.core.Engine; +import org.apache.wiki.api.core.Session; + +import javax.servlet.http.HttpServletRequest; + + +public class SessionSPITestImpl implements SessionSPI { + + @Override + public void remove( final Engine engine, final HttpServletRequest request ) { + + } + + @Override + public Session find( final Engine engine, final HttpServletRequest request ) { + return null; + } + + @Override + public Session guest( final Engine engine ) { + return null; + } +} diff --git a/jspwiki-api/src/test/java/org/apache/wiki/api/spi/WikiTest.java b/jspwiki-api/src/test/java/org/apache/wiki/api/spi/WikiTest.java new file mode 100644 index 0000000..1edbbba --- /dev/null +++ b/jspwiki-api/src/test/java/org/apache/wiki/api/spi/WikiTest.java @@ -0,0 +1,60 @@ +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + */ +package org.apache.wiki.api.spi; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.junit.jupiter.MockitoExtension; + +import javax.servlet.ServletConfig; +import javax.servlet.ServletContext; +import java.util.Properties; + + +@ExtendWith( MockitoExtension.class ) +public class WikiTest { + + @Mock + ServletContext sc; + + @Mock + ServletConfig conf; + + @Test + public void testWikiInit() { + Mockito.doReturn( sc ).when( conf ).getServletContext(); + final Properties properties = Wiki.init( sc ); + Assertions.assertEquals( 5, properties.size() ); + + // verify SPIs are initialized and can be invoked + Assertions.assertNull( Wiki.acls().acl() ); + Assertions.assertNull( Wiki.acls().entry() ); + Assertions.assertNull( Wiki.contents().attachment( null, null, null ) ); + Assertions.assertNull( Wiki.contents().page( null, null ) ); + Assertions.assertNull( Wiki.context().create( null, null ) ); + Assertions.assertNull( Wiki.engine().find( conf ) ); + Assertions.assertNull( Wiki.engine().find( conf, properties ) ); + Assertions.assertNull( Wiki.session().find( null, null ) ); + Assertions.assertNull( Wiki.session().guest( null ) ); + } + +} diff --git a/jspwiki-api/src/test/resources/META-INF/services/org.apache.wiki.api.spi.AclsSPI b/jspwiki-api/src/test/resources/META-INF/services/org.apache.wiki.api.spi.AclsSPI new file mode 100644 index 0000000..94a8fdd --- /dev/null +++ b/jspwiki-api/src/test/resources/META-INF/services/org.apache.wiki.api.spi.AclsSPI @@ -0,0 +1 @@ +org.apache.wiki.api.spi.AclsSPITestImpl \ No newline at end of file diff --git a/jspwiki-api/src/test/resources/META-INF/services/org.apache.wiki.api.spi.ContentsSPI b/jspwiki-api/src/test/resources/META-INF/services/org.apache.wiki.api.spi.ContentsSPI new file mode 100644 index 0000000..73e6494 --- /dev/null +++ b/jspwiki-api/src/test/resources/META-INF/services/org.apache.wiki.api.spi.ContentsSPI @@ -0,0 +1 @@ +org.apache.wiki.api.spi.ContentsSPITestImpl \ No newline at end of file diff --git a/jspwiki-api/src/test/resources/META-INF/services/org.apache.wiki.api.spi.ContextSPI b/jspwiki-api/src/test/resources/META-INF/services/org.apache.wiki.api.spi.ContextSPI new file mode 100644 index 0000000..cffe181 --- /dev/null +++ b/jspwiki-api/src/test/resources/META-INF/services/org.apache.wiki.api.spi.ContextSPI @@ -0,0 +1 @@ +org.apache.wiki.api.spi.ContextSPITestImpl \ No newline at end of file diff --git a/jspwiki-api/src/test/resources/META-INF/services/org.apache.wiki.api.spi.EngineSPI b/jspwiki-api/src/test/resources/META-INF/services/org.apache.wiki.api.spi.EngineSPI new file mode 100644 index 0000000..27efc1e --- /dev/null +++ b/jspwiki-api/src/test/resources/META-INF/services/org.apache.wiki.api.spi.EngineSPI @@ -0,0 +1 @@ +org.apache.wiki.api.spi.EngineSPITestImpl \ No newline at end of file diff --git a/jspwiki-api/src/test/resources/META-INF/services/org.apache.wiki.api.spi.SessionSPI b/jspwiki-api/src/test/resources/META-INF/services/org.apache.wiki.api.spi.SessionSPI new file mode 100644 index 0000000..6101eff --- /dev/null +++ b/jspwiki-api/src/test/resources/META-INF/services/org.apache.wiki.api.spi.SessionSPI @@ -0,0 +1 @@ +org.apache.wiki.api.spi.SessionSPITestImpl \ No newline at end of file diff --git a/jspwiki-api/src/test/resources/ini/jspwiki.properties b/jspwiki-api/src/test/resources/ini/jspwiki.properties new file mode 100644 index 0000000..b529eda --- /dev/null +++ b/jspwiki-api/src/test/resources/ini/jspwiki.properties @@ -0,0 +1,5 @@ +jspwiki.provider.impl.acls=org.apache.wiki.api.spi.AclsSPITestImpl +jspwiki.provider.impl.contents=org.apache.wiki.api.spi.ContentsSPITestImpl +jspwiki.provider.impl.context=org.apache.wiki.api.spi.ContextSPITestImpl +jspwiki.provider.impl.engine=org.apache.wiki.api.spi.EngineSPITestImpl +jspwiki.provider.impl.session=org.apache.wiki.api.spi.SessionSPITestImpl \ No newline at end of file
