001    /*
002     * Created on Mar 5, 2012
003     * 
004     * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
005     * the License. You may obtain a copy of the License at
006     * 
007     * http://www.apache.org/licenses/LICENSE-2.0
008     * 
009     * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
010     * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
011     * specific language governing permissions and limitations under the License.
012     * 
013     * Copyright @2012 the original author or authors.
014     */
015    package org.fest.assertions.error;
016    
017    import org.fest.assertions.core.Condition;
018    
019    
020    /**
021     * Creates an error message indicating that an assertion that verifies  that each element of a group satisfies a {@code Condition}
022     * A group of elements can be a collection, an array.<br>
023     * 
024     * @author Nicolas François
025     * @author Mikhail Mazursky
026     * @author Joel Costigliola
027     */
028    public class ElementsShouldHave extends BasicErrorMessageFactory {
029    
030              /**
031               * Creates a new </code>{@link ElementsShouldHave}</code>.
032               * @param actual the actual value in the failed assertion.
033               * @param notSatisfies elements that not satisfies the condition
034               * @param condition the {@code Condition}.
035               * @return the created {@code ErrorMessageFactory}.
036               */
037              public static ErrorMessageFactory elementsShouldHave(Object actual, Object notSatisfies, Condition<?> condition) {
038                return new ElementsShouldHave(actual, notSatisfies, condition);
039              }
040      
041              private ElementsShouldHave(Object actual, Object notSatisfies, Condition<?> condition) {
042                super("expecting elements:\n<%s>\n of \n<%s>\n to have <%s>", notSatisfies, actual, condition);
043              }
044    }