Julian Hyde created CALCITE-5726:
------------------------------------

             Summary: Canonize use of Hamcrest matchers in test code
                 Key: CALCITE-5726
                 URL: https://issues.apache.org/jira/browse/CALCITE-5726
             Project: Calcite
          Issue Type: Bug
            Reporter: Julian Hyde


Canonize use of Hamcrest matchers in test code.

1. If there are multiple equivalent methods, use the canonical one:
* CoreMatchers.is → Is.is
* Matchers.hasToString → HasToString.hasToString
* Matchers.hasSize → IsCollectionWithSize.hasSize
* Matchers.aMapWithSize → IsMapWithSize.aMapWithSize

2. Use matchers for {{Object.toString()}}, {{Collection.size()}}, 
{{Map.size()}}:
* assertThat(map.size(), is\(n)) → assertThat(map, aMapWithSize\(n));
* assertThat(list.size(), is\(n)) → assertThat(map, 
IsCollectionWithSize.hasSize\(n));
* assertThat(o.toString(), is(s)) → assertThat(o, hasToString(s));
* assertThat(o.toString(), equalTo(s)) → assertThat(o, hasToString(s));

Require static import of Hamcrest methods.
 
The benefit is conciseness/uniformity of tests. Most of these transformations 
can be accomplished using autostyle rules in the Gradle {{build.gradle.kts}}, 
so people's code will be fixed using {{gradle autostyleApply}}.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to