|  | // Copyright (c) 2018, the R8 project authors. Please see the AUTHORS file | 
|  | // for details. All rights reserved. Use of this source code is governed by a | 
|  | // BSD-style license that can be found in the LICENSE file. | 
|  | package mockito_interface; | 
|  |  | 
|  | import static org.mockito.Mockito.times; | 
|  | import static org.mockito.Mockito.verify; | 
|  |  | 
|  | import org.mockito.Mock; | 
|  | import org.mockito.MockitoAnnotations; | 
|  |  | 
|  | public class InterfaceTest { | 
|  |  | 
|  | @Mock | 
|  | private Interface fld; | 
|  |  | 
|  | private InterfaceUser user; | 
|  |  | 
|  | private boolean flag; | 
|  |  | 
|  | public static void main(String[] args) { | 
|  | for (boolean flag : new boolean[] {true, false}) { | 
|  | InterfaceTest test = new InterfaceTest(flag); | 
|  | test.setUp(); | 
|  | test.test(); | 
|  | } | 
|  | } | 
|  |  | 
|  | public InterfaceTest(boolean flag) { | 
|  | this.flag = flag; | 
|  | } | 
|  |  | 
|  | public void setUp() { | 
|  | MockitoAnnotations.initMocks(this); | 
|  | user = new InterfaceUser(fld); | 
|  | } | 
|  |  | 
|  | public void test() { | 
|  | if (flag) { | 
|  | user.consume(); | 
|  | } | 
|  | verify(fld, times(flag ? 1 : 0)).onEnterForeground(); | 
|  | } | 
|  | } |