/*
* Copyright (c) 2006 Rogério Liesenfeld
* This file is subject to the terms of the MIT license (see LICENSE.txt).
*/
package mockit;
import java.io.*;
import org.junit.*;
public final class ReusableInnerInvocationsTest
{
@Injectable PrintWriter mock;
static class NestedVerifications extends Verifications
{
NestedVerifications(PrintWriter mockPW)
{
mockPW.append(anyChar); times = 1;
}
}
@Test
public void reusingNestedVerifications()
{
mock.append('c');
mock.checkError();
new NestedVerifications(mock) {{
mock.checkError(); times = 1;
}};
}
class InnerVerifications extends Verifications
{
InnerVerifications()
{
mock.append(anyChar); times = 1;
}
}
@Test
public void reusingInnerVerifications()
{
mock.print(2);
mock.append('T');
mock.println(true);
new InnerVerifications() {{
mock.print((int) anyInt); times = 1;
mock.println((boolean) anyBoolean);
}};
}
@Test
public void reusingLocalVerifications()
{
class LocalVerifications extends Verifications {{
mock.append(anyChar); times = 1;
}}
mock.println(true);
mock.print(1);
mock.append('e');
new LocalVerifications() {{
mock.print((int) anyInt);
mock.println((boolean) anyBoolean);
}};
}
class BaseVerifications extends Verifications {}
class DerivedVerifications extends BaseVerifications
{
protected DerivedVerifications()
{
mock.print(anyString);
}
}
@Test
public void reusingHierarchyOfInnerVerificationClasses()
{
mock.print("test");
new DerivedVerifications() {};
}
}