• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

leeonky / test-charm-java / 218

15 Apr 2025 02:45PM UTC coverage: 74.045% (-0.04%) from 74.088%
218

push

circleci

leeonky
Introduce adaptiveList

20 of 21 new or added lines in 3 files covered. (95.24%)

34 existing lines in 11 files now uncovered.

7968 of 10761 relevant lines covered (74.05%)

0.74 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

94.74
/DAL-extension-basic/src/main/java/com/github/leeonky/dal/extensions/basic/file/util/Util.java
1
package com.github.leeonky.dal.extensions.basic.file.util;
2

3
import com.github.leeonky.util.Sneaky;
4

5
import java.io.File;
6
import java.io.FileNotFoundException;
7
import java.nio.file.Files;
8
import java.nio.file.Path;
9
import java.nio.file.attribute.PosixFileAttributes;
10
import java.nio.file.attribute.PosixFilePermissions;
11
import java.util.Collections;
12
import java.util.LinkedHashSet;
13
import java.util.Set;
14
import java.util.stream.Collectors;
15

16
import static java.lang.String.format;
17
import static java.util.Arrays.stream;
18
import static java.util.Comparator.comparing;
19

UNCOV
20
public class Util {
×
21
    public static final FileDirDumper FILE_DIR_DUMPER = new FileDirDumper();
1✔
22
    public static final FileFileDumper FILE_FILE_DUMPER = new FileFileDumper();
1✔
23
    public static final PathDirDumper PATH_DIR_DUMPER = new PathDirDumper();
1✔
24
    public static final PathFileDumper PATH_FILE_DUMPER = new PathFileDumper();
1✔
25

26
    public static String formatFileSize(long size) {
27
        if (size < 10000)
1✔
28
            return String.valueOf(size);
1✔
29
        double sizeInUnit = size / 1024.0;
1✔
30
        if (sizeInUnit < 1000)
1✔
31
            return format("%.1fK", sizeInUnit);
1✔
32
        sizeInUnit /= 1024;
1✔
33
        if (sizeInUnit < 1000)
1✔
34
            return format("%.1fM", sizeInUnit);
1✔
35
        sizeInUnit /= 1024;
1✔
36
        if (sizeInUnit < 1000)
1✔
37
            return format("%.1fG", sizeInUnit);
1✔
38
        sizeInUnit /= 1024;
1✔
39
        return format("%.1fT", sizeInUnit);
1✔
40
    }
41

42
    public static String attribute(Path path) {
43
        PosixFileAttributes posixFileAttributes = Sneaky.get(() -> Files.readAttributes(path, PosixFileAttributes.class));
1✔
44
        return format("%s %s %s %6s %s %s", PosixFilePermissions.toString(posixFileAttributes.permissions()),
1✔
45
                posixFileAttributes.group(), posixFileAttributes.owner(), formatFileSize(path.toFile().length()),
1✔
46
                posixFileAttributes.lastModifiedTime(), path.getFileName().toString());
1✔
47
    }
48

49
    public static Object getSubFile(File file, String name) {
50
        File subFile = new File(file, name);
1✔
51
        if (subFile.exists())
1✔
52
            return subFile;
1✔
53
        String[] list = file.list();
1✔
54
        if (list != null && stream(list).anyMatch(f -> f.startsWith(name + ".")))
1✔
55
            return new IOFileFileGroup(file, name);
1✔
UNCOV
56
        return Sneaky.sneakyThrow(new FileNotFoundException(format("File or File Group <%s> not found", name)));
×
57
    }
58

59
    public static Set<String> listFileNames(File file) {
60
        return listFile(file).stream().map(File::getName).collect(Collectors.toCollection(LinkedHashSet::new));
1✔
61
    }
62

63
    public static Set<File> listFile(File file) {
64
        File[] files = file.listFiles();
1✔
65
        return files == null ? Collections.emptySet() : stream(files)
1✔
66
                .sorted(comparing(File::isDirectory).thenComparing(File::getName))
1✔
67
                .collect(Collectors.toCollection(LinkedHashSet::new));
1✔
68
    }
69

70
    public static Set<Path> listFile(Path path) {
71
        File[] files = path.toFile().listFiles();
1✔
72
        return (files == null ? Collections.emptySet() : stream(files)
1✔
73
                .sorted(comparing(File::isDirectory).thenComparing(File::getName)).map(File::toPath)
1✔
74
                .collect(Collectors.toCollection(LinkedHashSet::new)));
1✔
75
    }
76
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc