/*
* Copyright (c) 2006 Rogério Liesenfeld
* This file is subject to the terms of the MIT license (see LICENSE.txt).
*/
package mockit.integration.junit4;
import org.junit.*;
import static org.junit.Assert.*;
import mockit.*;
public final class JUnit4DecoratorTest extends BaseJUnit4DecoratorTest
{
public static final class RealClass2
{
public String getValue() { return "REAL2"; }
}
public static final class MockClass2 extends MockUp<RealClass2>
{
@Mock public String getValue() { return "TEST2"; }
}
@BeforeClass
public static void beforeClassThatRunsSecond()
{
assertEquals("TEST0", new RealClass0().getValue());
}
@BeforeClass
public static void beforeClassThatRunsFirst()
{
assertEquals("TEST0", new RealClass0().getValue());
}
@Test
public void useClassScopedMockDefinedByBaseClass()
{
assertEquals("TEST0", new RealClass0().getValue());
}
@Test
public void setUpAndUseSomeMocks()
{
assertEquals("TEST1", new RealClass1().getValue());
assertEquals("REAL2", new RealClass2().getValue());
new MockClass2();
assertEquals("TEST2", new RealClass2().getValue());
assertEquals("TEST1", new RealClass1().getValue());
}
@Test
public void setUpAndUseMocksAgain()
{
assertEquals("TEST1", new RealClass1().getValue());
assertEquals("REAL2", new RealClass2().getValue());
new MockClass2();
assertEquals("TEST2", new RealClass2().getValue());
assertEquals("TEST1", new RealClass1().getValue());
}
@After
public void afterTest()
{
assertEquals("REAL2", new RealClass2().getValue());
}
@Test
public void classMockedInSecondTestClassMustNotBeMockedForThisTestClass()
{
assertEquals("REAL3", new SecondJUnit4DecoratorTest.RealClass3().getValue());
}
}