[ 
https://issues.apache.org/jira/browse/DELTASPIKE-204?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13393364#comment-13393364
 ] 

Rudy De Busscher commented on DELTASPIKE-204:
---------------------------------------------

I propose to change the test method to the following code:
There is no ordering problem anymore and checks if all the keys of the 'member' 
values are present in the result String.


    @Test
    public void assertComplexToString()
    {
        Map<String, Object> memberValues = new HashMap<String, Object>();
        memberValues.put("booleanValue", false);
        memberValues.put("booleanValues", new boolean[]{false});
        memberValues.put("byteValue", (byte) 0);
        memberValues.put("byteValues", new byte[]{(byte) 0});
        memberValues.put("charValue", (char) 0);
        memberValues.put("charValues", new char[]{(char) 0});
        memberValues.put("doubleValue", 0.0);
        memberValues.put("doubleValues", new double[]{0.0});
        memberValues.put("floatValue", (float) 0);
        memberValues.put("floatValues", new float[]{(float) 0});
        memberValues.put("intValue", 0);
        memberValues.put("intValues", new int[] { 0 } );
        memberValues.put("longValue", 0L);
        memberValues.put("longValues", new long[] { 0L } ) ;
        memberValues.put("shortValue", (short) 0);
        memberValues.put("shortValues", new short[] { (short) 0 } );
        memberValues.put("stooge", Stooge.SHEMP);
        memberValues.put("stooges", new Stooge[] { Stooge.MOE, Stooge.LARRY, 
Stooge.CURLY } );
        memberValues.put("string", "");
        memberValues.put("strings", new String[] { "" } );
        memberValues.put("type", Object.class);
        memberValues.put("types", new Class[]{Object.class});

        Map<String, Object> nestMemberValues = new HashMap<String, 
Object>(memberValues);
        memberValues.put("nest", 
AnnotationInstanceProvider.of(NestAnnotation.class, nestMemberValues));
        memberValues.put("nests", new NestAnnotation[] { 
AnnotationInstanceProvider.of(NestAnnotation.class,
                nestMemberValues) } );

        TestAnnotation testAnnotation = 
AnnotationInstanceProvider.of(TestAnnotation.class, memberValues);
        String testAnnotationToString = testAnnotation.toString();

        
assertTrue(testAnnotationToString.startsWith("@org.apache.deltaspike.test.api.util.metadata.TestAnnotation("));
        //assertTrue(testAnnotationToString.contains("type=class 
java.lang.Object,booleanValue=false,byteValue=0"));
        // Order depends on the JVM (Sun, Oracle JRockit, ...)
        for (String key : memberValues.keySet()) {
            assertTrue(testAnnotationToString.contains(key+"="));
        }

        assertTrue(testAnnotationToString.contains("type=class 
java.lang.Object"));
        assertTrue(testAnnotationToString.contains("booleanValue=false"));
        assertTrue(testAnnotationToString.contains("byteValue=0"));
        // End changed test
        
assertTrue(testAnnotationToString.contains("nest=@org.apache.deltaspike.test.api.util.metadata.NestAnnotation"));
        assertTrue(testAnnotationToString.endsWith(")"));
    }
                
> AnnotationInstanceProviderTest#assertComplexToString fails on certain JVM's
> ---------------------------------------------------------------------------
>
>                 Key: DELTASPIKE-204
>                 URL: https://issues.apache.org/jira/browse/DELTASPIKE-204
>             Project: DeltaSpike
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 0.2-incubating
>         Environment: Oracle JRockit JVM
>            Reporter: Rudy De Busscher
>            Assignee: Rudy De Busscher
>            Priority: Minor
>              Labels: test
>
> The current test code relies on the hash implementation (indirect) to return 
> the keys of a hashMap in a certain order.  On other JVM implementations (like 
> Oracle JRockit) the hash implementation is different and thus the test fails.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to