/*
* Copyright (c) 2006 Rogério Liesenfeld
* This file is subject to the terms of the MIT license (see LICENSE.txt).
*/
package mockit.integration.testng;
import java.applet.*;
import javax.naming.*;
import static org.testng.Assert.*;
import org.testng.annotations.*;
import mockit.*;
public final class TestNGDecoratorTest extends BaseTestNGDecoratorTest
{
public static class MockClass2 extends MockUp<Reference>
{
@Mock
public String getClassName() { return "TEST2"; }
}
@Test
public void setUpAndUseSomeMocks()
{
assertEquals(new Applet().getAppletInfo(), "TEST1");
assertEquals(new Reference("REAL2").getClassName(), "REAL2");
new MockClass2();
assertEquals(new Reference("").getClassName(), "TEST2");
assertEquals(new Applet().getAppletInfo(), "TEST1");
}
@Test
public void setUpAndUseMocksAgain()
{
assertEquals(new Applet().getAppletInfo(), "TEST1");
assertEquals(new Reference("REAL2").getClassName(), "REAL2");
new MockClass2();
assertEquals(new Reference("").getClassName(), "TEST2");
assertEquals(new Applet().getAppletInfo(), "TEST1");
}
@AfterMethod
public void afterTest()
{
assertEquals(new Reference("REAL2").getClassName(), "REAL2");
}
@SuppressWarnings("ClassMayBeInterface")
public static class Temp {}
private static final Temp temp = new Temp();
@DataProvider(name = "data")
public Object[][] createData1()
{
return new Object[][] { {temp} };
}
@Test(dataProvider = "data")
public void checkNoMockingOfParametersWhenUsingDataProvider(Temp t)
{
assertSame(temp, t);
}
@Test
public void checkMockingOfParameterWhenNotUsingDataProvider(@Mocked Temp mock)
{
assertNotSame(temp, mock);
}
}