1
2
3
4
5
6 package otherTests.testng;
7
8 import static org.testng.Assert.assertEquals;
9 import static org.testng.Assert.assertSame;
10
11 import javax.naming.Reference;
12
13 import mockit.Mock;
14 import mockit.MockUp;
15
16 import org.testng.annotations.AfterMethod;
17 import org.testng.annotations.DataProvider;
18 import org.testng.annotations.Test;
19
20 public final class TestNGDecoratorTest extends BaseTestNGDecoratorTest {
21 public static class FakeClass2 extends MockUp<Reference> {
22 @Mock
23 public String getClassName() {
24 return "TEST2";
25 }
26 }
27
28 @Test
29 public void applyAndUseSomeFakes() {
30 assertEquals(new SimpleComponent().getInfo(), "TEST1");
31 assertEquals(new Reference("REAL2").getClassName(), "REAL2");
32
33 new FakeClass2();
34
35 assertEquals(new Reference("").getClassName(), "TEST2");
36 assertEquals(new SimpleComponent().getInfo(), "TEST1");
37 }
38
39 @Test
40 public void applyAndUseFakesAgain() {
41 assertEquals(new SimpleComponent().getInfo(), "TEST1");
42 assertEquals(new Reference("REAL2").getClassName(), "REAL2");
43
44 new FakeClass2();
45
46 assertEquals(new Reference("").getClassName(), "TEST2");
47 assertEquals(new SimpleComponent().getInfo(), "TEST1");
48 }
49
50 @AfterMethod
51 public void afterTest() {
52 assertEquals(new Reference("REAL2").getClassName(), "REAL2");
53 }
54
55 public static class Temp {
56 }
57
58 private static final Temp temp = new Temp();
59
60 @DataProvider(name = "data")
61 public Object[][] createData1() {
62 return new Object[][] { { temp } };
63 }
64
65 @Test(dataProvider = "data")
66 public void checkNoMockingOfParametersWhenUsingDataProvider(Temp t) {
67
68 assertSame(t, temp);
69 }
70 }