prowide/prowide-core

View on GitHub
src/test/java/com/prowidesoftware/swift/model/field/GetLineTest.java

Summary

Maintainability
C
1 day
Test Coverage

GetLineTest has 24 methods (exceeds 20 allowed). Consider refactoring.
Open

public class GetLineTest {

    /**
     * Simplest case
     */
Severity: Minor
Found in src/test/java/com/prowidesoftware/swift/model/field/GetLineTest.java - About 2 hrs to fix

    Define a constant instead of duplicating this literal "/US/31392EXH8" 3 times.
    Open

            assertEquals("/US/31392EXH8", f.getLine(2));

    Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.

    On the other hand, constants can be referenced from many places, but only need to be updated in a single place.

    Noncompliant Code Example

    With the default threshold of 3:

    public void run() {
      prepare("action1");                              // Noncompliant - "action1" is duplicated 3 times
      execute("action1");
      release("action1");
    }
    
    @SuppressWarning("all")                            // Compliant - annotations are excluded
    private void method1() { /* ... */ }
    @SuppressWarning("all")
    private void method2() { /* ... */ }
    
    public String method3(String a) {
      System.out.println("'" + a + "'");               // Compliant - literal "'" has less than 5 characters and is excluded
      return "";                                       // Compliant - literal "" has less than 5 characters and is excluded
    }
    

    Compliant Solution

    private static final String ACTION_1 = "action1";  // Compliant
    
    public void run() {
      prepare(ACTION_1);                               // Compliant
      execute(ACTION_1);
      release(ACTION_1);
    }
    

    Exceptions

    To prevent generating some false-positives, literals having less than 5 characters are excluded.

    Define a constant instead of duplicating this literal "ISIN HELLO" 4 times.
    Open

            assertEquals("ISIN HELLO", f.getLine(1));

    Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.

    On the other hand, constants can be referenced from many places, but only need to be updated in a single place.

    Noncompliant Code Example

    With the default threshold of 3:

    public void run() {
      prepare("action1");                              // Noncompliant - "action1" is duplicated 3 times
      execute("action1");
      release("action1");
    }
    
    @SuppressWarning("all")                            // Compliant - annotations are excluded
    private void method1() { /* ... */ }
    @SuppressWarning("all")
    private void method2() { /* ... */ }
    
    public String method3(String a) {
      System.out.println("'" + a + "'");               // Compliant - literal "'" has less than 5 characters and is excluded
      return "";                                       // Compliant - literal "" has less than 5 characters and is excluded
    }
    

    Compliant Solution

    private static final String ACTION_1 = "action1";  // Compliant
    
    public void run() {
      prepare(ACTION_1);                               // Compliant
      execute(ACTION_1);
      release(ACTION_1);
    }
    

    Exceptions

    To prevent generating some false-positives, literals having less than 5 characters are excluded.

    Define a constant instead of duplicating this literal "ISIN HELLO AAAA BBBB CCCC DDDD" 3 times.
    Open

            final Field35B f = new Field35B("ISIN HELLO\nAAAA\nBBBB\nCCCC\nDDDD");

    Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.

    On the other hand, constants can be referenced from many places, but only need to be updated in a single place.

    Noncompliant Code Example

    With the default threshold of 3:

    public void run() {
      prepare("action1");                              // Noncompliant - "action1" is duplicated 3 times
      execute("action1");
      release("action1");
    }
    
    @SuppressWarning("all")                            // Compliant - annotations are excluded
    private void method1() { /* ... */ }
    @SuppressWarning("all")
    private void method2() { /* ... */ }
    
    public String method3(String a) {
      System.out.println("'" + a + "'");               // Compliant - literal "'" has less than 5 characters and is excluded
      return "";                                       // Compliant - literal "" has less than 5 characters and is excluded
    }
    

    Compliant Solution

    private static final String ACTION_1 = "action1";  // Compliant
    
    public void run() {
      prepare(ACTION_1);                               // Compliant
      execute(ACTION_1);
      release(ACTION_1);
    }
    

    Exceptions

    To prevent generating some false-positives, literals having less than 5 characters are excluded.

    Define a constant instead of duplicating this literal ":INVE//JOE DOE" 4 times.
    Open

            Field95Q f = new Field95Q(":INVE//JOE DOE");

    Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.

    On the other hand, constants can be referenced from many places, but only need to be updated in a single place.

    Noncompliant Code Example

    With the default threshold of 3:

    public void run() {
      prepare("action1");                              // Noncompliant - "action1" is duplicated 3 times
      execute("action1");
      release("action1");
    }
    
    @SuppressWarning("all")                            // Compliant - annotations are excluded
    private void method1() { /* ... */ }
    @SuppressWarning("all")
    private void method2() { /* ... */ }
    
    public String method3(String a) {
      System.out.println("'" + a + "'");               // Compliant - literal "'" has less than 5 characters and is excluded
      return "";                                       // Compliant - literal "" has less than 5 characters and is excluded
    }
    

