Best Mockito code snippet using org.mockito.AdditionalAnswers.answerVoid
Source:PipelineTest.java  
...40    Mockito.when(task1.getName())41        .thenReturn("Task 1");42    Mockito.when(task2.getName())43        .thenReturn("Task 1");44    Mockito.doAnswer(AdditionalAnswers.<Context>answerVoid((ctx) -> {45      Assert.assertNotNull(ctx.getInputPath());46      Assert.assertFalse(ctx.getInputPath().isPresent());47      Assert.assertNotNull(ctx.getOutputPath());48      Assert.assertTrue(ctx.getOutputPath().isPresent());49      Assert.assertNotEquals(path, ctx.getOutputPath().get());50    })).when(task1).execute(Mockito.any(Context.class));51    Mockito.doAnswer(AdditionalAnswers.<Context>answerVoid((ctx) -> {52      Assert.assertNotNull(ctx.getInputPath());53      Assert.assertFalse(ctx.getInputPath().isPresent());54      Assert.assertNotNull(ctx.getOutputPath());55      Assert.assertFalse(ctx.getOutputPath().isPresent());56    })).when(task2).execute(Mockito.any(Context.class));57    // @formatter:off58    Pipeline pipeline = Pipeline.builder()59        .withArtifactManager(manager)60        .withTask(task1)61          .withOutputArtifact(reference)62          .register()63        .withTask(task2)64          .register()65        .build();66    // @formatter:on67    pipeline.execute();68    Mockito.verify(task1, Mockito.times(1))69        .execute(Mockito.notNull());70    Mockito.verify(task2, Mockito.times(1))71        .execute(Mockito.notNull());72    Mockito.verify(manager, Mockito.times(1))73        .createArtifact(Mockito.eq(reference), Mockito.argThat((p) -> !path.equals(p)));74  }75  /**76   * Evaluates whether the pipeline correctly fails when the artifact manager fails to create an77   * artifact.78   */79  @Test(expected = TaskExecutionException.class)80  public void testArtifactCreationException() throws TaskException, IOException {81    ArtifactReference reference = Mockito.mock(ArtifactReference.class);82    Mockito.when(reference.getIdentifier())83        .thenReturn("test-artifact");84    ArtifactManager manager = Mockito.mock(ArtifactManager.class);85    Mockito.when(manager.getArtifact(reference))86        .thenReturn(Optional.empty());87    Mockito.doAnswer(AdditionalAnswers.<ArtifactReference, Path>answerVoid((r, p) -> {88      Assert.assertEquals(reference, r);89      throw new IOException("Task Failure");90    })).when(manager).createArtifact(Mockito.eq(reference), Mockito.notNull());91    Task task1 = Mockito.mock(Task.class);92    Task task2 = Mockito.mock(Task.class);93    Mockito.when(task1.getName())94        .thenReturn("Test 1");95    Mockito.when(task2.getName())96        .thenReturn("Test 2");97    // @formatter:off98    Pipeline pipeline = Pipeline.builder()99        .withArtifactManager(manager)100        .withTask(task1)101          .withOutputArtifact(reference)102          .register()103        .withTask(task2)104          .register()105        .build();106    // @formatter:on107    try {108      pipeline.execute();109    } catch (TaskExecutionException ex) {110      Mockito.verify(task1, Mockito.times(1)).execute(Mockito.notNull());111      Mockito.verify(task2, Mockito.never()).execute(Mockito.any());112      throw ex;113    }114  }115  /**116   * Evaluates whether the pipeline correctly fails when no artifact manager is passed but an output117   * artifact is requested.118   */119  @Test(expected = TaskDependencyException.class)120  public void testArtifactCreationMissingManager() throws TaskException {121    ArtifactReference reference = Mockito.mock(ArtifactReference.class);122    Mockito.when(reference.getIdentifier())123        .thenReturn("test-artifact");124    Task task1 = Mockito.mock(Task.class);125    Task task2 = Mockito.mock(Task.class);126    Mockito.when(task1.getName())127        .thenReturn("Task 1");128    Mockito.when(task2.getName())129        .thenReturn("Task 1");130    // @formatter:off131    Pipeline pipeline = Pipeline.builder()132        .withTask(task1)133          .withOutputArtifact(reference)134          .register()135        .withTask(task2)136          .register()137        .build();138    // @formatter:on139    try {140      pipeline.execute();141    } catch (TaskDependencyException ex) {142      Mockito.verify(task1, Mockito.never())143          .execute(Mockito.any());144      Mockito.verify(task2, Mockito.never())145          .execute(Mockito.any());146      throw ex;147    }148  }149  /**150   * Evaluates whether the pipeline correctly skips execution of a task when its output artifact151   * already exists.152   */153  @Test154  public void testArtifactCreationSkip() throws TaskException, IOException {155    Path path = Paths.get("test.file");156    ArtifactReference reference = Mockito.mock(ArtifactReference.class);157    Mockito.when(reference.getIdentifier())158        .thenReturn("test-artifact");159    Artifact artifact = Mockito.mock(Artifact.class);160    Mockito.when(artifact.getPath())161        .thenReturn(path);162    ArtifactManager manager = Mockito.mock(ArtifactManager.class);163    Mockito.when(manager.getArtifact(reference))164        .thenReturn(Optional.of(artifact));165    Task task1 = Mockito.mock(Task.class);166    Task task2 = Mockito.mock(Task.class);167    Mockito.when(task1.getName())168        .thenReturn("Test 1");169    Mockito.when(task2.getName())170        .thenReturn("Test 2");171    Mockito.when(task1.isValidArtifact(artifact, path))172        .thenReturn(true);173    Mockito.when(task2.isValidArtifact(artifact, path))174        .thenReturn(false);175    // @formatter:off176    Pipeline pipeline = Pipeline.builder()177        .withArtifactManager(manager)178        .withTask(task1)179          .withOutputArtifact(reference)180          .register()181        .withTask(task2)182          .withOutputArtifact(reference)183          .register()184        .build();185    // @formatter:on186    pipeline.execute();187    Mockito.verify(task1, Mockito.times(1)).isValidArtifact(artifact, path);188    Mockito.verify(task2, Mockito.times(1)).isValidArtifact(artifact, path);189    Mockito.verify(task1, Mockito.never()).execute(Mockito.any());190    Mockito.verify(task2, Mockito.times(1)).execute(Mockito.notNull());191    Mockito.verify(manager, Mockito.times(2)).getArtifact(reference);192    Mockito.verify(manager, Mockito.times(1)).createArtifact(Mockito.eq(reference), Mockito.any());193    Mockito.verify(artifact, Mockito.times(2)).getPath();194  }195  /**196   * Evaluates whether the pipeline correctly retrieves an artifact from the artifact manager and197   * presents it to the dependant task.198   */199  @Test200  public void testArtifactRetrieval() throws TaskException, IOException {201    Path path = Paths.get("test.file");202    ArtifactReference reference = Mockito.mock(ArtifactReference.class);203    Mockito.when(reference.getIdentifier())204        .thenReturn("test-artifact");205    Artifact artifact = Mockito.mock(Artifact.class);206    Mockito.when(artifact.getPath())207        .thenReturn(path);208    ArtifactManager manager = Mockito.mock(ArtifactManager.class);209    Mockito.when(manager.getArtifact(reference))210        .thenReturn(Optional.of(artifact));211    Task task1 = Mockito.mock(Task.class);212    Task task2 = Mockito.mock(Task.class);213    Mockito.when(task1.getName())214        .thenReturn("Test 1");215    Mockito.when(task2.getName())216        .thenReturn("Test 2");217    Mockito.doAnswer(AdditionalAnswers.<Context>answerVoid((ctx) -> {218      Assert.assertNotNull(ctx.getInputPath());219      Assert.assertTrue(ctx.getInputPath().isPresent());220      Assert.assertEquals(path, ctx.getInputPath().get());221      Assert.assertNotNull(ctx.getOutputPath());222      Assert.assertFalse(ctx.getOutputPath().isPresent());223    })).when(task1).execute(Mockito.any(Context.class));224    Mockito.doAnswer(AdditionalAnswers.<Context>answerVoid((ctx) -> {225      Assert.assertNotNull(ctx.getInputPath());226      Assert.assertFalse(ctx.getInputPath().isPresent());227      Assert.assertNotNull(ctx.getOutputPath());228      Assert.assertFalse(ctx.getOutputPath().isPresent());229    })).when(task2).execute(Mockito.any(Context.class));230    // @formatter:off231    Pipeline pipeline = Pipeline.builder()232        .withArtifactManager(manager)233        .withTask(task1)234          .withInputArtifact(reference)235          .register()236        .withTask(task2)237          .register()238        .build();239    // @formatter:on240    pipeline.execute();241    Mockito.verify(task1, Mockito.times(1)).execute(Mockito.notNull());242    Mockito.verify(task2, Mockito.times(1)).execute(Mockito.notNull());243    Mockito.verify(manager, Mockito.times(1)).getArtifact(reference);244    Mockito.verify(artifact, Mockito.times(1)).getPath();245  }246  /**247   * Evaluates whether the pipeline correctly fails when the artifact manager cannot provide a248   * required artifact.249   */250  @Test(expected = TaskDependencyException.class)251  public void testArtifactRetrievalWithoutArtifact() throws TaskException, IOException {252    Task task1 = Mockito.mock(Task.class);253    Task task2 = Mockito.mock(Task.class);254    Mockito.when(task1.getName())255        .thenReturn("Test 1");256    Mockito.when(task2.getName())257        .thenReturn("Test 2");258    ArtifactReference reference = Mockito.mock(ArtifactReference.class);259    Mockito.when(reference.getIdentifier())260        .thenReturn("test-artifact");261    ArtifactManager manager = Mockito.mock(ArtifactManager.class);262    Mockito.when(manager.getArtifact(reference))263        .thenReturn(Optional.empty());264    // @formatter:off265    Pipeline pipeline = Pipeline.builder()266        .withArtifactManager(manager)267        .withTask(task1)268          .withInputArtifact(reference)269          .register()270        .withTask(task2)271          .register()272        .build();273    // @formatter:on274    try {275      pipeline.execute();276    } catch (TaskDependencyException ex) {277      Mockito.verify(task1, Mockito.never()).execute(Mockito.any());278      Mockito.verify(task2, Mockito.never()).execute(Mockito.any());279      Mockito.verify(manager, Mockito.times(1))280          .getArtifact(reference);281      Mockito.verifyNoMoreInteractions(manager);282      throw ex;283    }284  }285  /**286   * Evaluates whether the pipeline correctly fails its execution when an artifact is requested but287   * no manager is defined.288   */289  @Test(expected = TaskDependencyException.class)290  public void testArtifactRetrievalWithoutManager() throws TaskException {291    Task task1 = Mockito.mock(Task.class);292    Task task2 = Mockito.mock(Task.class);293    Mockito.when(task1.getName())294        .thenReturn("Test 1");295    Mockito.when(task2.getName())296        .thenReturn("Test 2");297    ArtifactReference reference = Mockito.mock(ArtifactReference.class);298    Mockito.when(reference.getIdentifier())299        .thenReturn("test-artifact");300    // @formatter:off301    Pipeline pipeline = Pipeline.builder()302        .withTask(task1)303          .withInputArtifact(reference)304          .register()305        .withTask(task2)306          .register()307        .build();308    // @formatter:on309    try {310      pipeline.execute();311    } catch (TaskDependencyException ex) {312      Mockito.verify(task1, Mockito.never()).execute(Mockito.any());313      Mockito.verify(task2, Mockito.never()).execute(Mockito.any());314      throw ex;315    }316  }317  /**318   * Evaluates whether the pipeline executes all tasks within their respective order of319   * registration.320   */321  @Test322  public void testExecutionOrder() throws TaskException {323    Task task1 = Mockito.mock(Task.class);324    Task task2 = Mockito.mock(Task.class);325    Task task3 = Mockito.mock(Task.class);326    Mockito.when(task1.getName())327        .thenReturn("Task 1");328    Mockito.when(task2.getName())329        .thenReturn("Task 2");330    Mockito.when(task3.getName())331        .thenReturn("Task 3");332    Pipeline pipeline = Pipeline.builder()333        .withTask(task1).register()334        .withTask(task2).register()335        .withTask(task3).register()336        .build();337    pipeline.execute();338    InOrder o = Mockito.inOrder(task1, task2, task3);339    o.verify(task1, Mockito.calls(1)).execute(Mockito.notNull());340    o.verify(task2, Mockito.calls(1)).execute(Mockito.notNull());341    o.verify(task3, Mockito.calls(1)).execute(Mockito.notNull());342  }343  /**344   * Evaluates whether the pipeline correctly fails when one of its tasks fails.345   */346  @Test(expected = TaskExecutionException.class)347  public void testExecutionException() throws TaskException {348    Task task1 = Mockito.mock(Task.class);349    Task task2 = Mockito.mock(Task.class);350    Mockito.when(task1.getName())351        .thenReturn("Task 1");352    Mockito.when(task2.getName())353        .thenReturn("Task 2");354    Mockito.doAnswer(AdditionalAnswers.<Context>answerVoid((ctx) -> {355      throw new TaskExecutionException("Test Failure");356    })).when(task1).execute(Mockito.notNull());357    Pipeline pipeline = Pipeline.builder()358        .withTask(task1).register()359        .withTask(task2).register()360        .build();361    try {362      pipeline.execute();363    } catch (TaskExecutionException ex) {364      Mockito.verify(task1, Mockito.times(1)).execute(Mockito.any());365      Mockito.verify(task2, Mockito.never()).execute(Mockito.any());366      throw ex;367    }368  }369  /**370   * Evaluates whether the pipeline correctly resolves arbitrary artifact parameters.371   */372  @Test373  public void testParameterArtifact() throws TaskException, IOException {374    Path testPath = Paths.get("test");375    ArtifactReference reference = Mockito.mock(ArtifactReference.class);376    Mockito.when(reference.getIdentifier())377        .thenReturn("test");378    Artifact artifact = Mockito.mock(Artifact.class);379    Mockito.when(artifact.getPath())380        .thenReturn(testPath);381    ArtifactManager manager = Mockito.mock(ArtifactManager.class);382    Mockito.when(manager.getArtifact(reference))383        .thenReturn(Optional.of(artifact));384    Task task1 = Mockito.mock(Task.class);385    Task task2 = Mockito.mock(Task.class);386    Mockito.when(task1.getName())387        .thenReturn("Task 1");388    Mockito.when(task2.getName())389        .thenReturn("Task 2");390    Mockito.when(task1.getAvailableParameterNames())391        .thenReturn(Collections.singleton("test"));392    Mockito.when(task1.getRequiredParameterNames())393        .thenReturn(Collections.singleton("test"));394    Mockito.doAnswer(AdditionalAnswers.<Context>answerVoid((ctx) -> {395      Assert.assertTrue(ctx.getParameterPath("test").isPresent());396      Assert.assertEquals(testPath, ctx.getParameterPath("test").get());397    })).when(task1).execute(Mockito.notNull());398    Mockito.doAnswer(AdditionalAnswers.<Context>answerVoid((ctx) -> {399      Assert.assertFalse(ctx.getParameterPath("test").isPresent());400    })).when(task2).execute(Mockito.notNull());401    // @formatter:off402    Pipeline pipeline = Pipeline.builder()403        .withArtifactManager(manager)404        .withTask(task1)405          .withParameter("test", reference)406          .register()407        .withTask(task2).register()408        .build();409    pipeline.execute();410    // @formatter:on411    Mockito.verify(task1, Mockito.times(1)).execute(Mockito.notNull());412    Mockito.verify(task2, Mockito.times(1)).execute(Mockito.notNull());413  }414  /**415   * Evaluates whether the pipeline correctly passes arbitrary path parameters to its tasks where416   * configured.417   */418  @Test419  public void testParameterPath() throws TaskException {420    Path testPath = Paths.get("test");421    Task task1 = Mockito.mock(Task.class);422    Task task2 = Mockito.mock(Task.class);423    Mockito.when(task1.getName())424        .thenReturn("Task 1");425    Mockito.when(task2.getName())426        .thenReturn("Task 2");427    Mockito.when(task1.getAvailableParameterNames())428        .thenReturn(Collections.singleton("test"));429    Mockito.when(task1.getRequiredParameterNames())430        .thenReturn(Collections.singleton("test"));431    Mockito.doAnswer(AdditionalAnswers.<Context>answerVoid((ctx) -> {432      Assert.assertTrue(ctx.getParameterPath("test").isPresent());433      Assert.assertEquals(testPath, ctx.getParameterPath("test").get());434    })).when(task1).execute(Mockito.notNull());435    Mockito.doAnswer(AdditionalAnswers.<Context>answerVoid((ctx) -> {436      Assert.assertFalse(ctx.getParameterPath("test").isPresent());437    })).when(task2).execute(Mockito.notNull());438    // @formatter:off439    Pipeline pipeline = Pipeline.builder()440        .withTask(task1)441          .withParameter("test", testPath)442          .register()443        .withTask(task2).register()444        .build();445    pipeline.execute();446    // @formatter:on447    Mockito.verify(task1, Mockito.times(1)).execute(Mockito.notNull());448    Mockito.verify(task2, Mockito.times(1)).execute(Mockito.notNull());449  }...Source:StubbingWithAdditionalAnswersTest.java  
...5package org.mockitousage.stubbing;6import static org.assertj.core.api.Assertions.assertThat;7import static org.assertj.core.api.Assertions.within;8import static org.mockito.AdditionalAnswers.answer;9import static org.mockito.AdditionalAnswers.answerVoid;10import static org.mockito.AdditionalAnswers.returnsArgAt;11import static org.mockito.AdditionalAnswers.returnsFirstArg;12import static org.mockito.AdditionalAnswers.returnsLastArg;13import static org.mockito.AdditionalAnswers.returnsSecondArg;14import static org.mockito.AdditionalAnswers.answersWithDelay;15import static org.mockito.BDDMockito.any;16import static org.mockito.BDDMockito.anyInt;17import static org.mockito.BDDMockito.anyString;18import static org.mockito.BDDMockito.eq;19import static org.mockito.BDDMockito.given;20import static org.mockito.BDDMockito.mock;21import static org.mockito.BDDMockito.times;22import static org.mockito.BDDMockito.verify;23import org.junit.Test;24import org.junit.runner.RunWith;25import org.mockito.Mock;26import org.mockito.junit.MockitoJUnitRunner;27import org.mockito.stubbing.Answer1;28import org.mockito.stubbing.Answer2;29import org.mockito.stubbing.Answer3;30import org.mockito.stubbing.Answer4;31import org.mockito.stubbing.Answer5;32import org.mockito.stubbing.VoidAnswer1;33import org.mockito.stubbing.VoidAnswer2;34import org.mockito.stubbing.VoidAnswer3;35import org.mockito.stubbing.VoidAnswer4;36import org.mockito.stubbing.VoidAnswer5;37import org.mockitousage.IMethods;38import java.util.Date;39@RunWith(MockitoJUnitRunner.class)40public class StubbingWithAdditionalAnswersTest {41    @Mock IMethods iMethods;42    @Test43    public void can_return_arguments_of_invocation() throws Exception {44        given(iMethods.objectArgMethod(any())).will(returnsFirstArg());45        given(iMethods.threeArgumentMethod(eq(0), any(), anyString())).will(returnsSecondArg());46        given(iMethods.threeArgumentMethod(eq(1), any(), anyString())).will(returnsLastArg());47        assertThat(iMethods.objectArgMethod("first")).isEqualTo("first");48        assertThat(iMethods.threeArgumentMethod(0, "second", "whatever")).isEqualTo("second");49        assertThat(iMethods.threeArgumentMethod(1, "whatever", "last")).isEqualTo("last");50    }51    @Test52    public void can_return_after_delay() throws Exception {53        final long sleepyTime = 500L;54        given(iMethods.objectArgMethod(any())).will(answersWithDelay(sleepyTime, returnsFirstArg()));55        final Date before = new Date();56        assertThat(iMethods.objectArgMethod("first")).isEqualTo("first");57        final Date after = new Date();58        final long timePassed = after.getTime() - before.getTime();59        assertThat(timePassed).isCloseTo(sleepyTime, within(15L));60    }61    @Test62    public void can_return_expanded_arguments_of_invocation() throws Exception {63        given(iMethods.varargsObject(eq(1), any())).will(returnsArgAt(3));64        assertThat(iMethods.varargsObject(1, "bob", "alexander", "alice", "carl")).isEqualTo("alice");65    }66    @Test67    public void can_return_primitives_or_wrappers() throws Exception {68        given(iMethods.toIntPrimitive(anyInt())).will(returnsFirstArg());69        given(iMethods.toIntWrapper(anyInt())).will(returnsFirstArg());70        assertThat(iMethods.toIntPrimitive(1)).isEqualTo(1);71        assertThat(iMethods.toIntWrapper(1)).isEqualTo(1);72    }73    @Test74    public void can_return_based_on_strongly_types_one_parameter_function() throws Exception {75        given(iMethods.simpleMethod(anyString()))76                .will(answer(new Answer1<String, String>() {77                    public String answer(String s) {78                        return s;79                    }80                }));81        assertThat(iMethods.simpleMethod("string")).isEqualTo("string");82    }83    @Test84    public void will_execute_a_void_based_on_strongly_typed_one_parameter_function() throws Exception {85        final IMethods target = mock(IMethods.class);86        given(iMethods.simpleMethod(anyString()))87                .will(answerVoid(new VoidAnswer1<String>() {88                    public void answer(String s) {89                        target.simpleMethod(s);90                    }91                }));92        // invoke on iMethods93        iMethods.simpleMethod("string");94        // expect the answer to write correctly to "target"95        verify(target, times(1)).simpleMethod("string");96    }97    @Test98    public void can_return_based_on_strongly_typed_two_parameter_function() throws Exception {99        given(iMethods.simpleMethod(anyString(), anyInt()))100            .will(answer(new Answer2<String, String, Integer>() {101                public String answer(String s, Integer i) {102                    return s + "-" + i;103                }104            }));105        assertThat(iMethods.simpleMethod("string",1)).isEqualTo("string-1");106    }107    @Test108    public void will_execute_a_void_based_on_strongly_typed_two_parameter_function() throws Exception {109        final IMethods target = mock(IMethods.class);110        given(iMethods.simpleMethod(anyString(), anyInt()))111            .will(answerVoid(new VoidAnswer2<String, Integer>() {112                public void answer(String s, Integer i) {113                    target.simpleMethod(s, i);114                }115            }));116        // invoke on iMethods117        iMethods.simpleMethod("string",1);118        // expect the answer to write correctly to "target"119        verify(target, times(1)).simpleMethod("string", 1);120    }121    @Test122    public void can_return_based_on_strongly_typed_three_parameter_function() throws Exception {123        final IMethods target = mock(IMethods.class);124        given(iMethods.threeArgumentMethodWithStrings(anyInt(), anyString(), anyString()))125                .will(answer(new Answer3<String, Integer, String, String>() {126                    public String answer(Integer i, String s1, String s2) {127                        target.threeArgumentMethodWithStrings(i, s1, s2);128                        return "answered";129                    }130                }));131        assertThat(iMethods.threeArgumentMethodWithStrings(1, "string1", "string2")).isEqualTo("answered");132        verify(target, times(1)).threeArgumentMethodWithStrings(1, "string1", "string2");133    }134    @Test135    public void will_execute_a_void_based_on_strongly_typed_three_parameter_function() throws Exception {136        final IMethods target = mock(IMethods.class);137        given(iMethods.threeArgumentMethodWithStrings(anyInt(), anyString(), anyString()))138                .will(answerVoid(new VoidAnswer3<Integer, String, String>() {139                    public void answer(Integer i, String s1, String s2) {140                        target.threeArgumentMethodWithStrings(i, s1, s2);141                    }142                }));143        // invoke on iMethods144        iMethods.threeArgumentMethodWithStrings(1, "string1", "string2");145        // expect the answer to write correctly to "target"146        verify(target, times(1)).threeArgumentMethodWithStrings(1, "string1", "string2");147    }148    @Test149    public void can_return_based_on_strongly_typed_four_parameter_function() throws Exception {150        final IMethods target = mock(IMethods.class);151        given(iMethods.fourArgumentMethod(anyInt(), anyString(), anyString(), any(boolean[].class)))152                .will(answer(new Answer4<String, Integer, String, String, boolean[]>() {153                    public String answer(Integer i, String s1, String s2, boolean[] a) {154                        target.fourArgumentMethod(i, s1, s2, a);155                        return "answered";156                    }157                }));158        boolean[] booleanArray = { true, false };159        assertThat(iMethods.fourArgumentMethod(1, "string1", "string2", booleanArray)).isEqualTo("answered");160        verify(target, times(1)).fourArgumentMethod(1, "string1", "string2", booleanArray);161    }162    @Test163    public void will_execute_a_void_based_on_strongly_typed_four_parameter_function() throws Exception {164        final IMethods target = mock(IMethods.class);165        given(iMethods.fourArgumentMethod(anyInt(), anyString(), anyString(), any(boolean[].class)))166                .will(answerVoid(new VoidAnswer4<Integer, String, String, boolean[]>() {167                    public void answer(Integer i, String s1, String s2, boolean[] a) {168                        target.fourArgumentMethod(i, s1, s2, a);169                    }170                }));171        // invoke on iMethods172        boolean[] booleanArray = { true, false };173        iMethods.fourArgumentMethod(1, "string1", "string2", booleanArray);174        // expect the answer to write correctly to "target"175        verify(target, times(1)).fourArgumentMethod(1, "string1", "string2", booleanArray);176    }177    @Test178    public void can_return_based_on_strongly_typed_five_parameter_function() throws Exception {179        final IMethods target = mock(IMethods.class);180        given(iMethods.simpleMethod(anyString(), anyInt(), anyInt(), anyInt(), anyInt()))181                .will(answer(new Answer5<String, String, Integer, Integer, Integer, Integer>() {182                    public String answer(String s1, Integer i1, Integer i2, Integer i3, Integer i4) {183                        target.simpleMethod(s1, i1, i2, i3, i4);184                        return "answered";185                    }186                }));187        assertThat(iMethods.simpleMethod("hello", 1, 2, 3, 4)).isEqualTo("answered");188        verify(target, times(1)).simpleMethod("hello", 1, 2, 3, 4);189    }190    @Test191    public void will_execute_a_void_based_on_strongly_typed_five_parameter_function() throws Exception {192        final IMethods target = mock(IMethods.class);193        given(iMethods.simpleMethod(anyString(), anyInt(), anyInt(), anyInt(), anyInt()))194                .will(answerVoid(new VoidAnswer5<String, Integer, Integer, Integer, Integer>() {195                    public void  answer(String s1, Integer i1, Integer i2, Integer i3, Integer i4) {196                        target.simpleMethod(s1, i1, i2, i3, i4);197                    }198                }));199        // invoke on iMethods200        iMethods.simpleMethod("hello", 1, 2, 3, 4);201        // expect the answer to write correctly to "target"202        verify(target, times(1)).simpleMethod("hello", 1, 2, 3, 4);203    }204}...Source:OfficalTest_Part_4.java  
...158//        // will depend on the callback being invoked159//        void receive(String item);160//161//        // Java 8 - style 1162//        doAnswer(AdditionalAnswers.answerVoid((operand, callback) -> callback.receive("dummy"))163//                .when(mock).execute(anyString(), any(Callback.class));164//165//        // Java 8 - style 2 - assuming static import of AdditionalAnswers166//        doAnswer(answerVoid((String operand, Callback callback) -> callback.receive("dummy"))167//                .when(mock).execute(anyString(), any(Callback.class));168//169//        // Java 8 - style 3 - where mocking function to is a static member of test class170//        private static void dummyCallbackImpl(String operation, Callback callback) {171//            callback.receive("dummy");172//        }173//174//        doAnswer(answerVoid(TestClass::dummyCallbackImpl)175//                .when(mock).execute(anyString(), any(Callback.class));176//177//        // Java 7178//        doAnswer(answerVoid(new VoidAnswer2() {179//            public void answer(String operation, Callback callback) {180//                callback.receive("dummy");181//            }})).when(mock).execute(anyString(), any(Callback.class));182//183//        // returning a value is possible with the answer() function184//        // and the non-void version of the functional interfaces185//        // so if the mock interface had a method like186//        boolean isSameString(String input1, String input2);187//188//        // this could be mocked189//        // Java 8190//        doAnswer(AdditionalAnswers.answer((input1, input2) -> input1.equals(input2))))191//        .when(mock).execute(anyString(), anyString());192//...Source:TravelNowHotelsServiceTest.java  
...47		testHotel.setId(1);48		List<BasicHotelInfo> ownerHotels = new ArrayList<BasicHotelInfo>();49		ownerHotels.add(testHotel);50		when(hotelDao.getHotelsByOwnerId(1)).thenReturn(ownerHotels);51		doAnswer(AdditionalAnswers.answerVoid((operand, name) -> testHotel.setName((String) name) )52		).when(hotelDao).updateHotelName(anyInt(), anyString());53		54		doAnswer(AdditionalAnswers.answerVoid((operand, desc) -> testHotel.setDescription((String) desc) )55		).when(hotelDao).updateHotelDescription(anyInt(), anyString());		56		doAnswer(AdditionalAnswers.answerVoid((operand, num) -> testHotel.setTelephoneNum((Integer) num) )57		).when(hotelDao).updateTelNumber(anyInt(), anyInt());		58		59		// test valid data60 		hotelsService.updateBasicHotelInfo(1, "TestHotel2", "This is a test hotel 2", 123456798, 1);61		assertEquals(testHotel.getName(), "TestHotel2");62		assertEquals(testHotel.getDescription(), "This is a test hotel 2");63		assertEquals(testHotel.getTelephoneNum(), 123456798);64		// test invalid data65		Exception exception = null;66		// empty name67		try{68			hotelsService.updateBasicHotelInfo(1, "", "This is a test hotel 2", 123456798, 1);	69		}70		catch(Exception ex)71		{72			exception = ex;73		}74		assertNotNull(exception);75		assertTrue(exception.getMessage().contains("Hotel name can't be empty"));76		// empty description77		exception = null;78		try{79			hotelsService.updateBasicHotelInfo(1, "TestHotel2", "", 123456798, 1);	80		}81		catch(Exception ex)82		{83			exception = ex;84		}85		assertNotNull(exception);86		assertTrue(exception.getMessage().contains("Description can't be empty"));87		// wrong tel num digist num88		exception = null;89		try{90			hotelsService.updateBasicHotelInfo(1, "TestHotel2", "This is a test hotel 2", 1236798, 1);	91		}92		catch(Exception ex)93		{94			exception = ex;95		}96		assertNotNull(exception);97		assertTrue(exception.getMessage().contains("Tel number has wrong number of digits"));98	}99	@Test100	void testAddressValidators() throws Exception101	{102		// mock preparation103		BasicHotelInfo testHotel = new BasicHotelInfo();104		testHotel.setId(1);105		List<BasicHotelInfo> ownerHotels = new ArrayList<BasicHotelInfo>();106		ownerHotels.add(testHotel);107		when(hotelDao.getHotelsByOwnerId(1)).thenReturn(ownerHotels);108		doAnswer(AdditionalAnswers.answerVoid((operand, name) -> testHotel.setAddress((Address) name) )109		).when(hotelDao).updateAddress(anyInt(), any(Address.class));110		Address address = new Address();111		address.setCity("Warszawa");112		address.setRegion("Mazowieckie");113		address.setCountry("Polska");114		address.setStreet("Grodzka");115		address.setNumber(25);116		address.setPostalcode("02-123");117		118		// test valid data119		hotelsService.updateAddress(1, address, 1);120		assertEquals(testHotel.getAddress(), address);121		// test invalid data122		// empty city...Source:NacosCenterRepositoryTest.java  
...72    @SneakyThrows73    public void assertWatch() {74        final String expectValue = "expectValue";75        final String[] actualValue = {null};76        doAnswer(AdditionalAnswers.answerVoid(getListenerAnswer(expectValue)))77                .when(configService)78                .addListener(anyString(), anyString(), any(Listener.class));79        DataChangedEventListener listener = dataChangedEvent -> actualValue[0] = dataChangedEvent.getValue();80        configCenterRepository.watch("/sharding/test", listener);81        assertThat(actualValue[0], is(expectValue));82    }83    @Test84    @SneakyThrows85    public void assertGetWithNonExistentKey() {86        assertNull(configCenterRepository.get("/sharding/nonExistentKey"));87    }88    @Test89    @SneakyThrows90    public void assertGetWhenThrowException() {91        doThrow(NacosException.class).when(configService).getConfig(eq("sharding.test"), eq(group), anyLong());92        assertNull(configCenterRepository.get("/sharding/test"));93    }94    @Test95    @SneakyThrows96    public void assertUpdate() {97        String updatedValue = "newValue";98        configCenterRepository.persist("/sharding/test", updatedValue);99        verify(configService).publishConfig("sharding.test", group, updatedValue);100    }101    @Test102    @SneakyThrows103    public void assertWatchUpdatedChangedType() {104        final String expectValue = "expectValue";105        final String[] actualValue = {null};106        final ChangedType[] actualType = {null};107        doAnswer(AdditionalAnswers.answerVoid(getListenerAnswer(expectValue)))108                .when(configService)109                .addListener(anyString(), anyString(), any(Listener.class));110        DataChangedEventListener listener = dataChangedEvent -> {111            actualValue[0] = dataChangedEvent.getValue();112            actualType[0] = dataChangedEvent.getChangedType();113        };114        configCenterRepository.watch("/sharding/test", listener);115        assertThat(actualValue[0], is(expectValue));116        assertThat(actualType[0], is(ChangedType.UPDATED));117    }118    @Test119    @SneakyThrows120    public void assertWatchDeletedChangedType() {121        final ChangedType[] actualType = {null};122        doAnswer(AdditionalAnswers.answerVoid(getListenerAnswer(null)))123                .when(configService)124                .addListener(anyString(), anyString(), any(Listener.class));125        DataChangedEventListener listener = dataChangedEvent -> actualType[0] = dataChangedEvent.getChangedType();126        configCenterRepository.watch("/sharding/test", listener);127        assertThat(actualType[0], is(ChangedType.UPDATED));128    }129    private VoidAnswer3 getListenerAnswer(final String expectValue) {130        return (VoidAnswer3<String, String, Listener>) (dataId, group, listener) -> listener.receiveConfigInfo(expectValue);131    }132}...Source:WithAdditionalAnswers.java  
...71    default<T, A> Answer<T> answer(Answer1<T, A> answer) {72        return AdditionalAnswers.answer(answer);73    }74    /**75     * @see AdditionalAnswers#answerVoid(VoidAnswer1)76     */77    default<A> Answer<Void> answerVoid(VoidAnswer1<A> answer) {78        return AdditionalAnswers.answerVoid(answer);79    }80    /**81     * @see AdditionalAnswers#answer(Answer2)82     */83    default<T, A, B> Answer<T> answer(Answer2<T, A, B> answer) {84        return AdditionalAnswers.answer(answer);85    }86    /**87     * @see AdditionalAnswers#answerVoid(VoidAnswer2)88     */89    default<A, B> Answer<Void> answerVoid(VoidAnswer2<A, B> answer) {90        return AdditionalAnswers.answerVoid(answer);91    }92    /**93     * @see AdditionalAnswers#answer(Answer3)94     */95    default<T, A, B, C> Answer<T> answer(Answer3<T, A, B, C> answer) {96        return AdditionalAnswers.answer(answer);97    }98    /**99     * @see AdditionalAnswers#answerVoid(VoidAnswer3)100     */101    default<A, B, C> Answer<Void> answerVoid(VoidAnswer3<A, B, C> answer) {102        return AdditionalAnswers.answerVoid(answer);103    }104    /**105     * @see AdditionalAnswers#answer(Answer4)106     */107    default<T, A, B, C, D> Answer<T> answer(Answer4<T, A, B, C, D> answer) {108        return AdditionalAnswers.answer(answer);109    }110    /**111     * @see AdditionalAnswers#answerVoid(VoidAnswer4)112     */113    default<A, B, C, D> Answer<Void> answerVoid(VoidAnswer4<A, B, C, D> answer) {114        return AdditionalAnswers.answerVoid(answer);115    }116    /**117     * @see AdditionalAnswers#answer(Answer5)118     */119    default<T, A, B, C, D, E> Answer<T> answer(Answer5<T, A, B, C, D, E> answer) {120        return AdditionalAnswers.answer(answer);121    }122    /**123     * @see AdditionalAnswers#answerVoid(VoidAnswer5)124     */125    default<A, B, C, D, E> Answer<Void> answerVoid(VoidAnswer5<A, B, C, D, E> answer) {126        return AdditionalAnswers.answerVoid(answer);127    }128    /**129     * @see AdditionalAnswers#answer(Answer6)130     */131    default<T, A, B, C, D, E, F> Answer<T> answer(Answer6<T, A, B, C, D, E, F> answer) {132        return AdditionalAnswers.answer(answer);133    }134    /**135     * @see AdditionalAnswers#answerVoid(VoidAnswer6)136     */137    default<A, B, C, D, E, F> Answer<Void> answerVoid(VoidAnswer6<A, B, C, D, E, F> answer) {138        return AdditionalAnswers.answerVoid(answer);139    }140    141}...Source:Java8LambdaCustomAnswerSupportTest.java  
...27         * For convenience it is possible to write custom answers/actions, which use the28         * parameters to the method call, as Java 8 lambdas. Even in Java 7 and lower these29         * custom answers based on a typed interface can reduce boilerplate. In particular,30         * this approach will make it easier to test functions which use callbacks. The methods31         * answer and answerVoid can be used to create the answer. They rely on the related32         * answer interfaces in org.mockito.stubbing that support answers up to 5 parameters.33         */34    }35    @Test36    void name() {37        /*38        // Example interface to be mocked has a function like:39        void execute(String operand, Callback callback);40        // the example callback has a function and the class under test41        // will depend on the callback being invoked42        void receive(String item);43        // Java 8 - style 144        doAnswer(AdditionalAnswers.answerVoid((operand, callback) -> callback.receive("dummy"))45                .when(mock).execute(anyString(), any(Callback.class));46        // Java 8 - style 2 - assuming static import of AdditionalAnswers47        doAnswer(answerVoid((String operand, Callback callback) -> callback.receive("dummy"))48                .when(mock).execute(anyString(), any(Callback.class));49        // Java 8 - style 3 - where mocking function to is a static member of test class50        private static void dummyCallbackImpl(String operation, Callback callback) {51            callback.receive("dummy");52        }53        doAnswer(answerVoid(TestClass::dummyCallbackImpl)54                .when(mock).execute(anyString(), any(Callback.class));55        // Java 756        doAnswer(answerVoid(new VoidAnswer2() {57            public void answer(String operation, Callback callback) {58                callback.receive("dummy");59            }})).when(mock).execute(anyString(), any(Callback.class));60        // returning a value is possible with the answer() function61        // and the non-void version of the functional interfaces62        // so if the mock interface had a method like63        boolean isSameString(String input1, String input2);64        // this could be mocked65        // Java 866        doAnswer(AdditionalAnswers.answer((input1, input2) -> input1.equals(input2))))67     .when(mock).execute(anyString(), anyString());68        // Java 769        doAnswer(answer(new Answer2() {70            public String answer(String input1, String input2) {...Source:AdditionalAnswers.java  
...43    public static <T, A> Answer<T> answer(Answer1<T, A> answer1) {44        return AnswerFunctionalInterfaces.toAnswer(answer1);45    }46    @Incubating47    public static <A> Answer<Void> answerVoid(VoidAnswer1<A> voidAnswer1) {48        return AnswerFunctionalInterfaces.toAnswer(voidAnswer1);49    }50    @Incubating51    public static <T, A, B> Answer<T> answer(Answer2<T, A, B> answer2) {52        return AnswerFunctionalInterfaces.toAnswer(answer2);53    }54    @Incubating55    public static <A, B> Answer<Void> answerVoid(VoidAnswer2<A, B> voidAnswer2) {56        return AnswerFunctionalInterfaces.toAnswer(voidAnswer2);57    }58    @Incubating59    public static <T, A, B, C> Answer<T> answer(Answer3<T, A, B, C> answer3) {60        return AnswerFunctionalInterfaces.toAnswer(answer3);61    }62    @Incubating63    public static <A, B, C> Answer<Void> answerVoid(VoidAnswer3<A, B, C> voidAnswer3) {64        return AnswerFunctionalInterfaces.toAnswer(voidAnswer3);65    }66    @Incubating67    public static <T, A, B, C, D> Answer<T> answer(Answer4<T, A, B, C, D> answer4) {68        return AnswerFunctionalInterfaces.toAnswer(answer4);69    }70    @Incubating71    public static <A, B, C, D> Answer<Void> answerVoid(VoidAnswer4<A, B, C, D> voidAnswer4) {72        return AnswerFunctionalInterfaces.toAnswer(voidAnswer4);73    }74    @Incubating75    public static <T, A, B, C, D, E> Answer<T> answer(Answer5<T, A, B, C, D, E> answer5) {76        return AnswerFunctionalInterfaces.toAnswer(answer5);77    }78    @Incubating79    public static <A, B, C, D, E> Answer<Void> answerVoid(VoidAnswer5<A, B, C, D, E> voidAnswer5) {80        return AnswerFunctionalInterfaces.toAnswer(voidAnswer5);81    }82}...answerVoid
Using AI Code Generation
1import org.mockito.AdditionalAnswers;2import org.mockito.Mockito;3import org.mockito.invocation.InvocationOnMock;4import org.mockito.stubbing.Answer;5public class AnswerVoidExample {6    public static void main(String[] args) {7        final Answer answer = AdditionalAnswers.answerVoid(new Answer() {8            public Object answer(InvocationOnMock invocation) throws Throwable {9                System.out.println("Hello World!");10                return null;11            }12        });13        Runnable runnable = Mockito.mock(Runnable.class, answer);14        runnable.run();15    }16}answerVoid
Using AI Code Generation
1package com.ack.j2se.mock;2import org.junit.Test;3import org.mockito.AdditionalAnswers;4import org.mockito.Mockito;5import java.util.ArrayList;6import java.util.List;7public class AnswerVoidTest {8    public void testAnswerVoid() {9        List mockedList = Mockito.mock( ArrayList.class );10        Mockito.doAnswer( AdditionalAnswers.answerVoid() ).when( mockedList ).clear();11        mockedList.clear();12    }13}answerVoid
Using AI Code Generation
1import static org.mockito.Mockito.*;2import static org.mockito.AdditionalAnswers.*;3import org.mockito.invocation.InvocationOnMock;4import org.mockito.stubbing.Answer;5public class AnswerVoidExample {6    public static void main(String[] args) {7        MyClass test = mock(MyClass.class);8        doAnswer(answerVoid(new Answer() {9            public Object answer(InvocationOnMock invocation) {10                Object[] args = invocation.getArguments();11                System.out.println("called with arguments: " + args[0]);12                return null;13            }14        })).when(test).doSomething(anyString());15        test.doSomething("one");16        test.doSomething("two");17    }18}19import static org.mockito.Mockito.*;20import static org.mockito.Mockito.answerVoid;21import org.mockito.invocation.InvocationOnMock;22import org.mockito.stubbing.Answer;23public class AnswerVoidExample {24    public static void main(String[] args) {25        MyClass test = mock(MyClass.class);26        doAnswer(answerVoid(new Answer() {27            public Object answer(InvocationOnMock invocation) {28                Object[] args = invocation.getArguments();29                System.out.println("called with arguments: " + args[0]);30                return null;31            }32        })).when(test).doSomething(anyString());33        test.doSomething("one");34        test.doSomething("two");35    }36}37import static org.mockito.Mockito.*;38import org.mockito.invocation.InvocationOnMock;39import org.mockito.stubbing.Answer;40public class AnswerVoidExample {41    public static void main(String[] args) {42        MyClass test = mock(MyClass.class);43        doAnswer(answerVoid(new Answer() {44            public Object answer(InvocationOnMock invocation) {45                Object[] args = invocation.getArguments();46                System.out.println("called with arguments: " + args[0]);47                return null;48            }49        })).when(test).doSomething(anyString());50        test.doSomething("one");51        test.doSomething("two");52    }53}54import static org.mockito.Mockito.*;55import org.mockito.invocation.InvocationOnMock;56import org.mockito.stubbing.Answer;57public class AnswerVoidExample {58    public static void main(String[] args) {answerVoid
Using AI Code Generation
1import static org.mockito.Mockito.*;2import static org.mockito.AdditionalAnswers.*;3import org.mockito.invocation.InvocationOnMock;4import org.mockito.stubbing.Answer;5public class AnswerVoidExample {6    public static void main(String[] args) {7        MyClass test = mock(MyClass.class);8        doAnswer(answerVoid(new Answer() {9            public Object answer(InvocationOnMock invocation) {10                Object[] args = invocation.getArguments();11                System.out.println("called with arguments: " + args[0]);12                return null;13            }14        })).when(test).doSomething(anyString());15        test.doSomething("one");16        test.doSomething("two");17    }18}19import static org.mockito.Mockito.*;20import staticanswerVoid
Using AI Code Generation
1package org.mockitoutil;2import org.mockito.AdditionalAnswers;3import org.mockito.Mockito;4import org.mockito.invocation.InvocationOnMock;5import org.mockito.stubbing.Answer;6import org.testng.annotations.Test;7import static org.mockito.Mockito.*;8public class AnswerVoid {9    public void test() {10        Runnable r = mock(Runnable.class);11        doAnswer(AdditionalAnswers.answerVoid(new Answer<Object>() {12            public Object answer(InvocationOnMock invocation) throws Throwable {13                System.out.println("Hello World");14            }15        })).when(r).run();16        r.run();17    }18}19Previous Page Next Page org.mockito.Mockito.answerVoid;20import org.mockito.invocation.InvocationOnMock;21import org.mockito.stubbing.Answer;22public class AnswerVoidExample {23    public static void main(String[] args) {24        MyClass test = mock(MyClass.class);25        doAnswer(answerVoid(new Answer() {26            public Object answer(InvocationOnMock invocation) {27                Object[] args = invocation.getArguments();28                System.out.println("called with arguments: " + args[0]);29                return null;30            }31        })).when(test).doSomething(anyString());32        test.doSomething("one");33        test.doSomething("two");34    }35}36import static org.mockito.Mockito.*;37import org.mockito.invocation.InvocationOnMock;38import org.mockito.stubbing.Answer;39public class AnswerVoidExample {40    public static void main(String[] args) {41        MyClass test = mock(MyClass.class);42        doAnswer(answerVoid(new Answer() {43            public Object answer(InvocationOnMock invocation) {44                Object[] args = invocation.getArguments();45                System.out.println("called with arguments: " + args[0]);46                return null;47            }48        })).when(test).doSomething(anyString());49        test.doSomething("one");50        test.doSomething("two");51    }52}53import static org.mockito.Mockito.*;54import org.mockito.invocation.InvocationOnMock;55import org.mockito.stubbing.Answer;56public class AnswerVoidExample {57    public static void main(String[] args) {answerVoid
Using AI Code Generation
1import org.mockito.AdditionalAnswers;2import org.mockito.Mockito;3import org.mockito.invocation.InvocationOnMock;4import org.mockito.stubbing.Answer;5public class 1 {6public static void main(String[] args) {7Answer answerVoid = AdditionalAnswers.answerVoid();8Mockito.doAnswer(answerVoid).when(mock).someMethod();9}10}11at 1.main(1.janswerVoid
Using AI Code Generation
1package org.mockitoutil;2import org.mockito.AdditionalAnswers;3import org.mockito.Mockito;4import org.mockito.invocation.InvocationOnMock;5import org.mockito.stubbing.Answer;6import org.testng.annotations.Test;7import static org.mockito.Mockito.*;8public class AnswerVoid {9    public void test() {10        Runnable r = mock(Runnable.class);11        doAnswer(AdditionalAnswers.answerVoid(new Answer<Object>() {12            public Object answer(InvocationOnMock invocation) throws Throwable {13                System.out.println("Hello World");14            }15        })).when(r).run();16        r.run();17    }18}answerVoid
Using AI Code Generation
1public class Test {2    public static void main(String[] args) {3        List<String> list = mock(List.class);4        doAnswer(AdditionalAnswers.answerVoid((String s) -> System.out.println(s))).when(list).add(anyString());5        list.add("Hello");6    }7}8public class Test {9    public static void main(String[] args) {10        List<String> list = mock(List.class);11        doAnswer(AdditionalAnswers.answerVoid((String s) -> System.out.println(s))).when(list).add(anyString());12        list.add("Hello");13        list.add("World");14    }15}16public class Test {17    public static void main(String[] args) {18        List<String> list = mock(List.class);19        doAnswer(AdditionalAnswers.answerVoid((String s) -> System.out.println(s))).when(list).add(anyString());20        list.add("Hello");21        list.add("World");22        list.add("Mockito");23    }24}25public class Test {26    public static void main(String[] args) {27        List<String> list = mock(List.class);28        doAnswer(AdditionalAnswers.answerVoid((String s) -> System.out.println(s))).when(list).add(anyString());29        list.add("Hello");30        list.add("World");31        list.add("Mockito");32        list.add("Junit");33    }34}35public class Test {36    public static void main(String[] args) {37        List<String> list = mock(List.class);38        doAnswer(AdditionalAnswers.answerVoid((String s) -> System.out.println(s))).when(list).add(anyString());39        list.add("Hello");40        list.add("World");41        list.add("Mockito");42        list.add("Junit");43        list.add("PowerMockito");44    }45}answerVoid
Using AI Code Generation
1import org.mockito.*;2import org.mockito.stubbing.*;3import static org.mockito.Mockito.*;4import static org.mockito.AdditionalAnswers.*;5public class AnswerVoid {6   public static void main(String[] args) {7      List<String> mockedList = mock(List.class);8      Answer<Void> answer = answerVoid((invocation) -> {9         System.out.println("AnswerVoid called");10      });11      doAnswer(answer).when(mockedList).add("one");12      mockedList.add("one");13   }14}15Example 2: Using answerVoid() method in doAnswer() method16import org.mockito.*;17import org.mockito.stubbing.*;18import static org.mockito.Mockito.*;19import static org.mockito.AdditionalAnswers.*;20public class AnswerVoid {21   public static void main(String[] args) {22      List<String> mockedList = mock(List.class);23      Answer<Void> answer = answerVoid((invocation) -> {24         System.out.println("AnswerVoid called");25      });26      doAnswer(answer).when(mockedList).add("one");27      mockedList.add("one");28   }29}30Recommended Posts: Mockito | doAnswer() method31Mockito | doThrow() method32Mockito | doNothing() method33Mockito | doCallRealMethod() method34Mockito | doReturn() method35Mockito | doAnswer() method36Mockito | doThrow() method37Mockito | doNothing() method38Mockito | doCallRealMethod() methodanswerVoid
Using AI Code Generation
1import org.mockito.AdditionalAnswers;2import static org.mockito.Mockito.*;3import java.util.*;4public class 1 {5	public static void main(String[] args) {6		LinkedList mockObj = mock(LinkedList.class);7		doAnswer(AdditionalAnswers.answerVoid((String s) -> System.out.println("Hello " + s))).when(mockObj).add(anyString());8		mockObj.add("World");9	}10}answerVoid
Using AI Code Generation
1package org.mockito;2import org.mockito.stubbing.Answer;3import static org.mockito.Mockito.*;4import java.util.*;5public class AnswerVoidExample {6   public static void main(String[] args) {7      List mock = mock(List.class);8      doAnswer(AdditionalAnswers.answerVoid((list, index) -> list.remove(index)))9      .when(mock).remove(anyInt());10      doAnswer(invocation -> {11         List list = invocation.getArgument(0);12         int index = invocation.getArgument(1);13         list.remove(index);14         return null;15      }).when(mock).remove(anyInt());16      doAnswer(new Answer() {17         public Object answer(InvocationOnMock invocation) {18            List list = invocation.getArgument(0);19            int index = invocation.getArgument(1);20            list.remove(index);21            return null;22         }23      }).when(mock).remove(anyInt());24      doAnswer(new Answer() {25         public Object answer(InvocationOnMock invocation) {26            Object[] args = invocation.getArguments();27            List list = (List) args[0];28            int index = (Integer) args[1];29            list.remove(index);30            return null;31         }32      }).when(mock).remove(anyInt());33   }34}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!!
