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

leeonky / test-charm-java / 117

26 Feb 2025 03:01AM UTC coverage: 74.16% (+0.9%) from 73.251%
117

push

circleci

leeonky
Update version

7838 of 10569 relevant lines covered (74.16%)

0.74 hits per line

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

95.65
/DAL-extension-basic/src/main/java/com/github/leeonky/dal/extensions/basic/sync/Await.java
1
package com.github.leeonky.dal.extensions.basic.sync;
2

3
import com.github.leeonky.dal.extensions.basic.TimeUtil;
4
import com.github.leeonky.dal.runtime.Data;
5
import com.github.leeonky.util.Suppressor;
6

7
import java.time.Duration;
8
import java.time.Instant;
9
import java.util.Set;
10
import java.util.function.Function;
11

12
public class Await {
13
    private static int defaultWaitingTime = 5000;
1✔
14
    private final Data data;
15
    private final int interval;
16
    private final int waitingTime;
17

18
    public Await(Data data) {
19
        this(data, 100, defaultWaitingTime);
1✔
20
    }
1✔
21

22
    public Await(Data data, int interval, int waitingTime) {
1✔
23
        this.data = data;
1✔
24
        this.interval = interval;
1✔
25
        this.waitingTime = waitingTime;
1✔
26
    }
1✔
27

28
    public static void setDefaultWaitingTime(int ms) {
29
        Await.defaultWaitingTime = ms;
1✔
30
    }
1✔
31

32
    public <T> T await(Function<Data, T> supplier) throws Exception {
33
        Exception exception;
34
        int times = waitingTime / interval;
1✔
35
        Instant now = Instant.now();
1✔
36
        do {
37
            times--;
1✔
38
            try {
39
                return supplier.apply(data);
1✔
40
            } catch (Exception e) {
1✔
41
                exception = e;
1✔
42
                if (times > 0)
1✔
43
                    Suppressor.run(() -> Thread.sleep(interval));
1✔
44
            }
45
        } while (times > 0 && Duration.between(now, Instant.now()).toMillis() < waitingTime);
1✔
46
        throw exception;
1✔
47
    }
48

49
    public Await within(String s) {
50
        return new Await(data, interval, TimeUtil.parseTime(s));
1✔
51
    }
52

53
    public Await interval(String s) {
54
        return new Await(data, TimeUtil.parseTime(s), waitingTime);
1✔
55
    }
56

57
    public Set<Object> fieldNames() {
58
        return data.fieldNames();
×
59
    }
60
}
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