Package org.springframework.web.util

Source Code of org.springframework.web.util.TagUtilsTests$TagC

/*
* Copyright 2002-2012 the original author or authors.
*
* Licensed 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.springframework.web.util;

import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.Tag;
import javax.servlet.jsp.tagext.TagSupport;

import org.junit.Test;

import static org.junit.Assert.*;

/**
* Unit tests for the {@link TagUtils} class.
*
* @author Alef Arendsen
* @author Rick Evans
*/
public final class TagUtilsTests {

  @Test
  public void getScopeSunnyDay() {
    assertEquals(TagUtils.SCOPE_PAGE, "page");
    assertEquals(TagUtils.SCOPE_APPLICATION, "application");
    assertEquals(TagUtils.SCOPE_SESSION, "session");
    assertEquals(TagUtils.SCOPE_REQUEST, "request");

    assertEquals(PageContext.PAGE_SCOPE, TagUtils.getScope("page"));
    assertEquals(PageContext.REQUEST_SCOPE, TagUtils.getScope("request"));
    assertEquals(PageContext.SESSION_SCOPE, TagUtils.getScope("session"));
    assertEquals(PageContext.APPLICATION_SCOPE, TagUtils.getScope("application"));

    // non-existent scope
    assertEquals("TagUtils.getScope(..) with a non-existent scope argument must " +
        "just return the default scope (PageContext.PAGE_SCOPE).", PageContext.PAGE_SCOPE,
        TagUtils.getScope("bla"));
  }

  @Test(expected = IllegalArgumentException.class)
  public void getScopeWithNullScopeArgument() {
    TagUtils.getScope(null);
  }

  @Test(expected = IllegalArgumentException.class)
  public void hasAncestorOfTypeWhereAncestorTagIsNotATagType() throws Exception {
    assertFalse(TagUtils.hasAncestorOfType(new TagSupport(), String.class));
  }

  @Test(expected = IllegalArgumentException.class)
  public void hasAncestorOfTypeWithNullTagArgument() throws Exception {
    assertFalse(TagUtils.hasAncestorOfType(null, TagSupport.class));
  }

  @Test(expected = IllegalArgumentException.class)
  public void hasAncestorOfTypeWithNullAncestorTagClassArgument() throws Exception {
    assertFalse(TagUtils.hasAncestorOfType(new TagSupport(), null));
  }

  @Test
  public void hasAncestorOfTypeTrueScenario() throws Exception {
    Tag a = new TagA();
    Tag b = new TagB();
    Tag c = new TagC();

    a.setParent(b);
    b.setParent(c);

    assertTrue(TagUtils.hasAncestorOfType(a, TagC.class));
  }

  @Test
  public void hasAncestorOfTypeFalseScenario() throws Exception {
    Tag a = new TagA();
    Tag b = new TagB();
    Tag anotherB = new TagB();

    a.setParent(b);
    b.setParent(anotherB);

    assertFalse(TagUtils.hasAncestorOfType(a, TagC.class));
  }

  @Test
  public void hasAncestorOfTypeWhenTagHasNoParent() throws Exception {
    assertFalse(TagUtils.hasAncestorOfType(new TagA(), TagC.class));
  }

  @Test(expected = IllegalArgumentException.class)
  public void assertHasAncestorOfTypeWithNullTagName() throws Exception {
    TagUtils.assertHasAncestorOfType(new TagA(), TagC.class, null, "c");
  }

  @Test(expected = IllegalArgumentException.class)
  public void assertHasAncestorOfTypeWithNullAncestorTagName() throws Exception {
    TagUtils.assertHasAncestorOfType(new TagA(), TagC.class, "a", null);
  }

  @Test(expected = IllegalStateException.class)
  public void assertHasAncestorOfTypeThrowsExceptionOnFail() throws Exception {
        Tag a = new TagA();
        Tag b = new TagB();
        Tag anotherB = new TagB();

        a.setParent(b);
        b.setParent(anotherB);

        TagUtils.assertHasAncestorOfType(a, TagC.class, "a", "c");
  }

  @Test
  public void testAssertHasAncestorOfTypeDoesNotThrowExceptionOnPass() throws Exception {
    Tag a = new TagA();
    Tag b = new TagB();
    Tag c = new TagC();

    a.setParent(b);
    b.setParent(c);

    TagUtils.assertHasAncestorOfType(a, TagC.class, "a", "c");
  }

  @SuppressWarnings("serial")
  private static final class TagA extends TagSupport {

  }

  @SuppressWarnings("serial")
  private static final class TagB extends TagSupport {

  }

  @SuppressWarnings("serial")
  private static final class TagC extends TagSupport {

  }

}
TOP

Related Classes of org.springframework.web.util.TagUtilsTests$TagC

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.