19de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson/* 29de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * Copyright 2011 Google Inc. 39de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * 49de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * Licensed under the Apache License, Version 2.0 (the "License"); 59de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * you may not use this file except in compliance with the License. 69de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * You may obtain a copy of the License at 79de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * 89de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * http://www.apache.org/licenses/LICENSE-2.0 99de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * 109de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * Unless required by applicable law or agreed to in writing, software 119de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * distributed under the License is distributed on an "AS IS" BASIS, 129de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * See the License for the specific language governing permissions and 149de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * limitations under the License. 159de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson */ 169de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson 179de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudsonpackage com.google.testing.littlemock; 189de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson 199de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudsonimport java.lang.annotation.ElementType; 209de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudsonimport java.lang.annotation.Retention; 219de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudsonimport java.lang.annotation.RetentionPolicy; 229de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudsonimport java.lang.annotation.Target; 239de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson 249de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson/** 259de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * Used to automatically inject a {@link ArgumentCaptor} object for use in your tests. 269de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * 279de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * <p>Just annotate your capture field on your test as follows: 289de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * <pre> 299de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * @Captor private ArgumentCaptor<String> mCaptureString; 309de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * </pre> 319de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * 329de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * <p>Then when the {@link LittleMock#initMocks(Object)} method is called (which should be 339de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * done in your setUp() call, or in a test base class) all your capture objects will be 349de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * automatically constructed. 359de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * 369de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson * @author hugohudson@gmail.com (Hugo Hudson) 379de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson */ 389de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson@Target({ ElementType.FIELD }) 399de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson@Retention(RetentionPolicy.RUNTIME) 409de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudsonpublic @interface Captor { 419de203bcac3d285f4fa57c93085e467eaab9f8f9Hugo Hudson} 42