|
33 | 33 | import static org.assertj.core.error.ShouldHaveDigest.shouldHaveDigest;
|
34 | 34 | import static org.assertj.core.error.ShouldHaveExtension.shouldHaveExtension;
|
35 | 35 | import static org.assertj.core.error.ShouldHaveName.shouldHaveName;
|
| 36 | +import static org.assertj.core.error.ShouldHaveNoExtension.shouldHaveNoExtension; |
36 | 37 | import static org.assertj.core.error.ShouldHaveNoParent.shouldHaveNoParent;
|
37 | 38 | import static org.assertj.core.error.ShouldHaveParent.shouldHaveParent;
|
38 | 39 | import static org.assertj.core.error.ShouldHaveSameContent.shouldHaveSameContent;
|
|
41 | 42 | import static org.assertj.core.error.ShouldNotContain.directoryShouldNotContain;
|
42 | 43 | import static org.assertj.core.error.ShouldNotExist.shouldNotExist;
|
43 | 44 | import static org.assertj.core.internal.Digests.digestDiff;
|
| 45 | +import static org.assertj.core.util.Files.getFileNameExtension; |
44 | 46 | import static org.assertj.core.util.Lists.list;
|
45 | 47 | import static org.assertj.core.util.Preconditions.checkArgument;
|
46 | 48 |
|
|
56 | 58 | import java.security.MessageDigest;
|
57 | 59 | import java.security.NoSuchAlgorithmException;
|
58 | 60 | import java.util.List;
|
| 61 | +import java.util.Optional; |
59 | 62 | import java.util.function.Predicate;
|
60 | 63 | import java.util.stream.Stream;
|
61 | 64 |
|
@@ -395,9 +398,14 @@ public void assertHasParent(AssertionInfo info, File actual, File expected) {
|
395 | 398 | public void assertHasExtension(AssertionInfo info, File actual, String expected) {
|
396 | 399 | requireNonNull(expected, "The expected extension should not be null.");
|
397 | 400 | assertIsFile(info, actual);
|
398 |
| - String actualExtension = getFileExtension(actual); |
399 |
| - if (expected.equals(actualExtension)) return; |
400 |
| - throw failures.failure(info, shouldHaveExtension(actual, actualExtension, expected)); |
| 401 | + String extension = getFileExtension(actual).orElseThrow(() -> failures.failure(info, shouldHaveExtension(actual, expected))); |
| 402 | + if (!expected.equals(extension)) throw failures.failure(info, shouldHaveExtension(actual, extension, expected)); |
| 403 | + } |
| 404 | + |
| 405 | + public void assertHasNoExtension(AssertionInfo info, File actual) { |
| 406 | + assertIsFile(info, actual); |
| 407 | + Optional<String> extension = getFileExtension(actual); |
| 408 | + if (extension.isPresent()) throw failures.failure(info, shouldHaveNoExtension(actual, extension.get())); |
401 | 409 | }
|
402 | 410 |
|
403 | 411 | /**
|
@@ -576,10 +584,8 @@ private static void assertNotNull(AssertionInfo info, File actual) {
|
576 | 584 | Objects.instance().assertNotNull(info, actual);
|
577 | 585 | }
|
578 | 586 |
|
579 |
| - private String getFileExtension(File file) { |
580 |
| - String name = file.getName(); |
581 |
| - int dotAt = name.lastIndexOf('.'); |
582 |
| - return dotAt == -1 ? null : name.substring(dotAt + 1); |
| 587 | + private Optional<String> getFileExtension(File file) { |
| 588 | + return getFileNameExtension(file.getName()); |
583 | 589 | }
|
584 | 590 |
|
585 | 591 | private void verifyIsFile(File expected) {
|
|
0 commit comments