View Javadoc
1   /*-
2    * #%L
3    * io.earcam.instrumental.fluent
4    * %%
5    * Copyright (C) 2018 earcam
6    * %%
7    * SPDX-License-Identifier: (BSD-3-Clause OR EPL-1.0 OR Apache-2.0 OR MIT)
8    * 
9    * You <b>must</b> choose to accept, in full - any individual or combination of 
10   * the following licenses:
11   * <ul>
12   * 	<li><a href="https://opensource.org/licenses/BSD-3-Clause">BSD-3-Clause</a></li>
13   * 	<li><a href="https://www.eclipse.org/legal/epl-v10.html">EPL-1.0</a></li>
14   * 	<li><a href="https://www.apache.org/licenses/LICENSE-2.0">Apache-2.0</a></li>
15   * 	<li><a href="https://opensource.org/licenses/MIT">MIT</a></li>
16   * </ul>
17   * #L%
18   */
19  package io.earcam.instrumental.fluent;
20  
21  import static io.earcam.instrumental.fluent.Role.AUX;
22  import static io.earcam.instrumental.reflect.Methods.getMethod;
23  import static org.hamcrest.MatcherAssert.assertThat;
24  import static org.hamcrest.Matchers.is;
25  import static org.hamcrest.Matchers.not;
26  import static org.hamcrest.Matchers.nullValue;
27  
28  import java.lang.reflect.Method;
29  
30  import org.junit.jupiter.api.Test;
31  
32  public class FluentTest {
33  
34  	@Fluent(role = AUX)
35  	public static int apiMethod(String x)
36  	{
37  		return 42;
38  	}
39  
40  
41  	@Test
42  	void retentionIsRuntime()
43  	{
44  		Method method = getMethod(FluentTest.class, "apiMethod", String.class)
45  				.orElseThrow(AssertionError::new);
46  
47  		Fluent annotation = method.getAnnotation(Fluent.class);
48  		assertThat(annotation, is(not(nullValue())));
49  
50  		assertThat(annotation.role(), is(AUX));
51  	}
52  }