001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017:
018: package org.apache.commons.lang.builder;
019:
020: import java.util.ArrayList;
021: import java.util.Collection;
022: import java.util.List;
023:
024: import junit.framework.Assert;
025: import junit.framework.TestCase;
026:
027: import org.apache.commons.lang.ArrayUtils;
028:
029: /**
030: * @author <a href="mailto:ggregory@seagullsw.com">ggregory</a>
031: * @version $Id: ReflectionToStringBuilderExcludeTest.java 437554 2006-08-28 06:21:41Z bayard $
032: */
033: public class ReflectionToStringBuilderExcludeTest extends TestCase {
034:
035: class TestFixture {
036: private String secretField = SECRET_VALUE;
037:
038: private String showField = NOT_SECRET_VALUE;
039: }
040:
041: private static final String NOT_SECRET_FIELD = "showField";
042:
043: private static final String NOT_SECRET_VALUE = "Hello World!";
044:
045: private static final String SECRET_FIELD = "secretField";
046:
047: private static final String SECRET_VALUE = "secret value";
048:
049: public void test_toStringExclude() {
050: String toString = ReflectionToStringBuilder.toStringExclude(
051: new TestFixture(), SECRET_FIELD);
052: this .validateSecretFieldAbsent(toString);
053: }
054:
055: public void test_toStringExcludeArray() {
056: String toString = ReflectionToStringBuilder.toStringExclude(
057: new TestFixture(), new String[] { SECRET_FIELD });
058: this .validateSecretFieldAbsent(toString);
059: }
060:
061: public void test_toStringExcludeArrayWithNull() {
062: String toString = ReflectionToStringBuilder.toStringExclude(
063: new TestFixture(), new String[] { null });
064: this .validateSecretFieldPresent(toString);
065: }
066:
067: public void test_toStringExcludeArrayWithNulls() {
068: String toString = ReflectionToStringBuilder.toStringExclude(
069: new TestFixture(), new String[] { null, null });
070: this .validateSecretFieldPresent(toString);
071: }
072:
073: public void test_toStringExcludeCollection() {
074: List excludeList = new ArrayList();
075: excludeList.add(SECRET_FIELD);
076: String toString = ReflectionToStringBuilder.toStringExclude(
077: new TestFixture(), excludeList);
078: this .validateSecretFieldAbsent(toString);
079: }
080:
081: public void test_toStringExcludeCollectionWithNull() {
082: List excludeList = new ArrayList();
083: excludeList.add(null);
084: String toString = ReflectionToStringBuilder.toStringExclude(
085: new TestFixture(), excludeList);
086: this .validateSecretFieldPresent(toString);
087: }
088:
089: public void test_toStringExcludeCollectionWithNulls() {
090: List excludeList = new ArrayList();
091: excludeList.add(null);
092: excludeList.add(null);
093: String toString = ReflectionToStringBuilder.toStringExclude(
094: new TestFixture(), excludeList);
095: this .validateSecretFieldPresent(toString);
096: }
097:
098: public void test_toStringExcludeEmptyArray() {
099: String toString = ReflectionToStringBuilder.toStringExclude(
100: new TestFixture(), ArrayUtils.EMPTY_STRING_ARRAY);
101: this .validateSecretFieldPresent(toString);
102: }
103:
104: public void test_toStringExcludeEmptyCollection() {
105: String toString = ReflectionToStringBuilder.toStringExclude(
106: new TestFixture(), new ArrayList());
107: this .validateSecretFieldPresent(toString);
108: }
109:
110: public void test_toStringExcludeNullArray() {
111: String toString = ReflectionToStringBuilder.toStringExclude(
112: new TestFixture(), (String[]) null);
113: this .validateSecretFieldPresent(toString);
114: }
115:
116: public void test_toStringExcludeNullCollection() {
117: String toString = ReflectionToStringBuilder.toStringExclude(
118: new TestFixture(), (Collection) null);
119: this .validateSecretFieldPresent(toString);
120: }
121:
122: private void validateNonSecretField(String toString) {
123: Assert
124: .assertTrue(toString.indexOf(NOT_SECRET_FIELD) > ArrayUtils.INDEX_NOT_FOUND);
125: Assert
126: .assertTrue(toString.indexOf(NOT_SECRET_VALUE) > ArrayUtils.INDEX_NOT_FOUND);
127: }
128:
129: private void validateSecretFieldAbsent(String toString) {
130: Assert.assertEquals(ArrayUtils.INDEX_NOT_FOUND, toString
131: .indexOf(SECRET_VALUE));
132: this .validateNonSecretField(toString);
133: }
134:
135: private void validateSecretFieldPresent(String toString) {
136: Assert.assertTrue(toString.indexOf(SECRET_VALUE) > 0);
137: this.validateNonSecretField(toString);
138: }
139: }
|