1
2
3
4
5
6 package mockit.integration.junit4;
7
8 import static org.junit.jupiter.api.Assertions.assertEquals;
9
10 import mockit.Mock;
11 import mockit.MockUp;
12
13 import org.junit.After;
14 import org.junit.BeforeClass;
15 import org.junit.Test;
16
17 public final class JUnit4DecoratorTest extends BaseJUnit4DecoratorTest {
18 public static final class RealClass2 {
19 public String getValue() {
20 return "REAL2";
21 }
22 }
23
24 public static final class FakeClass2 extends MockUp<RealClass2> {
25 @Mock
26 public String getValue() {
27 return "TEST2";
28 }
29 }
30
31 @BeforeClass
32 public static void beforeClassThatRunsSecond() {
33 assertEquals("TEST0", new RealClass0().getValue());
34 }
35
36 @BeforeClass
37 public static void beforeClassThatRunsFirst() {
38 assertEquals("TEST0", new RealClass0().getValue());
39 }
40
41 @Test
42 public void useClassScopedMockDefinedByBaseClass() {
43 assertEquals("TEST0", new RealClass0().getValue());
44 }
45
46 @Test
47 public void setUpAndUseSomeFakes() {
48 assertEquals("TEST1", new RealClass1().getValue());
49 assertEquals("REAL2", new RealClass2().getValue());
50
51 new FakeClass2();
52
53 assertEquals("TEST2", new RealClass2().getValue());
54 assertEquals("TEST1", new RealClass1().getValue());
55 }
56
57 @Test
58 public void setUpAndUseFakesAgain() {
59 assertEquals("TEST1", new RealClass1().getValue());
60 assertEquals("REAL2", new RealClass2().getValue());
61
62 new FakeClass2();
63
64 assertEquals("TEST2", new RealClass2().getValue());
65 assertEquals("TEST1", new RealClass1().getValue());
66 }
67
68 @After
69 public void afterTest() {
70 assertEquals("REAL2", new RealClass2().getValue());
71 }
72
73 @Test
74 public void classFakedInSecondTestClassMustNotBeFakedForThisTestClass() {
75 assertEquals("REAL3", new SecondJUnit4DecoratorTest.RealClass3().getValue());
76 }
77 }