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