package com.celements.mandatory;

import static org.easymock.EasyMock.*;

import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Test;

import com.celements.common.test.AbstractBridgedComponentTestCase;
import com.xpn.xwiki.XWiki;
import com.xpn.xwiki.XWikiContext;
import com.xpn.xwiki.web.Utils;

public class XWikiXWikiPreferencesTest extends AbstractBridgedComponentTestCase {

  private XWikiXWikiPreferences mandatoryXWikiPref;
  private XWikiContext context;
  private XWiki xwiki;

  @Before
  public void setUp_XWikiXWikiPreferencesTest() throws Exception {
    context = getContext();
    xwiki = getWikiMock();
    mandatoryXWikiPref = (XWikiXWikiPreferences) Utils.getComponent(
        IMandatoryDocumentRole.class, "celements.mandatory.wikipreferences");
  }

  @Test
  public void testNoMainWiki_main() {
    context.setDatabase("mainWiki");
    context.setMainXWiki("mainWiki");
    replayDefault();
    assertFalse(mandatoryXWikiPref.noMainWiki());
    verifyDefault();
  }

  @Test
  public void testNoMainWiki_notMain() {
    context.setDatabase("myWiki");
    context.setMainXWiki("mainWiki");
    replayDefault();
    assertTrue(mandatoryXWikiPref.noMainWiki());
    verifyDefault();
  }

  @Test
  public void testSkipCelementsWikiPreferences_illegalValue() {
    expect(xwiki.ParamAsLong(eq("celements.mandatory.skipWikiPreferences"))).andThrow(
        new NumberFormatException(null)).anyTimes();
    expect(xwiki.ParamAsLong(eq("celements.mandatory.skipWikiPreferences"), eq(0L))
        ).andReturn(0L).anyTimes();
    replayDefault();
    mandatoryXWikiPref.isSkipCelementsWikiPreferences();
    verifyDefault();
  }

}

@@ -1,8 +1,902 @@
+/*%0A * See the NOTICE file distributed with this work for additional%0A * information regarding copyright ownership.%0A *%0A * This is free software; you can redistribute it and/or modify it%0A * under the terms of the GNU Lesser General Public License as%0A * published by the Free Software Foundation; either version 2.1 of%0A * the License, or (at your option) any later version.%0A *%0A * This software is distributed in the hope that it will be useful,%0A * but WITHOUT ANY WARRANTY; without even the implied warranty of%0A * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU%0A * Lesser General Public License for more details.%0A *%0A * You should have received a copy of the GNU Lesser General Public%0A * License along with this software; if not, write to the Free%0A * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA%0A * 02110-1301 USA, or see the FSF site: http://www.fsf.org.%0A */%0A
 package 

add missing license notice