    Compliant Solution

    private static final String ACTION_1 = "action1";  // Compliant
    
    public void run() {
      prepare(ACTION_1);                               // Compliant
      execute(ACTION_1);
      release(ACTION_1);
    }
    

    Exceptions

    To prevent generating some false-positives, literals having less than 5 characters are excluded.

    Similar blocks of code found in 3 locations. Consider refactoring.
    Open

        @Test
        public void testMissingFieldsWithOffset() {
            final Field35B f = new Field35B("ISIN \nAAAA\nBBBB\nCCCC\nDDDD");
            assertEquals("AAAA", f.getLine(1, Field35B.DESCRIPTION));
            assertEquals("BBBB", f.getLine(2, Field35B.DESCRIPTION));
    src/test/java/com/prowidesoftware/swift/model/field/GetLineTest.java on lines 88..95
    src/test/java/com/prowidesoftware/swift/model/field/GetLineTest.java on lines 112..119

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 77.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 3 locations. Consider refactoring.
    Open

        @Test
        public void testSimpleWithOffset() {
            final Field35B f = new Field35B("ISIN HELLO\nAAAA\nBBBB\nCCCC\nDDDD");
            assertEquals("AAAA", f.getLine(1, Field35B.DESCRIPTION));
            assertEquals("BBBB", f.getLine(2, Field35B.DESCRIPTION));
    src/test/java/com/prowidesoftware/swift/model/field/GetLineTest.java on lines 100..107
    src/test/java/com/prowidesoftware/swift/model/field/GetLineTest.java on lines 112..119

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 77.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 3 locations. Consider refactoring.
    Open

        @Test
        public void testMissingFieldsWithOffset_2() {
            final Field35B f = new Field35B("AAAA\nBBBB\nCCCC\nDDDD");
            assertEquals("AAAA", f.getLine(1, Field35B.DESCRIPTION));
            assertEquals("BBBB", f.getLine(2, Field35B.DESCRIPTION));
    src/test/java/com/prowidesoftware/swift/model/field/GetLineTest.java on lines 88..95
    src/test/java/com/prowidesoftware/swift/model/field/GetLineTest.java on lines 100..107

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 77.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 2 locations. Consider refactoring.
    Open

        @Test
        public void testNull_2() {
            final Field59 f = new Field59((String) null);
            assertNull(f.getLine(1));
            assertNull(f.getLine(2));
    src/test/java/com/prowidesoftware/swift/model/field/GetLineTest.java on lines 173..181

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 65.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 2 locations. Consider refactoring.
    Open

        @Test
        public void testNull() {
            final Field35B f = new Field35B((String) null);
            assertNull(f.getLine(1));
            assertNull(f.getLine(2));
    src/test/java/com/prowidesoftware/swift/model/field/GetLineTest.java on lines 199..207

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 65.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 2 locations. Consider refactoring.
    Open

        @Test
        public void testEmpty_2() {
            final Field35B f = new Field35B("");
            assertNull(f.getLine(1));
            assertNull(f.getLine(2));
    src/test/java/com/prowidesoftware/swift/model/field/GetLineTest.java on lines 186..194

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 63.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 2 locations. Consider refactoring.
    Open

        @Test
        public void testEmpty_3() {
            final Field59 f = new Field59("");
            assertNull(f.getLine(1));
            assertNull(f.getLine(2));
    src/test/java/com/prowidesoftware/swift/model/field/GetLineTest.java on lines 160..168

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 63.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 4 locations. Consider refactoring.
    Open

        @Test
        public void testField50K_2() {
            Field50K f = new Field50K("ABC");
            assertEquals(1, f.getLines().size());
            assertNull(f.getLine(1));
    src/test/java/com/prowidesoftware/swift/model/field/FieldTest.java on lines 257..263
    src/test/java/com/prowidesoftware/swift/model/field/FieldTest.java on lines 265..271
    src/test/java/com/prowidesoftware/swift/model/field/GetLineTest.java on lines 316..322

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 47.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 4 locations. Consider refactoring.
    Open

        @Test
        public void testField50K_3() {
            Field50K f = new Field50K("ABC");
            assertEquals(1, f.getLines().size());
            assertNull(f.getLine(1));
    src/test/java/com/prowidesoftware/swift/model/field/FieldTest.java on lines 257..263
    src/test/java/com/prowidesoftware/swift/model/field/FieldTest.java on lines 265..271
    src/test/java/com/prowidesoftware/swift/model/field/GetLineTest.java on lines 308..314

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 47.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 2 locations. Consider refactoring.
    Open

        @Test
        public void testField50K() {
            Field50K f = new Field50K("/12345");
            assertEquals(1, f.getLines().size());
            assertEquals("/12345", f.getLine(1));
    src/test/java/com/prowidesoftware/swift/model/field/FieldTest.java on lines 249..255

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 47.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    There are no issues that match your filters.

    Category
    Status