[ 
https://issues.apache.org/jira/browse/LANG-1480?focusedWorklogId=319300&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-319300
 ]

ASF GitHub Bot logged work on LANG-1480:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 27/Sep/19 01:07
            Start Date: 27/Sep/19 01:07
    Worklog Time Spent: 10m 
      Work Description: verhas commented on pull request #446: LANG-1480 
getAbbreviatedName refactored to create appropriate length …
URL: https://github.com/apache/commons-lang/pull/446#discussion_r328881421
 
 

 ##########
 File path: src/test/java/org/apache/commons/lang3/ClassUtilsTest.java
 ##########
 @@ -160,26 +162,59 @@ public void test_getAbbreviatedName_Class() {
         assertEquals("", ClassUtils.getAbbreviatedName((Class<?>) null, 1));
         assertEquals("j.l.String", ClassUtils.getAbbreviatedName(String.class, 
1));
         assertEquals("j.l.String", ClassUtils.getAbbreviatedName(String.class, 
5));
+        assertEquals("o.a.c.l.ClassUtils", 
ClassUtils.getAbbreviatedName(ClassUtils.class, 18));
         assertEquals("j.lang.String", 
ClassUtils.getAbbreviatedName(String.class, 13));
         assertEquals("j.lang.String", 
ClassUtils.getAbbreviatedName(String.class, 15));
         assertEquals("java.lang.String", 
ClassUtils.getAbbreviatedName(String.class, 20));
     }
 
+    /**
+     * Test that in case the required length is larger than the name and thus 
there is no need for any shortening
+     * then the returned string object is the same as the one passed as 
argument. Note, however, that this is
+     * tested as an internal implementation detail, but it is not a guaranteed 
feature of the implementation.
+     */
     @Test
-    public void test_getAbbreviatedName_Class_NegativeLen() {
+    @DisplayName("When the length hint is longer than the actual length then 
the same String object is returned")
+    void test_getAbbreviatedName_TooLongHint(){
+        final String className = "java.lang.String";
+        Assertions.assertSame(className, 
ClassUtils.getAbbreviatedName(className, className.length()+1));
+        Assertions.assertSame(className, 
ClassUtils.getAbbreviatedName(className, className.length()));
+    }
+
+    @Test
+    @DisplayName("When the desired length is negative then exception is 
thrown")
+    void test_getAbbreviatedName_Class_NegativeLen() {
         assertThrows(IllegalArgumentException.class, () -> 
ClassUtils.getAbbreviatedName(String.class, -10));
     }
 
     @Test
-    public void test_getAbbreviatedName_Class_ZeroLen() {
 
 Review comment:
   Sorry, but wrong addressee. This is not me, who has changed the visibility, 
but JUnit 5.
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
-------------------

            Worklog Id:     (was: 319300)
    Remaining Estimate: 17h 40m  (was: 17h 50m)
            Time Spent: 6h 20m  (was: 6h 10m)

> ClassUtils. getAbbreviatedName(String ,int) returns too long result
> -------------------------------------------------------------------
>
>                 Key: LANG-1480
>                 URL: https://issues.apache.org/jira/browse/LANG-1480
>             Project: Commons Lang
>          Issue Type: Bug
>          Components: lang.*
>    Affects Versions: 3.9
>         Environment: Environment independent.
>            Reporter: Peter Verhas
>            Assignee: Bruno P. Kinoshita
>            Priority: Major
>   Original Estimate: 24h
>          Time Spent: 6h 20m
>  Remaining Estimate: 17h 40m
>
> In some cases, the algorithm decides incorrectly when to which package names 
> to abbreviate. For example, abbreviating
> {{org.apache.commons.lang3.ClassUtils}} to the length 18 will result 
> {{o.a.c.lang3.ClassUtils}} (22 characters) instead of {{o.a.c.l.ClassUtils}} 
> (18 characters as requested). The reason for this is that the algorithm 
> starts from the right and goes to the left abbreviating the packages and 
> starts to abbreviate the packages when it runs out of the available space.
> Instead, the algorithm should start from the left and abbreviate all packages 
> that would result in a too-long string without abbreviating the package name.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to