| /* |
| * Copyright (c) 2007 Mockito contributors |
| * This program is made available under the terms of the MIT License. |
| */ |
| package org.mockito.internal.handler; |
| |
| import org.mockito.invocation.DescribedInvocation; |
| import org.mockito.invocation.Invocation; |
| import org.mockito.listeners.MethodInvocationReport; |
| |
| import static org.mockito.internal.matchers.Equality.areEqual; |
| |
| /** |
| * Report on a method call |
| */ |
| public class NotifiedMethodInvocationReport implements MethodInvocationReport { |
| private final Invocation invocation; |
| private final Object returnedValue; |
| private final Throwable throwable; |
| |
| |
| /** |
| * Build a new {@link org.mockito.listeners.MethodInvocationReport} with a return value. |
| * |
| * |
| * @param invocation Information on the method call |
| * @param returnedValue The value returned by the method invocation |
| */ |
| public NotifiedMethodInvocationReport(Invocation invocation, Object returnedValue) { |
| this.invocation = invocation; |
| this.returnedValue = returnedValue; |
| this.throwable = null; |
| } |
| |
| /** |
| * Build a new {@link org.mockito.listeners.MethodInvocationReport} with a return value. |
| * |
| * |
| * @param invocation Information on the method call |
| * @param throwable Tha throwable raised by the method invocation |
| */ |
| public NotifiedMethodInvocationReport(Invocation invocation, Throwable throwable) { |
| this.invocation = invocation; |
| this.returnedValue = null; |
| this.throwable = throwable; |
| } |
| |
| public DescribedInvocation getInvocation() { |
| return invocation; |
| } |
| |
| public Object getReturnedValue() { |
| return returnedValue; |
| } |
| |
| public Throwable getThrowable() { |
| return throwable; |
| } |
| |
| public boolean threwException() { |
| return throwable != null; |
| } |
| |
| public String getLocationOfStubbing() { |
| return (invocation.stubInfo() == null) ? null : invocation.stubInfo().stubbedAt().toString(); |
| } |
| |
| |
| public boolean equals(Object o) { |
| if (this == o) return true; |
| if (o == null || getClass() != o.getClass()) return false; |
| |
| NotifiedMethodInvocationReport that = (NotifiedMethodInvocationReport) o; |
| |
| return areEqual(invocation, that.invocation) && |
| areEqual(returnedValue, that.returnedValue) && |
| areEqual(throwable, that.throwable); |
| } |
| |
| public int hashCode() { |
| int result = invocation != null ? invocation.hashCode() : 0; |
| result = 31 * result + (returnedValue != null ? returnedValue.hashCode() : 0); |
| result = 31 * result + (throwable != null ? throwable.hashCode() : 0); |
| return result; |
| } |
| } |