Best Powermock code snippet using org.powermock.reflect.testclasses.ClassWithStaticAndInstanceInternalStateOfSameType
Source:WhiteBoxTest.java  
...49import org.powermock.reflect.testclasses.ClassWithSerializableState;50import org.powermock.reflect.testclasses.ClassWithSeveralMethodsWithSameName;51import org.powermock.reflect.testclasses.ClassWithSeveralMethodsWithSameNameOneWithoutParameters;52import org.powermock.reflect.testclasses.ClassWithSimpleInternalState;53import org.powermock.reflect.testclasses.ClassWithStaticAndInstanceInternalStateOfSameType;54import org.powermock.reflect.testclasses.ClassWithStaticMethod;55import org.powermock.reflect.testclasses.ClassWithUniquePrivateMethods;56import org.powermock.reflect.testclasses.ClassWithVarArgsConstructor;57import org.powermock.reflect.testclasses.ClassWithVarArgsConstructor2;58import java.io.InputStream;59import java.io.Serializable;60import java.lang.reflect.Field;61import java.lang.reflect.Method;62import java.lang.reflect.Proxy;63import java.sql.Connection;64import java.util.Set;65import static org.assertj.core.api.Java6Assertions.assertThat;66import static org.junit.Assert.assertArrayEquals;67import static org.junit.Assert.assertEquals;68import static org.junit.Assert.assertNotNull;69import static org.junit.Assert.assertNull;70import static org.junit.Assert.assertSame;71import static org.junit.Assert.assertTrue;72import static org.junit.Assert.fail;73/**74 * Tests the WhiteBox's functionality.75 */76public class WhiteBoxTest {77	@Rule78	public ExpectedException expectedException = ExpectedException.none();79	@Test80	public void testFindMethod_classContainingMethodWithNoParameters() throws Exception {81		Method expected = ClassWithSeveralMethodsWithSameNameOneWithoutParameters.class.getMethod("getDouble");82		Method actual = WhiteboxImpl.findMethodOrThrowException(83				ClassWithSeveralMethodsWithSameNameOneWithoutParameters.class, "getDouble");84		assertEquals(expected, actual);85	}86    @Test87    public void testFindMethod_classContainingOnlyMethodsWithParameters() throws Exception {88        try {89            WhiteboxImpl.findMethodOrThrowException(ClassWithSeveralMethodsWithSameName.class, "getDouble");90            fail("Should throw runtime exception!");91        } catch (RuntimeException e) {92            assertTrue("Error message did not match", e.getMessage().contains(93                    "Several matching methods found, please specify the argument parameter types"));94        }95    }96    @Test97    public void testFindMethod_noMethodFound() throws Exception {98        try {99            WhiteboxImpl.findMethodOrThrowException(ClassWithSeveralMethodsWithSameName.class, "getDouble2");100            fail("Should throw runtime exception!");101        } catch (RuntimeException e) {102            assertEquals("Error message did not match",103                         "No method found with name 'getDouble2' with parameter types: [ <none> ] in class "104                                 + ClassWithSeveralMethodsWithSameName.class.getName() + ".", e.getMessage());105        }106    }107    @Test108    public void testGetInternalState_object() throws Exception {109        ClassWithInternalState tested = new ClassWithInternalState();110        tested.increaseInteralState();111        Object internalState = Whitebox.getInternalState(tested, "internalState");112        assertTrue("InternalState should be instanceof Integer", internalState instanceof Integer);113        assertEquals(1, internalState);114    }115    @SuppressWarnings("deprecation")116    @Test117    public void testGetInternalState_parmaterizedType() throws Exception {118        ClassWithInternalState tested = new ClassWithInternalState();119        tested.increaseInteralState();120        int internalState = Whitebox.getInternalState(tested, "internalState", tested.getClass(), int.class);121        assertEquals(1, internalState);122    }123    @Test124    public void testSetInternalState() throws Exception {125        ClassWithInternalState tested = new ClassWithInternalState();126        tested.increaseInteralState();127        Whitebox.setInternalState(tested, "anotherInternalState", 2);128        assertEquals(2, tested.getAnotherInternalState());129    }130    @Test131    public void testSetInternalStateWithMultipleValues() throws Exception {132        ClassWithInternalState tested = new ClassWithInternalState();133        final ClassWithPrivateMethods classWithPrivateMethods = new ClassWithPrivateMethods();134        final String stringState = "someStringState";135        Whitebox.setInternalState(tested, classWithPrivateMethods, stringState);136        assertEquals(stringState, Whitebox.getInternalState(tested, String.class));137        assertSame(classWithPrivateMethods, Whitebox.getInternalState(tested, ClassWithPrivateMethods.class));138    }139    @Test140    public void testSetInternalState_superClass() throws Exception {141        ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState();142        tested.increaseInteralState();143        Whitebox.setInternalState(tested, "anotherInternalState", 2, ClassWithInternalState.class);144        assertEquals(2, tested.getAnotherInternalState());145    }146    @Test147    public void testGetInternalState_superClass_object() throws Exception {148        ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState();149        Object internalState = Whitebox.getInternalState(tested, "internalState", ClassWithInternalState.class);150        assertEquals(0, internalState);151    }152    @SuppressWarnings("deprecation")153    @Test154    public void testGetInternalState_superClass_parameterized() throws Exception {155        ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState();156        int internalState = Whitebox.getInternalState(tested, "internalState", ClassWithInternalState.class, int.class);157        assertEquals(0, internalState);158    }159    @Test160    public void testInvokePrivateMethod_primtiveType() throws Exception {161        assertTrue(Whitebox.<Boolean>invokeMethod(new ClassWithPrivateMethods(), "primitiveMethod", 8.2));162    }163    @Test164    public void testInvokePrivateMethod_primtiveType_withoutSpecifyingMethodName() throws Exception {165        assertTrue((Boolean) Whitebox.invokeMethod(new ClassWithUniquePrivateMethods(), 8.2d, 8.4d));166    }167    /**168     * This test actually invokes the <code>finalize</code> method of169     * <code>java.lang.Object</code> because we supply no method name and no170     * arguments. <code>finalize</code> is thus the first method found and it'll171     * be executed.172     *173     * @throws Exception174     */175    @Test176    @Ignore("Invokes different methods on PC and MAC (hashCode on mac)")177    public void testInvokePrivateMethod_withoutSpecifyingMethodName_noArguments() throws Exception {178        assertNull(Whitebox.invokeMethod(new ClassWithUniquePrivateMethods()));179    }180    @Test181    public void testInvokePrivateMethod_withoutSpecifyingMethodName_assertThatNullWorks() throws Exception {182        assertTrue(Whitebox.invokeMethod(new ClassWithUniquePrivateMethods(), 8.2d, 8.3d, null) instanceof Object);183    }184    /**185     * This test should actually fail since equals takes an Object and we pass186     * in a primitive wrapped as a Double. Thus PowerMock cannot determine187     * whether to invoke the single argument method defined in188     * {@link ClassWithUniquePrivateMethods} or the189     * {@link Object#equals(Object)} method because we could potentially invoke190     * equals with a Double.191     */192    @Test(expected = TooManyMethodsFoundException.class)193    public void testInvokePrivateMethod_withoutSpecifyingMethodName_onlyOneArgument() throws Exception {194        Whitebox.invokeMethod(new ClassWithUniquePrivateMethods(), 8.2d);195    }196    @Test(expected = TooManyMethodsFoundException.class)197    public void testInvokeStaticPrivateMethod_withoutSpecifyingMethodName_onlyOneArgument() throws Exception {198        assertTrue((Boolean) Whitebox.invokeMethod(ClassWithUniquePrivateMethods.class, 8.2d));199    }200    @Test201    public void testInvokePrivateMethod_primtiveType_Wrapped() throws Exception {202        assertTrue((Boolean) Whitebox.invokeMethod(new ClassWithPrivateMethods(), "primitiveMethod", new Double(8.2)));203    }204    @Test205    public void testInvokePrivateMethod_wrappedType() throws Exception {206        assertTrue((Boolean) Whitebox.invokeMethod(new ClassWithPrivateMethods(), "wrappedMethod", new Double(8.2)));207    }208    @Test209    public void testInvokePrivateMethod_wrappedType_primitive() throws Exception {210        assertTrue((Boolean) Whitebox.invokeMethod(new ClassWithPrivateMethods(), "wrappedMethod", 8.2));211    }212    @Test213    public void testMethodWithPrimitiveIntAndString_primitive() throws Exception {214        assertEquals("My int value is: " + 8, Whitebox.invokeMethod(new ClassWithPrivateMethods(),215                                                                    "methodWithPrimitiveIntAndString", 8, "My int value is: "));216    }217    @Test218    public void testMethodWithPrimitiveIntAndString_Wrapped() throws Exception {219        assertEquals("My int value is: " + 8, Whitebox.invokeMethod(new ClassWithPrivateMethods(),220                                                                    "methodWithPrimitiveIntAndString", Integer.valueOf(8), "My int value is: "));221    }222    @Test223    public void testMethodWithPrimitiveAndWrappedInt_primtive_wrapped() throws Exception {224        assertEquals(17, Whitebox.invokeMethod(new ClassWithPrivateMethods(), "methodWithPrimitiveAndWrappedInt",225                                               new Class[]{int.class, Integer.class}, 9, Integer.valueOf(8)));226    }227    @Test228    public void testStaticState() {229        int expected = 123;230        Whitebox.setInternalState(ClassWithInternalState.class, "staticState", expected);231        assertEquals(expected, ClassWithInternalState.getStaticState());232        assertEquals(expected, Whitebox.getInternalState(ClassWithInternalState.class, "staticState"));233    }234	@Test235	public void testStaticFinalPrimitiveState() {236		Whitebox.setInternalState(ClassWithInternalState.class, "staticFinalIntState", 123);237                assertEquals(123, Whitebox.getInternalState(ClassWithInternalState.class, "staticFinalIntState"));238	}239	@Test240	public void testStaticFinalStringState() throws NoSuchFieldException {241		Whitebox.setInternalState(ClassWithInternalState.class, "staticFinalStringState", "Brand new string");242                assertEquals("Brand new string", Whitebox.getInternalState(ClassWithInternalState.class, "staticFinalStringState"));243	}244	@Test245	public void testStaticFinalObject() throws NoSuchFieldException {246		int modifiersBeforeSet = ClassWithInternalState.class.getDeclaredField("staticFinalIntegerState").getModifiers();247		Integer newValue = ClassWithInternalState.getStaticFinalIntegerState() + 1;248		Whitebox.setInternalState(ClassWithInternalState.class, "staticFinalIntegerState", newValue);249		int modifiersAfterSet = ClassWithInternalState.class.getDeclaredField("staticFinalIntegerState").getModifiers();250		assertEquals(newValue, ClassWithInternalState.getStaticFinalIntegerState());251		assertEquals(modifiersBeforeSet, modifiersAfterSet);252	}253    /**254     * Verifies that the http://code.google.com/p/powermock/issues/detail?id=6255     * is fixed.256     */257    @Test(expected = IllegalArgumentException.class)258    public void testInvokeMethodWithNullParameter() throws Exception {259        Whitebox.invokeMethod(null, "method");260    }261    @Test(expected = IllegalArgumentException.class)262    public void testInvokeConstructorWithNullParameter() throws Exception {263        Whitebox.invokeConstructor(null, "constructor");264    }265    @Test(expected = IllegalArgumentException.class)266    public void testGetInternalWithNullParameter() throws Exception {267        Whitebox.getInternalState(null, "state");268    }269    @Test(expected = IllegalArgumentException.class)270    public void testSetInternalWithNullParameter() throws Exception {271        Whitebox.setInternalState(null, "state", new Object());272    }273    @Test274    public void testInstantiateVarArgsOnlyConstructor() throws Exception {275        final String argument1 = "argument1";276        final String argument2 = "argument2";277        ClassWithVarArgsConstructor instance = Whitebox.invokeConstructor(ClassWithVarArgsConstructor.class, argument1,278                                                                          argument2);279        String[] strings = instance.getStrings();280        assertEquals(2, strings.length);281        assertEquals(argument1, strings[0]);282        assertEquals(argument2, strings[1]);283    }284    @Test285    public void testInstantiateVarArgsOnlyConstructor_noArguments() throws Exception {286        ClassWithVarArgsConstructor instance = Whitebox.invokeConstructor(ClassWithVarArgsConstructor.class);287        String[] strings = instance.getStrings();288        assertEquals(0, strings.length);289    }290    @Test291    public void testInvokeVarArgsMethod_multipleValues() throws Exception {292        ClassWithPrivateMethods tested = new ClassWithPrivateMethods();293        assertEquals(6, Whitebox.invokeMethod(tested, "varArgsMethod", 1, 2, 3));294    }295    @Test296    public void testInvokeVarArgsMethod_noArguments() throws Exception {297        ClassWithPrivateMethods tested = new ClassWithPrivateMethods();298        assertEquals(0, Whitebox.invokeMethod(tested, "varArgsMethod"));299    }300    @Test301    public void testInvokeVarArgsMethod_oneArgument() throws Exception {302        ClassWithPrivateMethods tested = new ClassWithPrivateMethods();303        assertEquals(4, Whitebox.invokeMethod(tested, "varArgsMethod", 2));304    }305    @Test306    public void testInvokeVarArgsMethod_invokeVarArgsWithOneArgument() throws Exception {307        ClassWithPrivateMethods tested = new ClassWithPrivateMethods();308        assertEquals(1, Whitebox.invokeMethod(tested, "varArgsMethod", new Class<?>[]{int[].class}, 1));309    }310    @Test311    public void testInvokePrivateMethodWithASubTypeOfTheArgumentType() throws Exception {312        ClassWithPrivateMethods tested = new ClassWithPrivateMethods();313        ClassWithChildThatHasInternalState argument = new ClassWithChildThatHasInternalState();314        assertSame(argument, Whitebox.invokeMethod(tested, "methodWithObjectArgument", argument));315    }316    @Test317    public void testInvokePrivateMethodWithAClassArgument() throws Exception {318        ClassWithPrivateMethods tested = new ClassWithPrivateMethods();319        assertEquals(ClassWithChildThatHasInternalState.class, Whitebox.invokeMethod(tested, "methodWithClassArgument",320                                                                                     ClassWithChildThatHasInternalState.class));321    }322    @Test323    public void testSetInternalStateInChildClassWithoutSpecifyingTheChildClass() throws Exception {324        final int value = 22;325        final String fieldName = "internalState";326        ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState() {327        };328        Whitebox.setInternalState(tested, fieldName, value);329        assertEquals(value, Whitebox.getInternalState(tested, fieldName));330    }331    @Test332    public void testSetInternalStateInClassAndMakeSureThatTheChildClassIsNotAffectedEvenThoughItHasAFieldWithTheSameName()333            throws Exception {334        final int value = 22;335        final String fieldName = "anotherInternalState";336        ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState() {337        };338        Whitebox.setInternalState(tested, fieldName, value);339        assertEquals(value, Whitebox.getInternalState(tested, fieldName));340        assertEquals(-1, Whitebox.getInternalState(tested, fieldName, ClassWithInternalState.class));341    }342    @Test(expected = IllegalArgumentException.class)343    public void testSetInternalStateWithInvalidArgumentType() throws Exception {344        final int value = 22;345        final String fieldName = "internalState";346        ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState() {347        };348        Whitebox.setInternalState(tested, fieldName, new Object());349        assertEquals(value, Whitebox.getInternalState(tested, fieldName));350    }351    @Test(expected = IllegalArgumentException.class)352    public void testSetInternalStateWithNull() throws Exception {353        final int value = 22;354        final String fieldName = "internalState";355        ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState() {356        };357        Whitebox.setInternalState(tested, fieldName, (Object) null);358        assertEquals(value, Whitebox.getInternalState(tested, fieldName));359    }360    @Test361    public void testSetAndGetInternalStateBasedOnFieldType() throws Exception {362        final int value = 22;363        ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState();364        Whitebox.setInternalState(tested, int.class, value);365        assertEquals(value, (int) Whitebox.getInternalState(tested, int.class));366        assertEquals(value, Whitebox.getInternalState(tested, "anotherInternalState"));367        assertEquals(value, Whitebox.getInternalState(tested, "anotherInternalState",368                                                      ClassWithChildThatHasInternalState.class));369    }370    @Test371    public void testSetAndGetInternalStateAtASpecificPlaceInTheHierarchyBasedOnFieldType() throws Exception {372        final int value = 22;373        ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState();374        Whitebox.setInternalState(tested, int.class, value, ClassWithInternalState.class);375        assertEquals(42, (int) Whitebox.getInternalState(tested, int.class));376        assertEquals(value, (int) Whitebox.getInternalState(tested, int.class, ClassWithInternalState.class));377        assertEquals(value, Whitebox.getInternalState(tested, "staticState", ClassWithInternalState.class));378    }379    @Test380    public void testSetInternalStateBasedOnObjectType() throws Exception {381        final String value = "a string";382        ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState();383        Whitebox.setInternalState(tested, value);384        assertEquals(value, Whitebox.getInternalState(tested, String.class));385    }386    @SuppressWarnings("deprecation")387    @Test388    public void testSetInternalStateBasedOnObjectTypeWhenArgumentIsAPrimitiveType() throws Exception {389        final int value = 22;390        ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState();391        Whitebox.setInternalState(tested, value);392        assertEquals((Integer) value, Whitebox.getInternalState(tested, "anotherInternalState",393                                                                ClassWithChildThatHasInternalState.class, Integer.class));394    }395    @Test396    public void testSetInternalStateBasedOnObjectTypeWhenArgumentIsAPrimitiveTypeUsingGenerics() throws Exception {397        final int value = 22;398        ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState();399        Whitebox.setInternalState(tested, value);400        assertEquals((Integer) value, Whitebox.<Integer>getInternalState(tested, "anotherInternalState",401                                                                         ClassWithChildThatHasInternalState.class));402    }403    @Test404    public void testSetInternalStateBasedOnObjectTypeAtASpecificPlaceInTheClassHierarchy() throws Exception {405        final String value = "a string";406        ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState();407        Whitebox.setInternalState(tested, (Object) value, ClassWithInternalState.class);408        assertEquals(value, Whitebox.getInternalState(tested, "finalString"));409    }410    @Test411    public void testSetInternalStateBasedOnObjectTypeAtASpecificPlaceInTheClassHierarchyForPrimitiveType()412            throws Exception {413        final long value = 31;414        ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState();415        Whitebox.setInternalState(tested, value, ClassWithInternalState.class);416        assertEquals(value, tested.getInternalLongState());417    }418    @Test419    public void testSetInternalStateBasedOnObjectTypeAtANonSpecificPlaceInTheClassHierarchyForPrimitiveType()420            throws Exception {421        final long value = 31;422        ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState();423        Whitebox.setInternalState(tested, value);424        assertEquals(value, tested.getInternalLongState());425    }426    @Test427    public void testSetInternalMultipleOfSameTypeOnSpecificPlaceInHierarchy() throws Exception {428        final int value = 31;429        ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState();430        try {431            Whitebox.setInternalState(tested, value, ClassWithInternalState.class);432            fail("should throw TooManyFieldsFoundException!");433        } catch (TooManyFieldsFoundException e) {434            assertEquals("Two or more fields matching type int.", e.getMessage());435        }436    }437    @Test438    public void testSetInternalMultipleOfSameType() throws Exception {439        final int value = 31;440        ClassWithInternalState tested = new ClassWithInternalState();441        try {442            Whitebox.setInternalState(tested, value);443            fail("should throw TooManyFieldsFoundException!");444        } catch (TooManyFieldsFoundException e) {445            assertEquals("Two or more fields matching type int.", e.getMessage());446        }447    }448    @Test449    public void testSetInternalStateBasedOnObjectSubClassTypeAtASpecificPlaceInTheClassHierarchy() throws Exception {450        final ClassWithPrivateMethods value = new ClassWithPrivateMethods() {451        };452        ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState();453        Whitebox.setInternalState(tested, value, ClassWithInternalState.class);454        assertSame(value, tested.getClassWithPrivateMethods());455    }456    @Test457    public void testSetInternalStateBasedOnObjectSubClassType() throws Exception {458        final ClassWithPrivateMethods value = new ClassWithPrivateMethods() {459        };460        ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState() {461        };462        Whitebox.setInternalState(tested, value);463        assertSame(value, tested.getClassWithPrivateMethods());464    }465    @Test466    public void testGetAllInstanceFields() throws Exception {467        Set<Field> allFields = Whitebox.getAllInstanceFields(new ClassWithChildThatHasInternalState());468        assertEquals(8, allFields.size());469    }470    @Test471    public void testGetAllInstanceFieldsOnClass() {472        Set<Field> allFields = Whitebox.getAllInstanceFields(ClassWithChildThatHasInternalState.class);473        assertEquals(8, allFields.size());474    }475    @Test476    public void testGetAllStaticFields_assertNoFieldsFromParent() throws Exception {477        Set<Field> allFields = Whitebox.getAllStaticFields(ClassWithChildThatHasInternalState.class);478        assertEquals(0, allFields.size());479    }480	@Test481	public void testGetAllStaticFields() throws Exception {482		Set<Field> allFields = Whitebox.getAllStaticFields(ClassWithInternalState.class);483		assertEquals(4, allFields.size());484	}485    @Test486    public void testMethodWithNoMethodName_noMethodFound() throws Exception {487        try {488            Whitebox.getMethod(ClassWithInternalState.class, int.class);489            fail("Should throw MethodNotFoundException");490        } catch (MethodNotFoundException e) {491            assertEquals(492                    "No method was found with parameter types: [ int ] in class org.powermock.reflect.testclasses.ClassWithInternalState.",493                    e.getMessage());494        }495    }496    @Test497    public void testMethodWithNoMethodName_tooManyMethodsFound() throws Exception {498        try {499            Whitebox.getMethod(ClassWithSeveralMethodsWithSameName.class);500            fail("Should throw TooManyMethodsFoundException");501        } catch (TooManyMethodsFoundException e) {502            assertTrue(e503                               .getMessage()504                               .contains(505                                       "Several matching methods found, please specify the method name so that PowerMock can determine which method you're referring to"));506        }507    }508    @Test509    public void testMethodWithNoMethodName_ok() throws Exception {510        final Method method = Whitebox.getMethod(ClassWithSeveralMethodsWithSameName.class, double.class);511        assertEquals(method, ClassWithSeveralMethodsWithSameName.class.getDeclaredMethod("getDouble", double.class));512    }513    @Test514    public void testGetTwoMethodsWhenNoneOfThemAreFound() throws Exception {515        try {516            Whitebox.getMethods(ClassWithSeveralMethodsWithSameName.class, "notFound1", "notFound2");517        } catch (MethodNotFoundException e) {518            assertEquals(519                    "No methods matching the name(s) notFound1 or notFound2 were found in the class hierarchy of class org.powermock.reflect.testclasses.ClassWithSeveralMethodsWithSameName.",520                    e.getMessage());521        }522    }523    @Test524    public void testGetThreeMethodsWhenNoneOfThemAreFound() throws Exception {525        try {526            Whitebox.getMethods(ClassWithSeveralMethodsWithSameName.class, "notFound1", "notFound2", "notFound3");527        } catch (MethodNotFoundException e) {528            assertEquals(529                    "No methods matching the name(s) notFound1, notFound2 or notFound3 were found in the class hierarchy of class org.powermock.reflect.testclasses.ClassWithSeveralMethodsWithSameName.",530                    e.getMessage());531        }532    }533    /**534     * Asserts that <a535     * href="http://code.google.com/p/powermock/issues/detail?id=118">issue536     * 118</a> is fixed. Thanks to cemcatik for finding this.537     */538    @Test539    public void testInvokeConstructorWithBothNormalAndVarArgsParameter() throws Exception {540        ClassWithVarArgsConstructor2 instance = Whitebox.invokeConstructor(ClassWithVarArgsConstructor2.class, "first",541                                                                           "second", "third");542        assertArrayEquals(new String[]{"first", "second", "third"}, instance.getStrings());543    }544    /**545     * Asserts that <a546     * href="http://code.google.com/p/powermock/issues/detail?id=118">issue547     * 118</a> is fixed. Thanks to cemcatik for finding this.548     */549    @Test550    public void testInvokeMethodWithBothNormalAndVarArgsParameter() throws Exception {551        ClassWithPrivateMethods tested = new ClassWithPrivateMethods();552        assertEquals(4, Whitebox.invokeMethod(tested, "varArgsMethod2", 1, 2, 3));553    }554    @Test555    public void testInvokePrivateMethodWithArrayArgument() throws Exception {556        ClassWithPrivateMethods tested = new ClassWithPrivateMethods();557        assertEquals("Hello World", Whitebox.invokeMethod(tested, "evilConcatOfStrings", new Object[]{new String[]{558                "Hello ", "World"}}));559    }560    @Test561    public void testSetInternalStateFromContext_allStatesInSameOneContext() throws Exception {562        ClassWithSimpleInternalState tested = new ClassWithSimpleInternalState();563        MyContext context = new MyContext();564        Whitebox.setInternalStateFromContext(tested, context);565        assertEquals(context.getMyStringState(), tested.getSomeStringState());566        assertEquals(context.getMyIntState(), tested.getSomeIntState());567    }568    @Test569    public void testSetInternalStateFromContext_statesInDifferentContext() throws Exception {570        ClassWithSimpleInternalState tested = new ClassWithSimpleInternalState();571        MyIntContext myIntContext = new MyIntContext();572        MyStringContext myStringContext = new MyStringContext();573        Whitebox.setInternalStateFromContext(tested, myIntContext, myStringContext);574        assertEquals(myStringContext.getMyStringState(), tested.getSomeStringState());575        assertEquals(myIntContext.getSimpleIntState(), tested.getSomeIntState());576    }577    @Test578    public void testSetInternalStateFromContext_contextIsAClass() throws Exception {579        ClassWithSimpleInternalState tested = new ClassWithSimpleInternalState();580        Whitebox.setInternalStateFromContext(tested, MyContext.class);581        assertEquals(Whitebox.getInternalState(MyContext.class, long.class), (Long) tested.getSomeStaticLongState());582    }583    @Test584    public void testSetInternalStateFromContext_contextIsAClassAndAnInstance() throws Exception {585        ClassWithSimpleInternalState tested = new ClassWithSimpleInternalState();586        MyContext myContext = new MyContext();587        Whitebox.setInternalStateFromContext(tested, MyContext.class, myContext);588        assertEquals(myContext.getMyStringState(), tested.getSomeStringState());589        assertEquals(myContext.getMyIntState(), tested.getSomeIntState());590        assertEquals((Long) myContext.getMyLongState(), (Long) tested.getSomeStaticLongState());591    }592    @Test593    public void testSetInternalStateFromContext_contextHasOneInstanceAndOneStaticFieldOfSameType_onlyInstanceContext()594            throws Exception {595        ClassWithStaticAndInstanceInternalStateOfSameType.reset();596        ClassWithStaticAndInstanceInternalStateOfSameType tested = new ClassWithStaticAndInstanceInternalStateOfSameType();597        OneInstanceAndOneStaticFieldOfSameTypeContext context = new OneInstanceAndOneStaticFieldOfSameTypeContext();598        Whitebox.setInternalStateFromContext(tested, context);599        assertEquals(context.getMyStringState(), tested.getStringState());600        assertEquals("Static String state", tested.getStaticStringState());601    }602    @Test603    public void testSetInternalStateFromContext_contextHasOneInstanceAndOneStaticFieldOfSameType_onlyStaticContext()604            throws Exception {605        ClassWithStaticAndInstanceInternalStateOfSameType.reset();606        ClassWithStaticAndInstanceInternalStateOfSameType tested = new ClassWithStaticAndInstanceInternalStateOfSameType();607        Whitebox.setInternalStateFromContext(tested, OneInstanceAndOneStaticFieldOfSameTypeContext.class);608        assertEquals(OneInstanceAndOneStaticFieldOfSameTypeContext.getMyStaticStringState(), tested609                                                                                                     .getStaticStringState());610        assertEquals("String state", tested.getStringState());611    }612    @Test613    public void setInternalStateFromInstanceContextCopiesMatchingContextFieldsToTargetObjectByDefault()614            throws Exception {615        ClassWithSimpleInternalState tested = new ClassWithSimpleInternalState();616        InstanceFieldsNotInTargetContext fieldsNotInTargetContext = new InstanceFieldsNotInTargetContext();617        assertThat(tested.getSomeStringState()).isNotEqualTo(fieldsNotInTargetContext.getString());618        Whitebox.setInternalStateFromContext(tested, fieldsNotInTargetContext);619        assertEquals(tested.getSomeStringState(), fieldsNotInTargetContext.getString());620    }...ClassWithStaticAndInstanceInternalStateOfSameType
Using AI Code Generation
1import org.commonmark.node.Node;2import org.commonmark.parser.Parser;3import org.commonmark.renderer.html.HtmlRenderer;4public class MarkdownGenerator {5    public static void main(String[] args) {6";7        Parser parser = Parser.builder().build();8        Node document = parser.parse(markdown);9        HtmlRenderer renderer = HtmlRenderer.builder().build();10        String html = renderer.render(document);11        System.out.println(html);12    }13}ClassWithStaticAndInstanceInternalStateOfSameType
Using AI Code Generation
1ClassWithStaticAndInstanceInternalStateOfSameType classWithStaticAndInstanceInternalStateOfSameType = new ClassWithStaticAndInstanceInternalStateOfSameType();2String classWithStaticAndInstanceInternalStateOfSameTypeInternalState = Whitebox.getInternalState(classWithStaticAndInstanceInternalStateOfSameType, "internalState");3System.out.println("classWithStaticAndInstanceInternalStateOfSameTypeInternalState: " + classWithStaticAndInstanceInternalStateOfSameTypeInternalState);4String classWithStaticAndInstanceInternalStateOfSameTypeStaticInternalState = Whitebox.getInternalState(ClassWithStaticAndInstanceInternalStateOfSameType.class, "internalState");5System.out.println("classWithStaticAndInstanceInternalStateOfSameTypeStaticInternalState: " + classWithStaticAndInstanceInternalStateOfSameTypeStaticInternalState);6Whitebox.setInternalState(classWithStaticAndInstanceInternalStateOfSameType, "internalState", "new internal state");7classWithStaticAndInstanceInternalStateOfSameTypeInternalState = Whitebox.getInternalState(classWithStaticAndInstanceInternalStateOfSameType, "internalState");8System.out.println("classWithStaticAndInstanceInternalStateOfSameTypeInternalState: " + classWithStaticAndInstanceInternalStateOfSameTypeInternalState);9classWithStaticAndInstanceInternalStateOfSameTypeStaticInternalState = Whitebox.getInternalState(ClassWithStaticAndInstanceInternalStateOfSameType.class, "internalState");10System.out.println("classWithStaticAndInstanceInternalStateOfSameTypeStaticInternalState: " + classWithStaticAndInstanceInternalStateOfSameTypeStaticInternalState);11Whitebox.setInternalState(ClassWithStaticAndInstanceInternalStateOfSameType.class, "internalState", "new static internal state");ClassWithStaticAndInstanceInternalStateOfSameType
Using AI Code Generation
1public class ClassWithStaticAndInstanceInternalStateOfSameType {2  private static String instanceVariable = "instanceVariable";3  private static String staticVariable = "staticVariable";4  public static String getStaticVariable() {5    return staticVariable;6  }7  public static void setStaticVariable(String staticVariable) {8    ClassWithStaticAndInstanceInternalStateOfSameType.staticVariable = staticVariable;9  }10  public String getInstanceVariable() {11    return instanceVariable;12  }13  public void setInstanceVariable(String instanceVariable) {14    ClassWithStaticAndInstanceInternalStateOfSameType.instanceVariable = instanceVariable;15  }16}17public class ClassWithStaticAndInstanceInternalStateOfSameTypeTest {18  public void testSetStaticVariable() throws Exception {19    Whitebox.setInternalState(ClassWithStaticAndInstanceInternalStateOfSameType.class, "staticVariable", "newStaticVariable");20    assertEquals("newStaticVariable", ClassWithStaticAndInstanceInternalStateOfSameType.getStaticVariable());21  }22  public void testSetInstanceVariable() throws Exception {23    Whitebox.setInternalState(new ClassWithStaticAndInstanceInternalStateOfSameType(), "instanceVariable", "newInstanceVariable");24    assertEquals("newInstanceVariable", ClassWithStaticAndInstanceInternalStateOfSameType.getStaticVariable());25  }26}Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
