Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  *
  *  * Copyright 2010,  Unitils.org
  *  *
  *  * 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.unitils.mock.argumentmatcher.impl;
import static org.unitils.mock.argumentmatcher.ArgumentMatcher.MatchResult.MATCH;
import static org.unitils.mock.argumentmatcher.ArgumentMatcher.MatchResult.NO_MATCH;
import static org.unitils.mock.core.proxy.CloneUtil.createDeepClone;
import static org.unitils.reflectionassert.ReflectionComparatorFactory.createRefectionComparator;
import static org.unitils.reflectionassert.ReflectionComparatorMode.IGNORE_DEFAULTS;
import static org.unitils.reflectionassert.ReflectionComparatorMode.LENIENT_ORDER;

A matcher for checking whether an argument equals a given value. Reflection is used to compare all fields of these values. The actual order of collections will be ignored and only fields that have a non default value will be compared.

Author(s):
Kenny Claes
Filip Neven
Tim Ducheyne
public class LenEqArgumentMatcher implements ArgumentMatcher {
    /* The expected value */
    private final Object value;


    
Creates a matcher for the given value. A copy of the value is taken so that it can be compared even when the value itself was modified later-on.

Parameters:
value The expected value
    public LenEqArgumentMatcher(Object value) {
        this. = createDeepClone(value);
    }


    
Returns true if the given object matches the expected argument, false otherwise. The argumentAtInvocationTime is a copy (deep clone) of the arguments at the time of the invocation. This way the original values can still be used later-on even when changes occur to the original values (pass-by-value vs pass-by-reference).

Parameters:
argument The argument that were used by reference, not null
argumentAtInvocationTime Copy of the argument, taken at the time that the invocation was performed, not null
Returns:
The match result, not null
    public MatchResult matches(Object argumentObject argumentAtInvocationTime) {
        ReflectionComparator reflectionComparator;
        if ( instanceof Character ||  instanceof Number ||  instanceof Boolean) {
            reflectionComparator = createRefectionComparator();
        } else {
            reflectionComparator = createRefectionComparator();
        }
        if (reflectionComparator.isEqual(argumentAtInvocationTime)) {
            return ;
        }
        return ;
    }
New to GrepCode? Check out our FAQ X