Commit Graph

1802 Commits

Author SHA1 Message Date
Gary Gregory afad1de6ef Prepare for 1.8-RC2. 2020-02-01 20:01:35 -05:00
Gary Gregory df9da1056b Prepare for 1.8-RC2.
- Remove package private code with Java 8 equivalent
java.util.Objects.requirteNonNull().
- Checkstyle fixes.
- Use final.
- Remove unused import.
2020-02-01 20:01:01 -05:00
Alex Herbert 70092bb303 Document intent to remove Serializable from CSVRecord.
This was added to the class header and the changes.xml for inclusion in
the release notes.
2020-01-28 10:33:51 +00:00
Gary Gregory b7fea5546b [CSV-248] CSVRecord is not Serializable.
Exclude binary test fixtures from Apache RAT consideration.
2020-01-22 10:28:05 -05:00
aherbert 7ff3e14813 Javadoc formatting. 2020-01-21 13:07:19 +00:00
aherbert 12a2ff42d3 Document that the list of header names will not contain null names.
Added a test to demonstrate missing null headers from the list.
2020-01-21 13:00:00 +00:00
aherbert bd17fc3850 Remove trailing whitespace. 2020-01-21 12:45:40 +00:00
aherbert 66c34da258 [CSV-248] Test CSVRecord deserialization from binary format.
The serialised form was created using version 1.6.
2020-01-21 12:45:32 +00:00
aherbert 8d6772a320 [CSV-248] Test the parser and map functionality after deserialization
Methods with unexpected return values (null or exceptions) have been
documented. All other methods will just fail as if the record came from
a parser without a header.
2020-01-21 12:39:59 +00:00
Gary Gregory 7c5c08921c Let a null input to CSVRecord#get(Enum) fail in CSVRecord#get(String). 2020-01-20 21:36:11 -05:00
Gary Gregory e3eca25d13 [CSV-248] CSVRecord is not Serializable.
Make field transient.
2020-01-20 18:36:22 -05:00
Gary Gregory 07101a99bc [CSV-248] CSVRecord is not Serializable.
Update JUnit from 5.5.2 to 5.6.0.
2020-01-20 18:36:02 -05:00
Gary Gregory d047f83c28 [CSV-248] CSVRecord is not Serializable.
Sort members.
2020-01-20 18:34:31 -05:00
Gary Gregory d6778b74a1 Fix typo performance test #55. 2020-01-20 18:05:31 -05:00
Chen c8527b3d53 Fixtypo in the PerformanceTest (#55) 2020-01-20 18:03:22 -05:00
Gary Gregory c1c8b32809 Update POM version numbers for Apache Commons CSV release 1.8 2020-01-18 11:55:06 -05:00
Gary Gregory 1d12ed9d0d Prepare for the next release. 2020-01-18 11:51:38 -05:00
Gary Gregory aedb270a05 Prepare for the next release. 2020-01-18 11:35:47 -05:00
Gary Gregory 7d86ab0ced Prepare for the next release. 2020-01-18 11:33:16 -05:00
Gary Gregory 680398e759 Fix Checkstyle line length. 2020-01-18 11:32:40 -05:00
Gary Gregory de07d7533b Fix typos in site and test #53. 2019-12-30 08:45:23 -05:00
Chen 8ecd4657ef Fix typos in site and test #53 2019-12-30 08:43:55 -05:00
Gary Gregory b58168683d [CSV-255] Add CSVRecord.isSet(int) method #52.
Less cryptic parameter name.
2019-12-25 17:15:39 -05:00
Gary Gregory 3a082f0698 [CSV-255] Add CSVRecord.isSet(int) method #52. 2019-12-25 17:14:58 -05:00
0x100 4033a0199e Add CSVRecord.isSet(int) method (#52)
* Add CSVRecord.isSet(int) method

* Remove unnecessary unboxing

* Revert: Remove unnecessary unboxing
2019-12-25 17:12:05 -05:00
Gary Gregory 129641ead4 Add GitHub Action build. 2019-12-25 10:29:11 -05:00
Gary Gregory af7103e014 Fix typo. 2019-12-20 22:55:16 -05:00
Gary Gregory abc65e41a6 Update tests from Mockito 3.2.0 to 3.2.4. 2019-12-20 22:54:11 -05:00
Gary Gregory 5e9216d331 Remove unnecessary array creation for varargs. 2019-12-18 16:04:03 -05:00
Gary Gregory 06dda31f52 Remove trailing white spaces on all lines. 2019-12-18 15:29:20 -05:00
Gary Gregory 7cc7b596ca Update tests from Mockito 3.1.0 to 3.2.0. 2019-12-12 11:04:02 -05:00
Gary Gregory b0c544e911 Update tests from Hamcrest 2.1 to 2.2. 2019-12-12 11:02:35 -05:00
Gary Gregory 33bb4f0e01 Update tests from H2 1.4.199 to 1.4.200. 2019-12-12 10:59:50 -05:00
Gary Gregory 18644c88d4 Javadoc: Replace <code></code> HTML tags with Javadoc {@code} notation. 2019-12-10 00:21:22 -05:00
Gary Gregory 53be2154bf [CSV-247] A single empty header is allowed when not allowing empty
column headers. #47.</action>
2019-10-07 13:09:03 -04:00
Alex Herbert 059649167c CSV-247: CSVParser to check an empty header before checking duplicates. (#47)
This updates the issues test for CSV-247 and adds tests to the
CSVParserTest.
2019-10-07 13:06:11 -04:00
aherbert dcc44cdcd1 Rename typo in issues file names from cvs to csv. 2019-10-07 13:01:51 +01:00
Gary Gregory 4829ec961e [CSV-247] A single empty header is allowed when not allowing empty
column headers.

Add test case.
2019-10-06 17:36:26 -04:00
Gary Gregory c18595d1c4 No need for all the whitespace. 2019-10-06 17:24:24 -04:00
Gary Gregory af28635557 Clean ups. 2019-10-06 14:40:24 -04:00
Gary Gregory 722960af68 [CSV-252] Upgrade test framework to JUnit 5 Jupiter #49, #50. 2019-10-06 08:17:12 -04:00
Allon Murienik 485929e626 CSV-252: Clean up exception handling (#50)
* CSV-252: Clean up assertions using assertThrows

As a followup to commit e2f0a4d8a8 that
introduced JUnit Jupiter to the project, this patch leverages the new
Assertions#assertThrows method to clean up tests for expected
exceptions.

Instead of the somewhat clunky structure common in JUnit 4 tests:

```
try {
    someMethod();
    fail("SomeException should be thrown");
} catch (SomeException e) {
    // Expected...

    // Possibly some assertion on e
}
```

JUnit Jupiter allows the following elegant syntax:

```
SomeException e = assertThrows(SomeException.class, () -> someMethod());
// Possibly some assertions on e
```

* CSV-252: Remove redundant throws clauses from tests
2019-10-06 08:16:08 -04:00
Gary Gregory 0300569b81 [CSV-252] JUnit 5 Jupiter #49. 2019-10-05 15:04:39 -04:00
Allon Murienik e2f0a4d8a8 CSV-252: Migration to JUnit Jupiter (#49)
* CSV-252 Stop using junit.framework.TestCase

junit.framework.TestCase is a class from JUnit 3, and while it is not
officially deprecated, it's discouraged to use it.

This patch removes the single use of
junit.framework.TestCase#assertNull, and replaces it with the
standard, recommended, org.junit.Assert#assertNull.

* CSV-252 Standardize org.junit.Assert imports

Code in the project uses org.junit.Assert's methods in two ways:
1. By statically importing them
2. By importing the class and using its methods

Option 1 seems to be the de-facto standard, with just a handful of
cases using Option 2.
This patch standardizes these cases to also use static imports thus
making the code look more uniform, and easier to maintain.

* CSV-252 Upgrade Mockito to 3.1.0

Upgrade the Mockito dependency to the latest available version, 3.1.0,
in order to facilitate an upgrade to JUnit Jupiter.

* CSV-252 JUnit Jupiter upgrade

This patch upgrades the project's testing framework from JUnit 4.12
to the modern JUnit Jupiter 5.5.4.

Since JUnit 5 Jupiter is not backwards compatible to JUnit 4.x (or
even JUnit Vintage), this patch is a bit large, even though a lot of
the changes are merely cosmetic (such as changing the argument order,
see details below). In order to make the reviewer's task as easy as
possible, this PR does not presume to use JUnit Jupiter's best
practices and all its new functionality, but only to migrate the
existing tests with as little change as possible. Following patches
may want to improve the tests by using some of JUnit Jupiter's new
features.

This patch includes the following changes:

1. Maven dependency changes:
 a. junit:junit was replaced with org.junit.jupiter:junit-jupiter.
 b. org.hamcrest:hamcrest was introduced as an explicit dependency,
    since the project uses Hamcrest, and JUnit Jupiter does not
    bundle Hamcrest, unlike JUnit 4.x.

2. Annotations:
 a. org.junit.jupiter.api.Test was used as a drop in replacement for
    org.juit.Test without arguments. See 3.ii. for handling of @Test
    annotations with an "expected" argument.
 b. org.junit.jupiter.api.BeforeEach was used as an drop in
    replacement for org.junit.Before.
 c. org.junit.jupiter.api.BeforeAll was used as an drop in
    replacement for org.junit.BeforeClass.
 d. org.junit.jupiter.api.Disabled was used as a drop in replacement
    for org.junit.Ignore.

3. Assertions:
 a. org.junit.jupiter.api.Assertions' methods were used as drop in
    replacements for org.junit.Assert's methods with the same name in
    the simple case of an assertion without a message. In the case of
    an assertion with a message, org.junit.jupiter.api.Assertions'
    methods were used, but the argument order was changed - Assert's
    methods take the message as the first argument, while Assertions'
    methods take the message as the last argument.
 b. org.junit.jupiter.api.Assertions#assertThrows was used to assert
    that a specific exception was throws instead of an org.junit.Test
    annotation with an expected argument. This technique has a couple
    of side bonuses. First, it makes the tests slightly stricter, as
    now they can assert the exception was thrown from a specific line
    and prevent false positives where the test's "set-up" code
    accidentally threw that exception. Second, it clarifies that some
    of the test code is unreachable (as a previous line already
    throws an exception), and can safely be removed in order to clean
    up the test. The throws clauses of these methods were cleaned up
    from exceptions that can no longer be thrown in order to avoid
    compilation warnings.
 c. org.hamcrest.MatcherAssert#assertThat was used as a drop in
    replacement for org.junit.Assert#assertThat.

4. Specific Changes:
 a. CSVFileParserTest was rewritten with JUnit Jupiter's
    org.junit.jupiter.api.ParameterizedTest. Unlike JUnit 4's
    org.junit.runners.Parameterized, it cannot be used to inject
    arguments to a test's construct, and so the test can't be
    stateful. Instead, it was rewritten so every test receives the
    file as a parameter, and opens a reader on it itself. As a side
    bonus, this design makes it easier to close the reader and avoid
    leaving open file descriptors like the original test did.
2019-10-05 14:59:58 -04:00
Gary Gregory 6aa1756750 [CSV-249] ArrayIndexOutOfBoundsException when trying to read record
written by CSVPrinter using CSVParser with same format.

Add passing test.
2019-09-28 13:09:11 -04:00
Gary Gregory a23b784c1c [CSV-249] ArrayIndexOutOfBoundsException when trying to read record
written by CSVPrinter using CSVParser with same format.

Add passing test.
2019-09-28 13:08:56 -04:00
Gary Gregory dfd58d8a94 More lambdas, less boilerplate. 2019-09-12 20:58:07 -04:00
Gary Gregory 2f1ac70815 Update properties for the next release. 2019-09-09 20:41:53 -04:00
Gary Gregory 09f4bed945 Revert change to commons.componentid. 2019-09-09 20:41:07 -04:00
Gary Gregory d4ceb0a125 Point to the Java 8 Javadocs. 2019-09-09 15:26:04 -04:00