This is an automated email from the ASF dual-hosted git repository.

lprimak pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/shiro.git


The following commit(s) were added to refs/heads/main by this push:
     new e09c403c0 Refactored all tests to retrieve annotations by utility 
function instead of array indexing
     new 9888e8762 Merge pull request #1149 from wang3820/fix-flaky
e09c403c0 is described below

commit e09c403c030eeb2376d553383438ac891e9ec759
Author: lprimak <le...@flowlogix.com>
AuthorDate: Fri Nov 3 00:20:06 2023 -0500

    Refactored all tests to retrieve annotations by utility function instead of 
array indexing
---
 .../apache/shiro/cdi/AnnotatedTypeWrapperTest.java | 48 +++++++++++-----------
 1 file changed, 25 insertions(+), 23 deletions(-)

diff --git 
a/support/cdi/src/test/java/org/apache/shiro/cdi/AnnotatedTypeWrapperTest.java 
b/support/cdi/src/test/java/org/apache/shiro/cdi/AnnotatedTypeWrapperTest.java
index 541859018..98ddfd512 100644
--- 
a/support/cdi/src/test/java/org/apache/shiro/cdi/AnnotatedTypeWrapperTest.java
+++ 
b/support/cdi/src/test/java/org/apache/shiro/cdi/AnnotatedTypeWrapperTest.java
@@ -14,6 +14,8 @@
 package org.apache.shiro.cdi;
 
 import java.io.Serializable;
+import java.lang.annotation.Annotation;
+import java.util.Arrays;
 import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -29,7 +31,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
-
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Mock;
@@ -82,28 +83,23 @@ class AnnotatedTypeWrapperTest {
     @SuppressWarnings("MagicNumber")
     void twoAdditionalAnnotations() {
         initializeStubs();
-        var wrapper = new AnnotatedTypeWrapper<>(annotatedType,
-                ShiroSecureAnnotated.class.getDeclaredAnnotations()[0],
-                StatelessAnnotated.class.getDeclaredAnnotations()[0]);
+        Annotation shiroSecureAnnotation = 
getAnnotation(ShiroSecureAnnotated.class, ShiroSecureAnnotation.class);
+        Annotation statelessAnnotation = 
getAnnotation(StatelessAnnotated.class, Stateless.class);
+        var wrapper = new AnnotatedTypeWrapper<>(annotatedType, 
shiroSecureAnnotation, statelessAnnotation);
         assertEquals(5, wrapper.getAnnotations().size());
-        assertTrue(wrapper.isAnnotationPresent(ShiroSecureAnnotated.class
-                .getDeclaredAnnotations()[0].annotationType()));
-        assertTrue(wrapper.isAnnotationPresent(StatelessAnnotated.class
-                .getDeclaredAnnotations()[0].annotationType()));
-        assertTrue(wrapper.isAnnotationPresent(Annotated.class
-                .getDeclaredAnnotations()[0].annotationType()));
-        assertTrue(wrapper.isAnnotationPresent(Annotated.class
-                .getDeclaredAnnotations()[1].annotationType()));
-        assertTrue(wrapper.isAnnotationPresent(Annotated.class
-                .getDeclaredAnnotations()[2].annotationType()));
+        assertTrue(wrapper.isAnnotationPresent(ShiroSecureAnnotation.class));
+        assertTrue(wrapper.isAnnotationPresent(Stateless.class));
+        assertTrue(wrapper.isAnnotationPresent(RequiresAuthentication.class));
+        assertTrue(wrapper.isAnnotationPresent(RequiresGuest.class));
+        assertTrue(wrapper.isAnnotationPresent(RequiresPermissions.class));
     }
 
     @Test
     void removeAnnotations() {
         initializeStubs();
-        var wrapper = new AnnotatedTypeWrapper<>(annotatedType, true,
-                
Set.of(SessionScopedAnnotated.class.getDeclaredAnnotations()[0]),
-                Set.of(Annotated.class.getDeclaredAnnotations()[1]));
+        Set<Annotation> sessionScopeAnnoationsSet = 
Set.of(getAnnotation(SessionScopedAnnotated.class, SessionScoped.class));
+        Set<Annotation> requiresGuestAnnoationsSet = 
Set.of(getAnnotation(Annotated.class, RequiresGuest.class));
+        var wrapper = new AnnotatedTypeWrapper<>(annotatedType, true, 
sessionScopeAnnoationsSet, requiresGuestAnnoationsSet);
         assertEquals(3, wrapper.getAnnotations().size());
         assertFalse(wrapper.isAnnotationPresent(RequiresGuest.class));
         assertTrue(wrapper.isAnnotationPresent(SessionScoped.class));
@@ -130,15 +126,14 @@ class AnnotatedTypeWrapperTest {
         initializeStubs();
         when(annotatedType.getJavaClass()).thenReturn(Void.class);
         assertEquals(3, annotatedType.getAnnotations().size());
+        Annotation shiroSecureAnnoations = 
getAnnotation(ShiroSecureAnnotated.class, ShiroSecureAnnotation.class);
+        Annotation statelessAnnoations = 
getAnnotation(StatelessAnnotated.class, Stateless.class);
         var wrapper = new AnnotatedTypeWrapper<>(annotatedType, false,
-                Set.of(ShiroSecureAnnotated.class.getDeclaredAnnotations()[0],
-                        StatelessAnnotated.class.getDeclaredAnnotations()[0]),
+                Set.of(shiroSecureAnnoations, statelessAnnoations),
                 Set.of());
         assertEquals(2, wrapper.getAnnotations().size());
-        assertTrue(wrapper.isAnnotationPresent(ShiroSecureAnnotated.class
-                .getDeclaredAnnotations()[0].annotationType()));
-        assertTrue(wrapper.isAnnotationPresent(StatelessAnnotated.class
-                .getDeclaredAnnotations()[0].annotationType()));
+        assertTrue(wrapper.isAnnotationPresent(ShiroSecureAnnotation.class));
+        assertTrue(wrapper.isAnnotationPresent(Stateless.class));
         assertEquals(Void.class, wrapper.getJavaClass());
     }
 
@@ -154,4 +149,11 @@ class AnnotatedTypeWrapperTest {
         
when(annotatedType.getAnnotations()).thenReturn(Stream.of(Annotated.class.getDeclaredAnnotations())
                 .collect(Collectors.toSet()));
     }
+
+    private Annotation getAnnotation(Class<?> annotatedClass, Class<?> 
annotation) {
+        return Arrays.stream(annotatedClass.getDeclaredAnnotations())
+                .filter(a -> a.annotationType().equals(annotation))
+                .findFirst()
+                .orElse(null);
+    }
 }

Reply via email to