prowide/prowide-core

View on GitHub
src/test/java/com/prowidesoftware/swift/model/mt/mt1xx/MT101Test.java

Summary

Maintainability
A
1 hr
Test Coverage

Method testSequences has 29 lines of code (exceeds 25 allowed). Consider refactoring.
Open

    @Test
    public void testSequences() {
        MT101 mt = MT101.parse("{1:F01ABCDVEC0AXXX5480000053}{2:I101FOOBARAAXXXXN}{4:\n" + ":20:FILEREF2\n"
                + ":21R:UKSUPPLIER990901\n"
                + ":28D:1/1\n"

    Define a constant instead of duplicating this literal ":71A:OUR " 3 times.
    Open

                    + ":71A:OUR\n"

    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.

    There are no issues that match your filters.

    Category
    Status